SlideShare a Scribd company logo
Dr. Hüseyin ÇOTUK
24.01.2018
Ankara
Ceph Türkiye Meetup
Ceph Temelleri ve
CRUSH MAP Yönetimi
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
İ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)
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
Dağıtık Mimaride Depolama Çözümleri
●
Lustre
●
GlusterFS
●
HDFS
●
GPFS
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)
Karşılaştırma
Ceph: The Future of the Storage
Ceph Kullanım Alanları
Ceph İş Yükleri
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
Ceph Bileşenleri
• RADOS (Reliable Autonomic Distributed
Object Store)
• LIBRADOS (Rados Library)
• OSD (Object Storage Device)
• MON (Monitor)
• RGW (Rados Gateway)
• RBD (Rados Block Device)
• MDS (Metadata Server)
• FS (File System)
Ceph OSD – Journal İlişkisi
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
Ceph Üzerinde Veri Nasıl Saklanır?
CRUSH Algoritması
●
Controlled Replication Under Scalable
Hashing
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
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.
CRUSH Hiyerarşisi
●
Root
Region
DC
Room
Pod
PDU
Row
Rack
Chassis
Host
OSD
CRUSH Hiyerarşisi
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.
CRUSH MAP Düzenleme
# ceph osd getcrushmap -o crushmap.txt
# crushtool -d crushmap.txt -o crushmap-
decompiled
# vi crushmap-decompiled
# crushtool -c crushmap-decompiled -o
crushmap-compiled
# ceph osd setcrushmap -i crushmap-
compiled
CRUSH MAP Bileşenleri
●
Devices
– Kümedeki tüm OSD’lerin listesi
●
Bucket types
– Kullanılabilecek bucket tipleri
– Özelleştirilebilir
●
Bucket definitions
●
Rules
Ö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
Örnek CRUSH MAP Düzenleme - CLI
●
ceph osd crush rename-bucket default sata
●
ceph osd crush add-bucket ssd root
●
ceph osd crush add-bucket server1-ssd host
●
ceph osd crush add-bucket server1-sata host
●
ceph osd crush add-bucket server2-ssd host
●
ceph osd crush add-bucket server2-sata host
Örnek CRUSH MAP Düzenleme - CLI
●
ceph osd crush add-bucket server3-ssd host
●
ceph osd crush add-bucket server3-sata host
●
ceph osd crush move server1-ssd root=ssd
●
ceph osd crush move server2-ssd root=ssd
●
ceph osd crush move server3-ssd root=ssd
Örnek CRUSH MAP Düzenleme - CLI
●
ceph osd crush move server1-sata root=sata
●
ceph osd crush move server2-sata root=sata
●
ceph osd crush move server3-sata root=sata
●
ceph osd crush set osd.1 1.5 root=ssd
host=server1-ssd
●
ceph osd crush set osd.7 5.46 root=sata
host=server1-sata ...(diğer OSD’ler için aynı işlem)
1 2 3 4 5 6
7 8 9 10 11 12
Ceph OSD Tree
CRUSH Rules
●
ceph osd crush rule create-replicated
{name} {root} {failure-domain-type} [{class}]
# ceph osd crush rule create-replicated ssd-
rule ssd host [ssd]
# ceph osd crush rule create-replicated
sata-rule sata host [sata]
CRUSH Rules
Havuz – Kural Eşleme
#ceph osd pool create bench_hdd 100 100
#ceph osd pool set bench_hdd crush_ruleset 0
#ceph osd pool create bench_ssd 100 100
#ceph osd pool set bench_ssd crush_ruleset 1
#ceph osd pool create ssd_pool 256 256
#ceph osd pool set ssd_pool crush_ruleset 0
#ceph osd pool create sata_pool 100 100
#ceph osd pool set sata_pool crush_ruleset 1
Neden OpenStack + Ceph ?
●
OpenStack Depolama Gereksinimleri
– Ephemeral (Nova+Glance)
– Block (Cinder)
– File (Manila)
– Object (Swift)
●
Gelişmiş özellikler
– Live migration
– Direct snapshot & restore
– Mirroring
– HA
– Replication failover
Neden OpenStack + Ceph ?
OpenStack Kullanıcı Anketi 2017
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)
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)
Ceph Türkiye Ankara
●
https://www.meetup.com/Turkey-Ceph-
Meetup/
Soru / Cevap
●
Teşekkürler
●
Dr. Hüseyin ÇOTUK
– http://www.huseyincotuk.com
– huseyin@huseyincotuk.com
– huseyin@cephturkiye.com
– https://twitter.com/huseyin_cotuk
●
Sorular

More Related Content

What's hot

Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
HostedbyConfluent
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
Open Source Consulting
 
