Dağıtılmış dosya sistemlerinin geçmişi

Tamamlandı

Hatırlatmak gerekirse dağıtılmış dosya sistemi (DFS), birden çok dosya sunucusu arasında dağıtılmış dosyaları olan bir dosya sistemidir. Dağıtılmış dosya sisteminde istemcinin tüm dosya sistemi sunucularındaki tüm dosyaları kapsayan tek bir genel ad alanını görüntülediği unutulmamalıdır. DFS’ler, istemcilerin dosya sunucularındaki gerekli dosyaları ve dosya bloklarını bulabilmesi için meta veri yönetimini gerektirir. Bunlar genellikle birden çok dosya paylaşım düğümünde dağıtılır ve aynı anda birden çok kullanıcı tarafından kullanılmak üzere tasarlanmıştır. Tüm paylaşılan kaynaklarda olduğu gibi, tasarım konusunda birçok konu dikkate alınmalıdır: Performans, tutarlılık, hataya dayanıklılık ve kullanılabilirlik bunlardan bazılarıdır.

Dağıtılmış dosya sistemlerinin kökenleri ve evrimi

Dosya sistemleri büyük ölçüde yerel dosya sistemi olarak kullanılan UNIX dosya sisteminin ve BSD'nin Hızlı Dosya Sistemi'nin (FFS) etkisinde kalmıştır. Hatırlayacağınız üzere bu dosya sistemlerinin amacı, disk üzerindeki verileri hızlı ve güvenilir bir şekilde organize etmektir.

Kullanıcıların ağ üzerinden dosya paylaşımı yapmasını sağlamak için NFS gibi ağa bağlı dosya sistemleri ortaya çıkmıştır. NFS istemci-sunucu mimarisini kullanır ve bu mimaride sunucular, barındırdıkları verileri birden fazla istemciyle paylaşabilir. Bu basit protokol, günümüzde ağ üzerinden dosya paylaşımı yapmak için kullanılmaya devam etmektedir. NFS protokolünde dosyalar birden fazla sunucuya koordine bir şekilde dağıtılamaz. Her sunucu belirli bir sayıda dosya paylaşımında bulunabilir. Ad alanının genel görünümü de tutarlı değildir. İstemciler, NFS paylaşımlarını yerel dosya sistemi ağaçlarının herhangi bir noktasına bağlayabilir. Bu nedenle bu yaklaşım, binlerce istemci/sunucu için ölçeklendirme konusunda sınırlıdır ve yalnızca yerel alan ağlarında (LAN) kullanılabilir.

Andrew Dosya Sistemi (AFS), gerçek bir dağıtılmış dosya sisteminin erken dönem örneklerinden biridir. AFS, işbirliği yapan konakların (istemciler ve sunucular) hem yerel hem de geniş alan ağında dosya sistemi kaynaklarını verimli şekilde paylaşmasına olanak sağlar. AFS, tek bir bütünlüklü dosya sistemi sunan sunucuların yönetici gruplandırması olan hücrelerden oluşur. Hücreler tek bir genel ad alanı oluşturacak şekilde birleştirilebilir. AFS’deki verilere erişen istemciler önce dosyayı yerel olarak istemciye kopyalar. Dosya açık olduğu sürece dosyada değişiklikler yerel olarak yapılır. Dosya kapatıldığında AFS istemcisi değişiklikleri sunucuya geri eşitler. AFS’nin evrimiyle, özellikle de paylaşım semantiği ve çoğaltma açısından AFS üzerinde geliştirme sağlayan bir dağıtılmış dosya sistemi olan CODA ortaya çıkmıştır. AFS ve CODA, POSIX ile uyumludur ve bu sayede değişiklik yapmaya gerek kalmadan var olan UNIX uygulamalarıyla çalışabilir.

2003’te Google, büyük ticari donanım kümelerini kullanarak verilere verimli ve güvenilir erişim sağlamak için sıfırdan tasarlanmış GFS2 adlı dağıtılmış dosya sistemi tasarımını sundu. GFS, çok büyük dosyaları çoğaltılmış şekilde birden fazla sunucuda depolanan öbekler (genellikle 64 MB boyutunda) olarak depolamak için tasarlanmıştır. GFS, AFS gibi tekil bir istemci görünümüne sahip olsa da, dosya öbeklerinin konumu kullanıcıya açık olup istemcilere en yakındaki kullanılabilir çoğaltmadan dosyaları getirme fırsatı sunulur. Ancak GFS, POSIX uyumlu değildir ve bu nedenle uygulamaların GFS ile birlikte çalışabilmesi için özel bir API kullanılması gerekir. Hadoop Dağıtılmış Dosya Sistemi (HDFS), GFS'nin açık kaynak türevidir ve bu modülün ilerleyen bölümlerinde ayrıntılı bir şekilde anlatılacaktır.

2006 yılında Ceph, Weil ve diğerleri tarafından yazılan bir makalede yer almıştır.1 Ceph, yüz binlerce makineye ölçeklendirilebilen ve petabaytlarca veri depolayabilen bir dağıtılmış nesne depolama hizmeti olarak tasarlanmıştır. Uygulamalar Ceph ile iletişim kurmak için çeşitli API'leri kullanabilir. Bu seçenekler GFS ile benzer şekilde yerel API'den Ceph FS olarak adlandırılan POSIX ile uyumlu dosya sistemi API'sine kadar değişmektedir. Ceph ayrıca blok kullanan cihaz soyutlamasını destekler ve bu sayede sanal makine görüntülerini depolamak için uygun bir dosya sistemi haline gelir.

Google, zaman içinde GFS'yi Colossus olarak bilinen bir sisteme dönüştürmüştür.3.


Referanslar

  1. Weil, S. A., Brandt, S. A., Miller, E. L., & Maltzahn, C. (2006). Ceph: A scalable, high-performance distributed file system Proceedings of the 7th symposium on Operating systems design and implementation (OSDI) 307-320
  2. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung (2003). The Google File Systems 19th ACM Symposium on Operating Systems Principles
  3. McKusick, Kirk and Quinlan, Sean (March 2010). GFS: Evolution on Fast-forward Communications of the ACM