İçindekiler
İlk Bakışta Ceph
Son zamanlarda adını giderek artan sıklıkla duyduğunuz Ceph, nesne, blok ve dosya sistemi tipi depolama ortamlarının tamamını bir arada sunan ve depolama sistemlerinin geleceği olarak görülen açık kaynak kodlu bir depolama çözümüdür. 2003 yılında California Üniversitesi’nde Sage Weil adlı öğrencinin doktora tezi olarak başlayan Ceph projesi, açık kaynak dünyasında ilgili topluluğun ciddi katkıları ile hızla gelişerek günümüzde bir çok önemli projenin ilk akla gelen depolama tercihi olmaya başlamıştır. Özellikle OpenStack bulut ortamlarında de-facto depolama çözümü haline gelmiştir. Literatürde “Software-defined storage (SDS)” olarak geçen yazılım tanımlı depolama çözümleri arasında açık kaynak kodlu olması, donanım bağımsız çalışabilmesi ve oldukça yüksek performanslara çıkabilmesi sayesinde hep bir adım önde yer almaktadır. Başlangıcından itibaren exabyte seviyesinde ölçeklenebiilmek üzere tasarlanmış olan Ceph, tek nokta hatalarına karşı dayanıklı, yüksek erişilebilir yapıda hizmet vermektedir.
Öncelikle “Reliable Autonomic Distributed Object Store (RADOS)” olarak bilinen nesne tabanlı bileşeni tasarlanan Ceph, blok depolama sürücüsünün (RADOS Block Device (RBD)) eklenmesi ile nesne ve blok depolama ortamlarını birlikte uzun yıllardır sağlamakta iken henüz kurtarma (recovery) araçlarının düzgün çalışmaması nedeniyle dosya sistemi (CephFS) bileşenini bir süre üretim ortamları için önerememiş ve nihayet 2016 yılının ilk çeyreğinde üretim ortamlarında kullanılabilecek versiyonunu kullanıma sunmuştur. Böylece nesne ve blok depolama yanında dosya sistemi desteği de gelmiş ve bu ortamların tamamını bir arada sunan toplu bir çözüm (unified storage solution) haline gelmiştir. Nesne tabanlı ve blok depolama çözümleri erişim için özel kütüphaneler ve sürücüler gerektirdiği için sıradan uygulamalarda depolama olarak kullanımları limitli kalmıştır. Özellikle paylaşımlı erişim gerektiren uygulamalar tarafından kullanılamaması CephFS’in dosya sistemi sunması sayesinde geride geride kalmış ve Ceph açısından devrim niteliğinde bir gelişme kabul edilmiştir.
Ceph, dünyada her geçen gün logaritmik olarak artan veri üretimine gerçek anlamda çözüm sağlaması nedeniyle depolama çözümlerinin geleceği (Ceph is the future of storage) olarak görülmektedir. Bunun nedeni veri üretiminin hızlı artması ile sağlanan depolama ortamları arasındaki boşluğu doldurmasından ileri gelmektedir. Yatay ölçekte kolayca büyüyebilmesi sayesinde artan ihtiyacı karşılamak mümkün olmaktadır.
Yeni Nesil Depolama Mimarisi
Geleneksel depolama yöntemlerinde metadata bilgisinin akıllıca yönetildiği bir çözüm bulunmamaktadır. Metadata, kısaca veri ile ilgili bilginin bulunduğu kısımdır ve vernin nereye yazılıp nereden okunacağına karar verir. Geleneksel depolama mimarilerinde veri için merkezi bir lookup tablosu tutulur. Bir istemci okuma veya yazma isteğinde bulunduğunda her seferinde oldukça büyük olan bu metadata tablosundan ilgili kayda bakarak sonucu aldıktan sonra istemcinin talebi gerçekleştirilir. Büyük depolama ortamlarında bu gecikme daha rahat anlaşılır.
Ceph, bunun yerine CRUSH (Controlled Replication Under Scalable Hashing) isimli bir algoritma geliştirmiştir. Bu algoritma hem istemci hem de depolama bileşenlerine sahip sunucularda bulunur. Bir istemci depolama ortamına bir okuma veya yazma talebinde bulunacağı zaman bu algoritmayı veri ile birlikte çalıştırır ve sonucuna göre okuması veya yazması gereken hedefi bilerek doğrudan oraya erişir. Ceph mimarisinde bu aşamada devreye monitör sunucuları girer ve sadece hedefin o anda erişilebilir olup olmadığını kontrol eder. Eğer hedef erişilebilir durumdaysa doğrudan hedef üzerinde okuma veya yazma işlemi yapılır. Erişilebilir değilse algortima sonucu çıkan diğer alternatifler üzerinde işlem yapılır. Algoritma sonucu istemci ve sunucu üzerinde her daim aynı sonucu verir. CRUSH algoritmasının çalıştırılması çok kısa bir zamanda gerçekleştiği için verinin artması erişim süresini etkilemez.
CRUSH algoritması sayesinde Ceph, benzer dağıtık depolama ortamlarında olduğu gibi nesne tabanlı ve blok depolama için bir metadata sunucusuna ihtiyaç duymaz. CephFS metadata sunucusu kullanmaktadır. Metadata sunucusu kullanan diğer çözümlerde metadata sunucusu kaybedildiğinde, işlevsiz hale geldiğinde tüm depolama ortamındaki veri sağlam olsa bile hangi verinin nerede tutulduğu bilinmediği için veri kaybedilmiş olur. Oysa Ceph üzerinde metadata yerine CRUSH algoritması kullanıldığı için sadece ortamdaki sunucuların erişilebilir olup olmadıklarını kontrol eden monitör sunucuları bulunur. Bu monitör sunucuları birbiri ile yedekli çalışır, tamamı kaybedilse işlevsiz hale gelse bile sunucuların erişilebilirlik durumu bilinmediği için veriye erişim durur. Herhangi bir veri kaybı yaşanmaz. Sisteme kolayca bir monitör sunucusu eklenerek veriye tekrar erişim sağlanabilir. CRUSH algoritmasının hızı ve pratik kullanımı yanında en büyük avantajlarından birisi de budur.
RAID Devrinin Sonu
RAID teknolojisi depolama sistemlerinin yıllardır en temel yapı taşıdır. Son 30 yıldır neredeyse her türlü verinin farklı RAID yapılarında saklanabildiği görülmüştür. Ancak her devrin bir sonu olduğu gibi RAID devrinin de sonu yaklaşmaktadır. Yeni nesil depolama ihtiyaçlarını karşılamada RAID tabanlı sistemlerin yetersizlikleri görülmeye başlanmıştır.
Disk boyutlarının her geçen gün büyümesi ile birlikte RAID tabanlı bir sistemde meydana gelen disk arızasında yeni diskin oluşturulma süresi giderek uzamakta ve gereken hesaplama gücü de aynı oranda artmaktadır. Aynı anda bir disk daha bozulduğunda durum epey karışık hale gelmekte ve sistem performansı ciddi derecede düşmektedir. Ayrıca RAID tabanlı sistemlerde “yedek disk” adı altında bir çok disk tamamıyla atıl halde bekletilmektedir. Bununla birlikte RAID mekanizmaları aynı RAID grubu içinde disklerin aynı tipte, aynı özellikte olmasını şart koşmaktadır.
Geleneksel veya ticari RAID tabanlı çözümlerde bu özelliği sağlamak amacıyla RAID kartı olarak bilinen pahalı donanımlar da satın almak gerekmektedir. Bu da toplam maliyeti önemli ölçüde etkilemektedir. Sistemin büyüyebilmesi bu RAID kartların kapasitesine bağlıdır. RAID tipine bağlı olarak aynı anda arızalanan disk sayısı sınırlıdır. Örneğin RAID-6 yapıda en fazla iki disk arızası tolere edilebilmektedir.
Tüm bu kısıtlamaları ortadan kaldırmak ve maliyet etkin bir çözüm sunmak üzere Ceph kendi mimarisinde replikasyon mantığı ile veriyi dağıtık yapıda tutmaktadır. Başka bir deyişle verinin kopyaları ortamda birbirinden bağımsız olarak çalışan sunucularda saklanmaktadır. Dolayısıyla herhangi bir sunucunun tamamen işlevsiz hale gelmesi halinde bile diğer kopyalar üzerinden veriye erişim devam etmektedir. Bu mimari aynı zamanda veriye erişim hızını da arttırmaktadır. Depolama ortamındaki farklı kopyalar üzerinden farklı kısımlar okunarak birleştirilmek suretiyle veri okuma hızı da artmaktadır. Diskler tamamen heterojen yapıda, birbirinden farklı özellikte, boyutta olabilir. Disklere yazma oranları ağırlıklar koymak suretiyle Ceph tarafından kolayca yönetilebilir. İlaveten diskleri Ceph’e tanıtmak için sunuculara RAID kart olamadan doğrudan (HBA vasıtasıyla) bağlamak yeterlidir. Bu da maliyeti önemli ölçüde azaltmaktadır.
Diğer Depolama Çözümleri ile Karşılaştırma
GPFS: General Parallel File System, IBM tarafından geliştirilmiş dağıtık dosya sistemidir. Açık kaynak kodlu olmaması ilgiyi azaltmakta, entegrasyon sürecini zorlaştırmaktadır. Lisanslama ve destek maliyeti oldukça yüksektir. Ayrıca sınırlı sayıda depolama arayüzü desteği bulunmaktadır.
HDFS: HDFS, Java’da Hadoop için yazılmış dağıtık ölçeklenebilir dosya sistemidir. POSIX-uyumlu olmaması ve blok depolama desteğinden yoksun olması Ceph’e göre kullanışsız kılmaktadır. Yüksek erişilebilirlik çözümü olmaması güvenilirliğini azaltmaktadır. Tek olan NameNode bileşeni potansiyel tek nokta hatası adayıdır. Az sayıda büyük boyutlu dosya saklamaya daha elverişlidir.
Lustre: Lustre, açık kaynaklı bir paralel dağıtık dosya sistemi olup topluluk tarafından geliştirilmektedir. Metadata sunucusu daha önce bahsedildiği üzere verimsiz ve riskli bir bileşendir. Tüm depolama ortamının performansı metadata sunucusuna bağlıdır. Çok sayıda küçük boyutlu dosyaları saklamak yerine az sayıda büyük boyutlu dosyaları saklamaya daha elverişlidir. Dosya isimleri ile fiziksel adresleri map eden bir indeks tutması nedeniyle performans dar boğazı yaşanması muhtemeldir. Herhangi bir sunucu arızalandığında bunu algılayan bir mekanizma yoktur. Bu durumda istemcilerin manuel olarak başka bir sunucuya bağlanmaları gerekir.
GlusterFS: İlk olarak Gluster tarafından geliştirilen GlusterFS, daha sonra RedHat tarafından satın alınmıştır. Ağ üzerinden bağlanan ölçeklenebilir bir dosya sistemidir. Sistem yöneticisinin veriyi farklı coğrafik lokasyonda tutması için yerleştirme stratejisi üretmesi gerekir. Blok depolama dosya sistemi gibi özellikleri içermez, bunları ekstra add-on’lar sayesinde sunabilir.
Ceph: Ceph diğer depolama çözümlerine kıyasla özellik setine bakıldığında farkını açıkça ortaya koymaktadır. Geleneksel depolama sistemlerinin kısıtlarını ortadan kaldırmak üzere tasarlanmış olan Ceph, açık kaynak kodlu olması, donanım bağımsız olarak yazılım tabanlı çalışması, ölçeklenebilirliği, esnekliği, ekonomik olması gibi pek çok nedenle hızla yaygınlaşmaktadır. Dağıtık yapıda çalışması, olası bir arızayı tespit edip otomatik devir işlemlerini başlatması, exabyte seviyelerine kadar çıkabilmesi, nesne ve blok depolama ile dosya sistemini aynı anda sunabilmesi, sistem yöneticisi tarafından istenilen esneklikte mimarinin tasarlanabilmesi, metadata gerektiren çözümlere göre daha performanslı çalışması Ceph’in diğer artıları olarak sayılabilir. Ayrıca ticari ürünlerin sağladığı snapshot, clone, mirroring gibi tüm özelliklere sahip olması önemli özellikleri arasında yer almaktadır.
Dünyada Ceph Kullanımı
Yazının yazıldığı tarih itibariyle üretim seviyesinde çalışan bazı büyük ölçekli Ceph kümeleri aşağıdaki tabloda listelenmiştir:
Kurum | Büyüklük | Referans |
CERN | 30 PByte | İlgili rapor |
Yahoo | 500 PByte | İlgili Haber |
Monash Üniversitesi | 5 PByte | İlgili Haber |
Comcast | 7 PByte | İlgili Sunum |
Dreamhost | 3 PByte | İlgili Haber |
Bu yazıda özetlenen bir çok özelliği ile mevcut ve geleneksel depolama çözümlerinin problemlerini gidermek amacıyla tasarlanan Ceph, bu nedenle depolama ortamlarının geleceği olarak görülmektedir.
Ceph ile ilgili etkinlik ve gelişmeleri takip etmek için yeni açılan Ceph Türkiye meetup grubuna üye olabilirsiniz:
https://www.meetup.com/Turkey-Ceph-Meetup
Çok güzel bir yazı olmuş. Bilgilerinizi aktardığınız için teşekkür ederim.
Teşekkürler
Yıllar sonra bile okunduğunda bu işe başlayacaklar için güzel bir ön bilgi olacağını düşünüyorum. Emeğiniz için teşekkürler.