Building fast interpreters in Rust
Building fast interpreters in RustBuilding fast interpreters in Rust
Building fast interpreters in Rust
Ingvar Stepanyan
 
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumiリアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
Yuta Okamoto
 
OpenStack hands-on (All-in-One)
OpenStack hands-on (All-in-One)OpenStack hands-on (All-in-One)
OpenStack hands-on (All-in-One)
JeSam Kim
 
Developing MIPS Exploits to Hack Routers
Developing MIPS Exploits to Hack RoutersDeveloping MIPS Exploits to Hack Routers
Developing MIPS Exploits to Hack Routers
BGA Cyber Security
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Anne Nicolas
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
Haifeng Li
 
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPFUSENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
Taeung Song
 
Ansible 101
Ansible 101Ansible 101
Ansible 101
YI-CHING WU
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
plarsen67
 
Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
Yoshihiro Yunomae
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
National Cheng Kung University
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話Yoshinori Matsunobu
 
New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using Tracing
ScyllaDB
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyインテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
CODE BLUE
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
lcplcp1
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
 

What's hot (20)

Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
 
Building fast interpreters in Rust
Building fast interpreters in RustBuilding fast interpreters in Rust
Building fast interpreters in Rust
 
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumiリアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
 
OpenStack hands-on (All-in-One)
OpenStack hands-on (All-in-One)OpenStack hands-on (All-in-One)
OpenStack hands-on (All-in-One)
 
Developing MIPS Exploits to Hack Routers
Developing MIPS Exploits to Hack RoutersDeveloping MIPS Exploits to Hack Routers
Developing MIPS Exploits to Hack Routers
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
 
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPFUSENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
 
Ansible 101
Ansible 101Ansible 101
Ansible 101
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
 
Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using Tracing
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
 
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyインテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 

Similar to Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi

Ceph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbulCeph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbul
Huseyin Cotuk
 
OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
OpenStack'te Ceph Kullanımı ve Performans OptimizasyonuOpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
Huseyin Cotuk
 
Ceph Türkiye 1.meetup Ankara
Ceph Türkiye 1.meetup AnkaraCeph Türkiye 1.meetup Ankara
Ceph Türkiye 1.meetup Ankara
Huseyin Cotuk
 
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek HususlarCeph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
Huseyin Cotuk
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
Serkan Özal
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
Oguz Yarimtepe
 
Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)
Serhad MAKBULOĞLU, MBA
 
Exadata Performance Notes
Exadata Performance NotesExadata Performance Notes
Exadata Performance Notes
Özgür Umut Vurgun
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
Tahsin Yüksel
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
Hakan Sarıbıyık
 
Snc moduler sunucu
Snc moduler sunucuSnc moduler sunucu
Snc moduler sunucu
tarkansnc
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
Burak KÖSE
 
windows server 2008 r2 hyper-v fail over cluster
windows server 2008 r2 hyper-v fail over clusterwindows server 2008 r2 hyper-v fail over cluster
windows server 2008 r2 hyper-v fail over clusterÇözümPARK
 
AZ 103 : Microsoft Azure Administrator - 2
AZ 103 : Microsoft Azure Administrator - 2AZ 103 : Microsoft Azure Administrator - 2
AZ 103 : Microsoft Azure Administrator - 2
MSHOWTO Bilisim Toplulugu
 
Az 103 : Microsoft Azure Administrator - Bolum 2
Az 103 : Microsoft Azure Administrator - Bolum 2Az 103 : Microsoft Azure Administrator - Bolum 2
Az 103 : Microsoft Azure Administrator - Bolum 2
MSHOWTO Bilisim Toplulugu
 
Nosql veritabanlari
Nosql veritabanlariNosql veritabanlari
Nosql veritabanlari
Gokhan Boranalp
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
Cihan Özhan
 
Ibm storage sales
Ibm storage salesIbm storage sales
Ibm storage salesHande Hnd
 

Similar to Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi (20)

Ceph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbulCeph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbul
 
OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
OpenStack'te Ceph Kullanımı ve Performans OptimizasyonuOpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
 
Raid technologies
Raid technologiesRaid technologies
Raid technologies
 
Ceph Türkiye 1.meetup Ankara
Ceph Türkiye 1.meetup AnkaraCeph Türkiye 1.meetup Ankara
Ceph Türkiye 1.meetup Ankara
 
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek HususlarCeph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
 
Veri tabanı
Veri tabanıVeri tabanı
Veri tabanı
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)
 
Exadata Performance Notes
Exadata Performance NotesExadata Performance Notes
Exadata Performance Notes
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
 
Snc moduler sunucu
Snc moduler sunucuSnc moduler sunucu
Snc moduler sunucu
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
 
windows server 2008 r2 hyper-v fail over cluster
windows server 2008 r2 hyper-v fail over clusterwindows server 2008 r2 hyper-v fail over cluster
windows server 2008 r2 hyper-v fail over cluster
 
