Konu: Ceph Temelleri ve CRUSH Map Yönetimi
Sunum: Dr. Hüseyin ÇOTUK
İçerik: • Ceph Nedir?
• Ceph Bileşenleri
• CRUSH Map Nedir?
• CRUSH Map nasıl kişiselleştirilir?
• Karma diskler ile veri havuzu oluşturma
第2回NHNテクノロジーカンファレンスで発表した資料ですー。
References: LINE Storage: Storing billions of rows in Sharded-Redis and HBase per Month (http://tech.naver.jp/blog/?p=1420), I posted this entry in 2012.3.
레드햇의 Etsuji Nakai 씨의 "OpenStack: Inside Out" 한글 번역본입니다.
다시 한번 좋은 문서를 공유해주신 Etsuji Nakai 씨에게 감사를 드립니다.
http://www.slideshare.net/enakai/open-stack-insideoutv10
第2回NHNテクノロジーカンファレンスで発表した資料ですー。
References: LINE Storage: Storing billions of rows in Sharded-Redis and HBase per Month (http://tech.naver.jp/blog/?p=1420), I posted this entry in 2012.3.
레드햇의 Etsuji Nakai 씨의 "OpenStack: Inside Out" 한글 번역본입니다.
다시 한번 좋은 문서를 공유해주신 Etsuji Nakai 씨에게 감사를 드립니다.
http://www.slideshare.net/enakai/open-stack-insideoutv10
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...HostedbyConfluent
More and more Enterprises are relying on Apache Kafka to run their businesses. Cluster administrators need the ability to mirror data between clusters to provide high availability and disaster recovery.
MirrorMaker 2, released recently as part of Kafka 2.4.0, allows you to mirror multiple clusters and create many replication topologies. Learn all about this awesome new tool and how to reliably and easily mirror clusters.
We will first describe how MirrorMaker 2 works, including how it addresses all the shortcomings of MirrorMaker 1. We will also cover how to decide between its many deployment modes. Finally, we will share our experience running it in production as well as our tips and tricks to get a smooth ride.
EFK Stack이란 ElasticSearch, Fluentd, Kibana라는 오픈소스의 조합으로, 방대한 양의 데이터를 신속하고 실시간으로 수집/저장/분석/시각화 할 수 있는 솔루션입니다. 특히 컨테이너 환경에서 로그 수집을 위해 주로 사용되는 기술 스택입니다.
Elasitc Stack에 대한 소개와 EFK Stack 설치 방법에 대해 설명합니다.
Presentation I gave at a Rust Austin meetup in November 2018 about exploring different approaches for interpreting custom DSLs in Rust with varying speed characteristics and associated safety issues.
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
Ftrace’s most powerful feature is the function tracer (and function graph tracer which is built from it). But to have this enabled on production systems, it had to have its overhead be negligible when disabled. As the function tracer uses gcc’s profiling mechanism, which adds a call to “mcount” (or more recently fentry, don’t worry if you don’t know what this is, it will all be explained) at the start of almost all functions, it had to do something about the overhead that causes. The solution was to turn those calls into “nops” (an instruction that the CPU simply ignores). But this was no easy feat. It took a lot to come up with a solution (and also turning a few network cards into bricks). This talk will explain the history of how ftrace came about implementing the function tracer, and brought with it the possibility of static branches and soon static calls!
Steven Rostedt
Investigation on ext4 filesystem of current Linux
This slide focuses on ext4 disk layout.
Ext4 filesystem(2)
http://www.slideshare.net/YoshihiroYunomae/ext4-filesystem2
New Ways to Find Latency in Linux Using TracingScyllaDB
Ftrace is the official tracer of the Linux kernel. It originated from the real-time patch (now known as PREEMPT_RT), as developing an operating system for real-time use requires deep insight and transparency of the happenings of the kernel. Not only was tracing useful for debugging, but it was critical for finding areas in the kernel that was causing unbounded latency. It's no wonder why the ftrace infrastructure has a lot of tooling for seeking out latency. Ftrace was introduced into mainline Linux in 2008, and several talks have been done on how to utilize its tracing features. But a lot has happened in the past few years that makes the tooling for finding latency much simpler. Other talks at P99 will discuss the new ftrace tracers "osnoise" and "timerlat", but this talk will focus more on the new flexible and dynamic aspects of ftrace that facilitates finding latency issues which are more specific to your needs. Some of this work may still be in a proof of concept stage, but this talk will give you the advantage of knowing what tools will be available to you in the coming year.
11.10.2017 tarihinde İstanbul Yıldız Teknik Üniversitesi Davutpaşa Kampüsü Teknoparkı A1 Blok'ta Ceph Türkiye adına yapılan ikinci meetup'a ait sunum. Dr. Hüseyin ÇOTUK tarafından yapılan sunum süresince aşağıdaki konular ele alınmıştır.
Ceph Yapıtaşları
Ceph Mimarisi
Ceph Üzerinde Veri Yerleşimi
CRUSH Algoritması
CRUSH Map
OpenStack Entegrasyonu
OpenStack'te Ceph Kullanımı ve Performans OptimizasyonuHuseyin Cotuk
17 Ekim 2017 tarihinde Levent Wyndham Grand İstanbul Hotel'de düzenlenen OpenStack Days İstanbul etkinliğinde Dr. OpenStack Days Istanbul 2017 sırasında Dr. Hüseyin ÇOTUK tarafından yapılan "OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu" konulu sunum
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...HostedbyConfluent
More and more Enterprises are relying on Apache Kafka to run their businesses. Cluster administrators need the ability to mirror data between clusters to provide high availability and disaster recovery.
MirrorMaker 2, released recently as part of Kafka 2.4.0, allows you to mirror multiple clusters and create many replication topologies. Learn all about this awesome new tool and how to reliably and easily mirror clusters.
We will first describe how MirrorMaker 2 works, including how it addresses all the shortcomings of MirrorMaker 1. We will also cover how to decide between its many deployment modes. Finally, we will share our experience running it in production as well as our tips and tricks to get a smooth ride.
EFK Stack이란 ElasticSearch, Fluentd, Kibana라는 오픈소스의 조합으로, 방대한 양의 데이터를 신속하고 실시간으로 수집/저장/분석/시각화 할 수 있는 솔루션입니다. 특히 컨테이너 환경에서 로그 수집을 위해 주로 사용되는 기술 스택입니다.
Elasitc Stack에 대한 소개와 EFK Stack 설치 방법에 대해 설명합니다.
Presentation I gave at a Rust Austin meetup in November 2018 about exploring different approaches for interpreting custom DSLs in Rust with varying speed characteristics and associated safety issues.
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
Ftrace’s most powerful feature is the function tracer (and function graph tracer which is built from it). But to have this enabled on production systems, it had to have its overhead be negligible when disabled. As the function tracer uses gcc’s profiling mechanism, which adds a call to “mcount” (or more recently fentry, don’t worry if you don’t know what this is, it will all be explained) at the start of almost all functions, it had to do something about the overhead that causes. The solution was to turn those calls into “nops” (an instruction that the CPU simply ignores). But this was no easy feat. It took a lot to come up with a solution (and also turning a few network cards into bricks). This talk will explain the history of how ftrace came about implementing the function tracer, and brought with it the possibility of static branches and soon static calls!
Steven Rostedt
Investigation on ext4 filesystem of current Linux
This slide focuses on ext4 disk layout.
Ext4 filesystem(2)
http://www.slideshare.net/YoshihiroYunomae/ext4-filesystem2
New Ways to Find Latency in Linux Using TracingScyllaDB
Ftrace is the official tracer of the Linux kernel. It originated from the real-time patch (now known as PREEMPT_RT), as developing an operating system for real-time use requires deep insight and transparency of the happenings of the kernel. Not only was tracing useful for debugging, but it was critical for finding areas in the kernel that was causing unbounded latency. It's no wonder why the ftrace infrastructure has a lot of tooling for seeking out latency. Ftrace was introduced into mainline Linux in 2008, and several talks have been done on how to utilize its tracing features. But a lot has happened in the past few years that makes the tooling for finding latency much simpler. Other talks at P99 will discuss the new ftrace tracers "osnoise" and "timerlat", but this talk will focus more on the new flexible and dynamic aspects of ftrace that facilitates finding latency issues which are more specific to your needs. Some of this work may still be in a proof of concept stage, but this talk will give you the advantage of knowing what tools will be available to you in the coming year.
11.10.2017 tarihinde İstanbul Yıldız Teknik Üniversitesi Davutpaşa Kampüsü Teknoparkı A1 Blok'ta Ceph Türkiye adına yapılan ikinci meetup'a ait sunum. Dr. Hüseyin ÇOTUK tarafından yapılan sunum süresince aşağıdaki konular ele alınmıştır.
Ceph Yapıtaşları
Ceph Mimarisi
Ceph Üzerinde Veri Yerleşimi
CRUSH Algoritması
CRUSH Map
OpenStack Entegrasyonu
OpenStack'te Ceph Kullanımı ve Performans OptimizasyonuHuseyin Cotuk
17 Ekim 2017 tarihinde Levent Wyndham Grand İstanbul Hotel'de düzenlenen OpenStack Days İstanbul etkinliğinde Dr. OpenStack Days Istanbul 2017 sırasında Dr. Hüseyin ÇOTUK tarafından yapılan "OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu" konulu sunum
02.10.2017 tarihinde Ankara Ataköşk Hotel'de Ceph Türkiye adına yapılan ilk meetup'a ait kayıt. Dr. Hüseyin ÇOTUK tarafından yapılan sunum süresince aşağıdaki konular ele alınmıştır.
İlk Bakışta Ceph
Geleneksel Depolama Mimarisi
Dağıtık Depolama Mimarisi
Diğer Dağıtık Depolama Çözümleri ile Karşılaştırmalar
Neden Ceph?
Dünyada Ceph Kullanımı
OpenStack'te Depolama Alternatifleri
Neden OpenStack ve Ceph?
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek HususlarHuseyin Cotuk
22.11.2017 tarihinde Ankara Ataköşk Hotel'de Ceph Türkiye adına yapılan üçüncü meetup'a ait sunum. Uyumsoft firmasından Ramazan ÖZTEMUR tarafından yapılan sunum süresince aşağıdaki konular ele alınmıştır.
Gereksinimlerin Belirlenmesi
Replika vs Erasure Coding
Performans Maliyet Kapasite
İş Yüküne Özel tasarım
Donanım Seçimi
Önerilen Donanım Listesi
Performans ve Maliyet Odaklı Örnek Tasarımlar
Verinin temsili, işlenmesi, saklanmasında gelişen ve değişen
koşullar ele alındıktan sonra, büyük verinin işlenmesi konusu
ele alınıyor.
Verinin anlamlandırılması konusunda değişen terimler, ünvanlar, algoritmalar, kullanılan aletler konusunda değerlendirmeler paylaşıldı.
sunumun videosuna aşağıdaki adresten ulaşabilirsiniz.
https://www.youtube.com/watch?v=pnvvMU8L-O0
2. Gündem
• Ceph Nedir?
• Ceph’in Avantajları
• Ceph Bileşenleri
• Ceph Üzerinde Veri Nasıl Saklanır?
– CRUSH Algoritması
– CRUSH MAP
• CRUSH MAP Kişiselleştirme
• Soru/Cevap
3. İlk Bakışta Ceph
• Açık kaynak kodlu
• Donanım bağımsız, yazılım tabanlı
• Exabyte ölçeğinde tasarım
• Distributed object store
• Unified (Object, Block, FS desteği)
• Metadata sunucusu yok (CRUSH)
• Copy-on-write cloning, thin provisioning
• Cloud workloads
• Snapshot, clone
• Mirroring
• Replika veya Erasure Coding (EC)
4. RAID Devrinin Sonu
●
30 yıldır her türlü yük çalışıyor
●
Disk boyutları arttıkça uzun recovery time, yüksek
hesaplama gücü, ciddi performans etkisi
●
Birden fazla disk bozulduğunda hata toleransı düşük
●
Yedek diskler atıl bekliyor
●
Aynı RAID grubundaki (RG) disklerin birbiri ile aynı
tip ve özellikte olması gerek
●
RAID kartlarının maliyetleri yüksek (TCO)
●
Sistemin büyümesi kartlara bağlı
●
RAID gruplarına eklenecek disk sayısı sınırlı
●
Veri bütünlüğü aynı raf/RG içerisinde mümkün
●
Gelişmiş özellikler için gereken lisans maliyetleri
6. Diğer DD Çözümleri ile Karşılaştırmalar
●
GPFS
– Ticari (IBM), maliyeti yüksek
– Entegrasyon zor, sınırlı arayüz desteği
●
HDFS
– Blok depolama yok
– POSIX uyumlu değil
– HA desteği yok (single NameNode)
– Az sayıda büyük dosya saklamaya elverişli
●
Lustre
– Metadata problemi (performans, risk)
– Çok sayıda küçük boyutlu dosya saklamaya uygun değil
– Sunucu arızasını tespit eden mekanizma yok (Client farklı sunucuya
bağlanmak zorunda)
●
GlusterFS
– Sistem yöneticisinin farklı coğrafi lokasyon için strateji üretmesi gerekir
– Blok depolama desteği yok (plugin gerektirir)
11. Neden Ceph?
●
Ücretsiz
●
Donanım bağımsız
●
Esnek, ölçeklenebilir (exabyte scale)
●
Hata toleransı yüksek (dağıtık mimari)
●
Yüksek performans
●
Hızlı recovery
●
Unified (OS, BS, FS)
●
Gelişmiş özellikler (mirroring, replication)
●
Erasure coding opsiyonu
●
Hibrid çalışabilme (sunucu, disk)
●
Multi region desteği
●
S3, Swift API uyumlu
14. Ceph Üzerinde Veri Nasıl Saklanır?
●
Yerleşim Grupları (Placement Groups-PG)
– Havuz ve OSD arasında verileri gruplamak üzere
kullanılan yapıtaşları
●
Veri Havuzları (Pools)
– İmajları barındıran mantıksal ayraçlar
– Büyüklükle orantılı PG’ye sahip
– Havuz bazında farklı replika sayısı seçilebilir
●
İmajlar (Images)
– Havuz içinde farklı verilerin tutulduğu yapıtaşları
●
Kural Grupları (Rulesets)
– Veriyi istenilen hiyerarşik yapıda dağıtmaya imkan
veren kurallar
17. CRUSH Örnek
●
“huseyin” isimli nesneyi “cotuk” isimli
havuza yazma
– PG Sayısı : 32768
– Cotuk pool id : 5
– hash(‘huseyin’) = 0x894513ce
– 0x894513ce mod 32768 = 0x13CE
– PG → 5.13CE
– CRUSH(‘5.13CE’, {CLUSTER_TOPOLOGY} )
●
OSD 7
●
OSD 26
●
OSD 16
18. CRUSH Map
●
Her hiyerarşik yapı için tanımlanan kurallarla
birlikte Ceph’in veriyi nasıl saklayacağını belirler.
●
Çok aşamalı olabileceği gibi en az bir düğüm ve
yaprak hiyerarşisine sahip olmalıdır.
●
Hiyerarşideki her düğüm sepet (bucket) olarak
adlandırılır ve her sepetin bir tipi vardır.
●
Verileri tutan nesneler disklere verilebilecek
ağırlıklara göre disklere dağıtılır.
●
İhtiyaca göre istenilen esneklikte hiyerarşik yapı
tanımlanabilir. Tek kısıt en alttaki yaprak ismi
verilen düğümler OSD’leri temsil etmelidir.
●
Her yaprak düğüm bir sunucuya ya da başka bir
tipteki sepete bağlı olmalıdır.
21. CRUSH Failure Domains
●
Verinin hangi hiyerarşide yedekleneceğini
belirler.
●
Varsayılan olarak verinin replikaları farklı
sunucularda tutulacak şekilde dağıtılır.
●
İstenirse rack bazında, hatta arada yeterli
bağlantı varsa DC veya region bazında bile
kopyalar dağıtılabilir.
●
Kurallar içerisinde tanım yapılır.
24. Örnek CRUSH MAP Düzenleme - CLI
●
Amaç:
– İki farklı disk grubu (SSD, SATA) oluşturmak
– Replika ile veri bütünlüğünü sağlamak
– Havuzları ilgili disk gruplarına atamak
34. Ceph Benchmark: Optimizasyon Öncesi
1 fio + 4 farklı pool rbd bench + 3 node cephfs üzerinden
dd aynı anda çalıştırılıp throughput ölçümü (4.372 GB/sn)
35. Ceph Benchmark: Optimizasyon Sonrası
1 fio + 4 farklı pool rbd bench + 3 node cephfs üzerinden
dd aynı anda çalıştırılıp throughput ölçümü (6.521 GB/sn)