Ceph: Depolamanın Geleceği

Ceph: Depolamanın Geleceği

4 Mart 2018 Genel 0

Ceph: Depolamanın Geleceği

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çeklenebilmek üzere tasarlanmış olan Ceph, tek nokta hatalarına karşı dayanıklı, yüksek erişilebilir yapıda hizmet vermektedir.

Sage Weil’in doktora çalışması sırasında ortaya çıkan Ceph, açık kaynak kodlu bir proje olarak 2004 yılında başlamış ve açık kaynak LGPL lisansı ile 2006 yılında dağıtılmaya başlamıştır. Doktora çalışmasının bitmesiyle birlikte Sage, küçük bir mühendis ekibiyle birlikte Los Angeles merkezli barındırma hizmeti veren DreamHost firmasını kurmuş, firmanın da desteği ile birlikte Ceph çalışmalarına devam etmiştir. 2012 yılında açık kaynak kodlu devam eden Ceph kullanıcılarına kurumsal destek vermek üzere Inktank isimli startup şirketini kurarak hızla büyütmüştür. Giderek artan ilgi neticesinde 2014 yılında Redhat, 175 milyon dolar bedelle Inktank firmasını satın almış ve Sage Weil Redhat bünyesinde çalışmaya başlamıştır. Her geçen gün artan topluluk desteği ile Ceph, açık kaynak dünyasında önemli projeler arasında yer almaya devam etmektedir.

İlk olarak “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 dosya sistemi (CephFS) bileşeninin de 2016 yılının ilk çeyreğinde kullanıma sunulması ile birlikte tüm ihtiyaçlara tek bir platform üzerinden cevap verebilen bütünleşik bir çözüm (unified storage solution) haline gelmiştir. Özellikle paylaşımlı yani birden fazla istemci üzerinden aynı depolama birimine eş zamanlı erişim gerektiren uygulamalar tarafından da kullanılabilmesi CephFS sayesinde gerçekleşmiş 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 depolamanın geleceği (Ceph is the future of storage) olarak görülmektedir. Bunun nedeni veri üretiminin hızlı artması ile mevcut depolama ortamlarının kısıtlı imkanları arasındaki önemli boşluğu doldurmasından ileri gelmektedir. Yatay ölçekte kolayca büyüyebilmesi sayesinde artan ihtiyacı dağıtık mimaride kolayca 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 verinin 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. Sadece CephFS, dosyaların hiyerarşik yapıda tutulması sebebiyle  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.

Bir cevap yazın

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