AZ 103 : Microsoft Azure Administrator - 2
AZ 103 : Microsoft Azure Administrator - 2AZ 103 : Microsoft Azure Administrator - 2
AZ 103 : Microsoft Azure Administrator - 2
 
Az 103 : Microsoft Azure Administrator - Bolum 2
Az 103 : Microsoft Azure Administrator - Bolum 2Az 103 : Microsoft Azure Administrator - Bolum 2
Az 103 : Microsoft Azure Administrator - Bolum 2
 
Nosql veritabanlari
Nosql veritabanlariNosql veritabanlari
Nosql veritabanlari
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
Ibm storage sales
Ibm storage salesIbm storage sales
Ibm storage sales
 

Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi

  • 1. Dr. Hüseyin ÇOTUK 24.01.2018 Ankara Ceph Türkiye Meetup Ceph Temelleri ve CRUSH MAP Yönetimi
  • 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
  • 5. Dağıtık Mimaride Depolama Çözümleri ● Lustre ● GlusterFS ● HDFS ● GPFS
  • 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)
  • 8. Ceph: The Future of the Storage
  • 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
  • 12. Ceph Bileşenleri • RADOS (Reliable Autonomic Distributed Object Store) • LIBRADOS (Rados Library) • OSD (Object Storage Device) • MON (Monitor) • RGW (Rados Gateway) • RBD (Rados Block Device) • MDS (Metadata Server) • FS (File System)
  • 13. Ceph OSD – Journal İlişkisi
  • 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
  • 15. Ceph Üzerinde Veri Nasıl Saklanır?
  • 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.
  • 22. CRUSH MAP Düzenleme # ceph osd getcrushmap -o crushmap.txt # crushtool -d crushmap.txt -o crushmap- decompiled # vi crushmap-decompiled # crushtool -c crushmap-decompiled -o crushmap-compiled # ceph osd setcrushmap -i crushmap- compiled
  • 23. CRUSH MAP Bileşenleri ● Devices – Kümedeki tüm OSD’lerin listesi ● Bucket types – Kullanılabilecek bucket tipleri – Özelleştirilebilir ● Bucket definitions ● Rules
  • 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
  • 25. Örnek CRUSH MAP Düzenleme - CLI ● ceph osd crush rename-bucket default sata ● ceph osd crush add-bucket ssd root ● ceph osd crush add-bucket server1-ssd host ● ceph osd crush add-bucket server1-sata host ● ceph osd crush add-bucket server2-ssd host ● ceph osd crush add-bucket server2-sata host
  • 26. Örnek CRUSH MAP Düzenleme - CLI ● ceph osd crush add-bucket server3-ssd host ● ceph osd crush add-bucket server3-sata host ● ceph osd crush move server1-ssd root=ssd ● ceph osd crush move server2-ssd root=ssd ● ceph osd crush move server3-ssd root=ssd
  • 27. Örnek CRUSH MAP Düzenleme - CLI ● ceph osd crush move server1-sata root=sata ● ceph osd crush move server2-sata root=sata ● ceph osd crush move server3-sata root=sata ● ceph osd crush set osd.1 1.5 root=ssd host=server1-ssd ● ceph osd crush set osd.7 5.46 root=sata host=server1-sata ...(diğer OSD’ler için aynı işlem) 1 2 3 4 5 6 7 8 9 10 11 12
  • 29. CRUSH Rules ● ceph osd crush rule create-replicated {name} {root} {failure-domain-type} [{class}] # ceph osd crush rule create-replicated ssd- rule ssd host [ssd] # ceph osd crush rule create-replicated sata-rule sata host [sata]
  • 31. Havuz – Kural Eşleme #ceph osd pool create bench_hdd 100 100 #ceph osd pool set bench_hdd crush_ruleset 0 #ceph osd pool create bench_ssd 100 100 #ceph osd pool set bench_ssd crush_ruleset 1 #ceph osd pool create ssd_pool 256 256 #ceph osd pool set ssd_pool crush_ruleset 0 #ceph osd pool create sata_pool 100 100 #ceph osd pool set sata_pool crush_ruleset 1
  • 32. Neden OpenStack + Ceph ? ● OpenStack Depolama Gereksinimleri – Ephemeral (Nova+Glance) – Block (Cinder) – File (Manila) – Object (Swift) ● Gelişmiş özellikler – Live migration – Direct snapshot & restore – Mirroring – HA – Replication failover
  • 33. Neden OpenStack + Ceph ? OpenStack Kullanıcı Anketi 2017
  • 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)
  • 37. Soru / Cevap ● Teşekkürler ● Dr. Hüseyin ÇOTUK – http://www.huseyincotuk.com – huseyin@huseyincotuk.com – huseyin@cephturkiye.com – https://twitter.com/huseyin_cotuk ● Sorular