Neden Ceph Tercih Edilmeli?

Neden Ceph Tercih Edilmeli?

4 Mart 2018 Genel 0

Neden Ceph Tercih Edilmeli?

Günümüzde kullanılan verilerin neredeyse tamamının dijitalleşmesi sonucunda kullanılan sayısal veri miktarı her geçen gün hızla artmaktadır. Gartner, IDC ve Forrester gibi bağımsız araştırma şirketlerinin benzer raporlarında, kullanılan veri miktarının her 18-24 ay aralığında iki katına çıktığı ve buna bağlı depolama gereksinimlerinin her yıl %20 ila %40 arasında değişen oranlarda arttığı görülmektedir. 2018 yılı itibariyle dünyada kullanılan toplam veri sayısal miktarı yaklaşık 20 zetta bayt civarında iken bu rakamın 2020 yılı itibariyle 50 zetta bayt seviyesini geçmesi beklenmektedir.

Dünyada hızla artan veri kullanımına paralel olarak depolama sistemlerinin de bu gereksinimlere cevap verebilmek üzere hızla gelişmesi, belli ölçeklere ulaşması gerekmektedir. Ayrıca son yıllarda tüm dünyada hızla yayılan bulut, nesnelerin interneti, makine öğrenmesi, yapay zeka gibi teknolojilerin kullanılması kapasite yanında depolama çözümlerinin farklı yeteneklere sahip olma gereksinimlerini de beraberinde getirmiştir. Nesne tabanlı depolama çözümleri (object storage), aynı arayüzden farklı coğrafi lokasyon (region) desteği, yüksek ölçeklere çıkabilme ve yüksek performanslarda çalışabilme bunlardan sadece bazılarıdır.

Tüm bu gereksinimler birlikte ele alındığında, aynı zamanda ilgili yazıda RAID tabanlı sistemlerin kısıtları ve RAID devrinin sona ermekte olduğu gerçeği göz önünde bulundurulduğunda gerek talepleri karşılayabilmek, gerekse belirtilen kısıtları aşabilmek üzere çözümün ancak dağıtık depolama sistemleri ile sağlandığı görülebilmektedir.

Günümüzde farklı amaçlarla ortaya çıkmış bir çok ticari ve açık kaynak kodlu depolama çözümleri bulunmaktadır. Bunlar, açık kaynak kodlu (open source) olmaları, yatayda ölçeklenebilen mimariye sahip olmaları (scale-out) ve nesne tabanlı, blok ve dosya sistemi depolama çözümlerini tek bir platformda sağlayabilmeleri (unified) açısından kıyaslandığında aşağıdaki resimde görülen tablo ortaya çıkmaktadır.

 

Özetle, açık kaynak kodlu olan, yatayda büyüyebilen ve tek bir platform üzerinden blok, nesne ve dosya sistemi desteği veren başka çözümler de mevcut iken bunların tamamını aynı anda sağlayan tek çözüm Ceph olarak ortaya çıkmaktadır.  Kısaca önemli diğer dağıtık depolama çözümleri ile karşılaştırıldığında aşağıda özetlenen özellik veya kısıtlar göze çarpmaktadır.

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. Yedekli olmayan 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 eşleştiren 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 onarım 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.

Sayılan tüm bu özelliklerinin yanında açık kaynak kodlu olması yazılım anlamında ilk sahip olma maliyetini ortadan kaldırdığı gibi dünyanın çeşitli yerlerinden bir çok geliştiricinin ürünün gelişimine katkı sağlamasına izin vermektedir. Bulut servis sağlayıcılarından araştırma altyapılarına, barındırma hizmeti veren firmalardan üniversitelere, telekom operatörlerinden multimedya sektörüne kadar çok geniş bir kullanıcı topluluğu Ceph kullanmakta ve ihtiyaçları doğrultusunda Ceph’in geliştirilmesine destek vermektedir. Farklı iş yüklerinde ve kullanım alanlarında tercih edilen Ceph, topluluk bünyesindeki bu kullanıcı yelpazesinden oldukça iyi faydalanmış ve  hızla gelişerek son yılların en popüler depolama çözümü olmayı başarmıştır.

Ceph’in tercih edilme nedenleri arasında güçlü topluluk desteğinin yanında aşağıda daha detaylı açıklanan bir çok yeteneği ve özelliği bulunmaktadır.

Donanım ve Üretici Bağımsız Olması: Ceph, herhangi bir donanıma ve üreticiye bağlı kalmayacak şekilde tasarlanmıştır. “Commodity hardware” olarak adlandırılan ve diğer cihazlar ile uyumlu çalışan, maliyeti düşük herhangi bir üreticiye ait donanım kullanmayı mümkün kılmaktadır. Bir depolama kümesi oluşturmak üzere üzerine disk bağlanabilen herhangi bir üreticiye ait sunucular kullanılabilmektedir. Bu durum hem maliyetleri düşürmekte, hem de belli bir üreticiye bağlı kalmadan istenilen donanımı seçme imkanı sağlamaktadır. Aynı zamanda küme içerisinde hibrit yapıda yani farklı üreticilere ait, farklı özelliklerde disk, sunucu, ağ ekipmanı kullanma imkanı sağlamaktadır.

Yazılım Tabanlı Çalışması: Yazılım tabanlı çalışması, Ceph’in seçilen donanımdan bağımsız çalışmasına imkan vermekte, aynı zamanda yazılımın çevikliğini kullanarak esnek, verimli ve özelleştirilebilir bir altyapı kullanma imkanı sunmaktadır.

Yüksek Performans: Dağıtık mimarisi sayesinde Ceph, merkezi yapılardaki donanımdan kaynaklanan dar boğaz sorunlarından kurtulmakta, doğru tasarlandığı takdirde kullanılan disklerin fiziksel limitlerini zorlayabilmektedir. Yapılan testlerde aynı donanım ile çalışan ticari ürünlerden çok daha iyi performans sağladığı gözlenmiştir.

Yüksek Ölçeklenebilirlik: Veri gereksinimlerinin artması neticesinde logaritmik artan kapasite ihtiyaçlarına cevap verebilmek üzere, Ceph yatayda ölçeklenebilen mimaride tasarlanmıştır. Başka bir deyişle, kapasite arttırmak için Ceph kümesine ekstra sunucu eklemek yeterli olmaktadır. Bu konuda teorik bir limit olmamakla birlikte, tasarım aşamasında kolaylıkla exabyte seviyelerine çıkabilecek şekilde tasarlanmıştır. Gerçek hayatta 0.5 exabyte (500 petabyte) ölçeğinde Ceph kullanım örneği mevcuttur.

Bütünleşik Çözüm: Ceph’in en önemli ve eşsiz özelliklerinden birisi nesne, blok ve dosya sistemi ihtiyaçlarını tek bir platform üzerinden bütünleşik yapıda sağlayabilmesidir. Bu durum her bir depolama tipi ihtiyacı için ayrı bir ortam kurma, yönetme ve sürdürme gereksinimini ortadan kaldırarak çok önemli bir avantaj sunmaktadır.

Yüksek Erişilebilirlik: Tasarımı gereği Ceph bileşenleri kendi içlerinde yüksek erişilebilirlik sağlamaktadır. Küme içerisinde veri dağıtık halde tutulmakta, herhangi bir bileşendeki arıza veya erişim probleminde veriye erişim kesintisiz devam etmektedir. Üstelik donanım arızası gibi kalıcı bir problem halinde verinin kopyası küme üzerindeki farklı disklere otomatik olarak kopyalanmaktadır. Ceph bu yeteneğini devrim niteliğinde bir özellik ile geliştirerek, verinin kopyalarının sunucular bazında yedeklenmesini sağlayabildiği gibi, bu kopyaları farklı şasi, kabin, koridor, sistem odası, veri merkezi seviyesinde de yapabilmektedir. Başka bir deyişle gerekli altyapının mevcut olması halinde Ceph üzerindeki verilerin kopyaları istenirse farklı veri merkezlerinde bile tutulabilmekte, bir veri merkezinin tamamen erişilemez duruma gelmesi halinde bile veriye erişim kesintisiz devam etmektedir.

API Uyumluluğu: Ceph, sağladığı API konusunda da uluslararası standartları desteklemekte ve nesne depolama tarafında Amazon S3 ve OpenStack Swift API arayüzleri ile % 100 uyumlu bir ortam sunmaktadır. Bu uyumluluk sayesinde Amazon S3 ve OpenStack Swift ortamındaki veriler kolayca Ceph’e taşınabilmekte ve aynen orada olduğu gibi erişilebilmektedir. Bu özellik aynı zamanda Ceph’in OpenStack platformlarında doğrudan nesne depolama çözümü olarak bağlanabilmesine imkan vermektedir. Bunların dışında yönetimsel işlemleri gerçekleştirebilmek adına “Ceph Admin API” kullanılabilmektedir.

Yaygınlık: Ceph sahip olduğu bileşenler ve mimarisi itibariyle bulut iş yükleri başta olmak üzere bir çok ortama entegre olabilme özelliğine sahiptir. Özellikle OpenStack bulut ortamları için de-facto depolama çözümü haline gelen Ceph, ihtiyaç duyulan nesne, blok ve dosya sistemi ihtiyaçlarının tamamına tek başına cevap verebilen tek çözümdür.  Ceph’in gelişmiş özellikleri ve yetenekleri CloudStack ve OpenNebula gibi bulut çözümlerinde de tercih edilmesini sağlarken Proxmox gibi sanallaştırma ortamlarına da doğrudan bağlanabilmektedir. Hatta OwnCloud ve NextCloud gibi kurum içi entegre bulut ihtiyaçlarını karşılayan çözümlerde depolama sağlayıcısı olarak entegre edilebilmektedir.

Dağıtık Mimari: Ceph’in dağıtık mimarisi, verinin küme içerisinde dağıtılması sayesinde oluşabilecek problemlere karşı oldukça yüksek hata toleransı sağlarken veri kaybı ihtimalini de minimize etmektedir. Aynı zamanda disk arızalarında  verinin yeniden oluşturulma süresini oldukça hızlandırmaktadır.

Gelişmiş Özellikler: Ceph, diğer ticari depolama ürünlerinde öne çıkarılmaya çalışılan “thin provisioning”, klonlama, lokasyonlar arası bire-bir kopyalama (mirroring), anlık görüntü alma (snapshot) gibi tüm özellikleri desteklediği gibi daha önce bahsi geçen eşsiz özellikleri ile sayısız avantaj sağlamaktadır.

Esneklik: Ceph açık kaynak kodlu altyapısı ve konfigüre edilebilen çok sayıdaki özelliği ile başka hiç bir depolama ortamında bulunmayan derecede bir esneklik sağlamaktadır. Sistemi oluşturan tüm bileşenlerin bir çok özelliği konfigürasyon parametreleri yardımıyla özelleştirilebilmekte, bu sayede Ceph tamamen çalıştığı ortama özel bir çözüm haline getirilebilmektedir. Bu yazının hazırlandığı tarih itibariyle bir Ceph kümesinde değiştirilebilen yaklaşık 1000 parametre bulunmaktadır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir