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

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

ceph_turkey_logo2018 yılındaki ilk Ceph Türkiye meetup etkinliği 24.01.2018 tarihinde ODTÜ Teknokent’te düzenlendi. Ceph ile ilgili ODTÜ’de ilk yapılan etkinlik olması sebebiyle etkinlik süresince önce Ceph temelleri, Ceph kullanmanın avantajları ve Ceph kümesini meydana getiren bileşenler gibi temel konular ele alındıktan sonra bir Ceph kurulumunu kendinize göre özelleştirmenizi sağlayan CRUSH MAP yapısı ve düzenleme yöntemlerinden bahsedildi.

Etkinliğe katılanların tanışması ve kısa bir sohbetin ardından başlayan sunumda Dr. Hüseyin ÇOTUK, önce Ceph’i kısaca tanıtmış, temel özelliklerinden ve avantajlarından bahsetmiş, ardından Ceph’te verilerin kümedeki yerleşimini sağlayan CRUSH algoritmasını ve son olarak Ceph’teki bileşenlerin biribiri ile ilişkilerini ve hiyerarşisini tanımlayan CRUSH MAP’i detaylıca anlatmıştır.

Ceph, nesne ve blok depolama ile dosya sistemi türündeki tüm ihtiyaçlarınızı tek bir platform üzerinden sağlayan, oldukça yüksek ölçeklenebilirliğe sahip, dağıtık yapıda çalışan, açık kaynak kodlu, yüksek performanslı bir depolama çözümüdür. Sahip olduğunuz depolama çözümü içerisinde veri bütünlüğünün hangi yöntem (RAID, replika, erasure coding) ile sağlanacağı en kritik konulardan birisidir.

Ceph açısından konu ele alındığında veri bütünlüğünü iki şekilde sağlamak mümkündür. İlk yöntemde verinin replikalar halinde birden fazla kopyası küme içerisinde dağıtık bir biçimde tutulmaktadır. Kopya sayısı konfigürasyon parametresi vasıtasıyla belirlenirken açılan havuz bazında farklı sayılarda replika belirlenebilmektedir. İkinci yöntemde ise veri küme içerisinde parçalara (chunk) bölünerek tutulurken veri tutan parçalara ek olarak veri bütünlüğünü sağlamak üzere ekstra parçalar tutulmaktadır. Verinin küme içerisinde kaç parçaya bölünerek tutulacağı ve veri bütünlüğü için ek olarak kaç parça ekleneceği havuz bazında belirlenebilmektedir. Bu yöntem Ceph terminolojisinde “Erasure Coding” olarak anılmaktadır.

Bu etkinlikte Ceph ile ilgili bilinmesi gereken temel konular ele alındıktan sonra Ceph üzerinde veri bütünlüğünü sağlama yöntemlerinden ve bu yöntemlere göre verinin kümede hangi hiyerarşide tutulacağını belirleyen CRUSH MAP mekanizmasından bahsedilmiştir. Veri bütünlüğü kümede ister replika ister erasure coding ile sağlanıyor olsun, verinin kopyalarının veya veriyi oluşturan parçaların kümede hangi mantık ile yedekleneceği konusu kritik önem taşımaktadır. Örneğin replika kullanıldığında verinin birden fazla kopyası tutulmaktadır. Bu kopyaların her birinin kümeyi oluşturan farklı sunucularda tutulması sunuculardan birisinde meydana gelen arıza veya herhangi bir problemde diğer sunucular üzerinden veriye erişimi sağlayacağı için sunucu bazında yedekleme sağlamaktadır. Bu kavram Ceph terminolojisinde “failure domain” olarak isimlendirilmekte ve belirlenen herhangi bir hiyerarşide veri oluşturan kopya veya parçaların yedeklenmesi sağlanmaktadır.

Ceph CRUSH MAP üzerinde varsayılan olarak aşağıdaki gibi bir hiyerarşi tanımlanmış olup bu hiyerarşi isteğe ve ihtiyaca bağlı olarak tamamen değiştirilebilmektedir.

Root -> Region -> Data Center -> Room -> Pod -> PDU -> Row -> Rack -> Chassis -> Host -> OSD

Buna göre eğer altyapı müsait ise ve arada yeterli bağlantı mevcut ise verinin kopyaları farklı şasiler, farklı rack kabinler veya farklı koridorlarda tutulabileceği gibi farklı sistem odasında, farklı veri merkezinde veya farklı bölgelerde bile tutulabilmektedir. Bu hiyerarşi mevcut altyapıya ve ihtiyaca göre baştan aşağıya değiştirilebilmektedir.

Başka bir önemli konu, belirlenen ağaç yapısındaki bu hiyerarşideki her yaprak düğümü kullanmak gibi zorunluluk yoktur. Varsayılan olarak Ceph üzerinde her disk bir OSD olarak tanımlanmakta ve diskler bağlı olduğu sunuculara (host) bağlanmak suretiyle basit bir hiyerarşi ile sunucu bazında bir “failure domain” mekanizması çalışmaktadır. İstendiği takdirde hiyerarşi sistem yöneticisi tarafından genişletilebilmektedir.

Sunum sırasında örnek bir küme üzerinde SATA ve SSD tipindeki farklı disk gruplarını da içerecek şekilde bir failure domain tasarımı yapılmış ve bu hiyerarşiyi oluşturmak için gerekli adımlar sırasıyla anlatılmıştır. Örnek üzerinde ayrıca belli havuzların (pool) belli disk gruplarını kullanmaları için tanımlanması gereken CRUSH kuralları ele alınmış ve örnekler ile yapılması gereken tanımlardan bahsedilmiştir.

Konu ile ilgili bir çok uzmanın katıldığı etkinliklere siz de katılmak isterseniz lütfen meetup grubuna kayıt olarak etkinlik duyurularını takip edin. Ceph Türkiye meetup sayfasına aşağıdaki bağlantıdan ulaşabilirsiniz.

https://www.meetup.com/Turkey-Ceph-Meetup

Etkinliğe katılamayanlar veya yeniden izlemek isteyenler için etkinlik videosunu ve sunumu aşağıda paylaşıyorum.

İyi seyirler!

Sunum:

https://www.slideshare.net/HuseyinCotuk/ceph-trkiye-7-meetup-ankara-ceph-temelleri-ve-crush-map-ynetimi

Video:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir