CEPH Genel Bilgiler

BulutWiki sitesinden
Admin (mesaj | katkılar) tarafından oluşturulmuş 13:36, 19 Haziran 2018 tarihli sürüm (CEPH Bluestore & Filestore)
Şuraya atla: kullan, ara

CEPH Bluestore & Filestore

Filestore

İlk olarak şunu söyleyerek başlayayım, bluestore yeni depolama backend. Dolayısı ile güncel bir sürüm kullanıyor iseniz (Luminous v12.2.z sonrası) zaten atanmış değer olarak bluestore kullanıyor olacaksınız (filestore kullanma seçeneğiniz hala mevcut)

Filestore ve Bluestore farkını anlamak için ilk olarak ilk olarak eski sistem olan filestore’u inceleyerek başlıyalım. CEPH objeleri eğer Filestore kullanırsanız bir POSIX uyumlu bir dosya sistemi üzerinde (genellikle XFS) dosya olarak saklanmakta. Bu durumun avantajlarını/Dezavantajlarını sıralayacak olur isek filestore:

  • Uzun zamandır kullanıldığı için kararlı
  • Metadata (anahtar/değer çifletleri) dosya sisteminde levelDB üzerine tutuluyor.
  • PG’ler dizin, nesneler dosya olarak map edilmiş durumda
  • Çok fazla kişi tarafından kullanıldığı için bir sorun çıktığında çözüm bulma olasılığınız fazla
  • Veriler iki kez yazıldığı için yavaş (bluestore ile karşılaştırıldığına)
  • Enumaration problemleri var. CEPH nesne isimlendirmesini 32-bitlik hash olarak tutuyor, Posix readdir() dizin içindeki dosyaları sıralı vermediği için çok fazla dosya yaratılıp okunduğunda performans sorunlarına neden oluyor. Bunun direkt etkisi cluster obje sayısı arttıkça performansın yavaşlaması.
  • Yüksek CPU gücü gerektirmesi

Peki filestore kullandığınızda veri nasıl okuyup yazılıyor ?

  1. Ceph veriyi ilk olarak journal olarak tanımlanan diskin ayrı bir bölümüne yazar
  2. Veri daha sonra journal’dan OSD’ye sıralı (sequential) kopyalanır
    1. Journal olarak SSD kullanımı ile hızlandırılabilir.
    2. Rastgele I/O istekleri SSD ile karşılanıp SSD’den OSD’ye yazılır
  3. Veri ilk olarak birincil (Primary) PG’ye yazılır, oradan diğer (non-primary) PG’lere kopyalanır.

Bu yazdıklarımızın grafiksel olarak aşağıdaki şekilde gösterebiliriz.

Filestorewrite.png

Bu durumun en bariz problemi verinin iki kez (bir kez disk journal kısmına bir kez de yazılması). Atanmış değer olarak iki kopya daha tuttuğunuz düşünüldüğünde tek bir yazma işlemi için toplamda kopyalar ile yapılan işlemler ile birlikte 6 işlem yapmış olmanız gerekiyor!. Bu durumu hızlandırmak için journal olarak mümkün olduğu sürece ayrı SSD diskler kullanmanız tavsiye ediliyor. Yapılandırma sırasında bir 5 veya 6 dönen disk başına 1 SSD journal disk olarak bıraklıp bu dezavantaj giderilmeye çalışılıyor. Peki 5 veya 6 rakamı nereden geliyor diye soracaksınız. 1 adet diskin yazma hızının oralama 100MByte/saniye olduğu düşünüldüğünde SSD okuma hızlarıda 500-600MByte/saniye. Tüm diskleri aynı anda tam kapasite ile yazmak isterseniz 6 disk önerilen değer bu neden ile. Peki 8 disk takarsak ne olur ? IOPS ta bir sıkışma olmaz ama througputh açısından bir diska yazabileceğiniz maksimum anlıkveri miktarını 600/8 = 75MByte ile sınırlamış olursunuz.