Teknik Detaylar

Merhaba Gluster: Dağıtık Dosya Sistemi Nedir?

← Teknik Detaylar
2020-12-10 ~ 2026-06-21 · 5 dk okuma
Merhaba Gluster: Dağıtık Dosya Sistemi Nedir?
Bu yazıyı yapay zekâ ile tartış
Sayfayı kopyala

💡 Özet (TL;DR):

  • GlusterFS Nedir?: Birden fazla sunucudaki depolama alanlarını birleştirerek devasa boyutta, yüksek erişilebilirlikli ve hata toleranslı tek bir havuz oluşturan açık kaynaklı, ağ tabanlı bir dağıtık dosya sistemidir (Distributed File System).
  • Temel Kavramlar: Sistemdeki sunucular Node (Düğüm), bu sunuculardaki paylaşılacak klasörler ise Brick (Tuğla) olarak adlandırılır. (Orijinal metindeki hatalı "köprü" terimi teknik doğrusu olan "tuğla" ile güncellenmiştir).
  • Volume Tipleri: İhtiyaca göre veriler tuğlalara dağıtılabilir (Distributed), yedekleme için çoğaltılabilir (Replicated), performans için parçalanabilir (Striped) veya hibrit yöntemler kullanılabilir.

1993 yılında 170 MB diskli ilk PC'mi aldığımda disk boyutunu duyan arkadaşlarım dehşete kapılmıştı. Bugün o verinin katbekat fazlasını 1 saniyede aktarabilen, arada sırada kullandığım 256 GB boyutunda bir flash disk çekmecemde duruyor.

Tabii bulut teknolojileri ve çok kullanıcılı sistemler geliştikçe saklanan veri miktarları da inanılmaz boyutta arttı. Bir blog için birkaç GB çok olsa bile, kullanıcı verisi ile sürekli büyüyen sistemler için terabaytlar bile yetersiz kalıyor. Verinin sadece büyük olması değil; sürekli ve yüksek hızda ulaşılabilir olması, hata ve kayıplara karşı güvende olması, kendisine bağımlı sistemlerin çalışmasını sekteye uğratmaması da çok önemlidir.


GlusterFS Hacim (Volume) Türleri Karşılaştırması

Hacim TürüMinimum Brick SayısıAvantajıDezavantajıEn Uygun Kullanım Senaryosu
Distributed (Dağıtık)1Maksimum depolama alanı ve hızlı ölçeklenmeYedeklilik yoktur; tek bir disk çökerse veri kaybı yaşanırGeçici veriler, log dosyaları
Replicated (Çoğaltılmış)2 (Tavsiye edilen: 3)Yüksek hata toleransı ve yedeklilikDepolama maliyeti yüksektir (kapasite yarıya düşer)Kritik kullanıcı verileri, veritabanı yedekleri
Striped (Parçalı)2Büyük dosyalar için yüksek okuma/yazma performansıYedeklilik yoktur; hata toleransı düşüktürBüyük medya sunucuları, devasa boyutlu tekil dosyalar
Distributed Replicated4Hem yüksek performans hem de yedeklilik sunarYüksek donanım maliyetiÜretim (production) ortamındaki kritik büyük sistemler

GlusterFS Nedir?

Tek bir fiziksel sunucu üzerinde, küçük bir sistem çalıştırırken farkına varmıyor olsak da, sunucu sayısı arttıkça dosya sistemi daha sorunlu ve daha önemli bir hal alıyor. Özellikle Docker veya Kubernetes gibi konteyner tabanlı uygulamalarda kalıcı depolamanın önemi de artıyor.

Ben GlusterFS ile başka bir "Merhaba" serisine konu olacak Kubernetes Cluster denemelerim sırasında, kalıcı saklama alanı (persistent storage) ihtiyacı doğduğunda tanışmıştım.


Gluster Ne Değildir?

Gluster bir dosya sunucusu değildir; Gluster, ağ tabanlı bir dosya sistemidir.

GlusterFS; binlerce istemci ve brontobaytlarca (10^15 terabayt) veriye kadar genişleyebilen açık kaynak kodlu, ağ tabanlı, dağıtık bir dosya sistemidir. Fiziksel depolama sunucularını ve çözümlerini yazılımsal katmanda birleştirerek çok daha büyük depolama ağları oluşturmayı sağlayan bir çözümdür.

Gluster hakkında geniş bilgi ve çok detaylı dokümantasyona Gluster web sitesinden ulaşabilirsiniz. Ben bu yazıda Gluster'ın en temel özelliklerinden bahsedeceğim.

Gluster'ın Önemli Özellikleri:

  • Ölçekleme (scaling), çoğaltma (replication) ve hatta coğrafi çoğaltma (geo-replication)
  • Yüksek kullanılabilirlik (high availability)
  • Kendini tamir edebilme (self-healing) yeteneği
  • Küme (cluster) yapısı

Gluster Hacim (Volume) Bileşenleri

Saklama tiplerini açıklamadan önce Brick (Tuğla) ve Node (Düğüm) arasındaki farka kısaca değinmek gerekiyor.

  • Node (Düğüm): Gluster ağımızdaki sunuculara işaret eder. Yani Gluster havuzumuza dahil ettiğimiz sunucuların her biri birer node'dur.
  • Brick (Tuğla): Node'lar üzerinde tanımlanan depolama dizinleridir. Her sunucu birer node iken, o node üzerinde birden fazla brick tanımlanabilir.

Hacim Tiplerinin Çalışma Prensipleri:

  • Dağıtık (Distributed Volume): Dosyalar tuğlalar (bricks) arasında dağıtılır. Örneğin, 1 TB + 1 TB kapasiteli iki tuğla ile toplam 2 TB veri saklarsınız.
  • Çoğaltılmış (Replicated Volume): Aynı dosyanın kopyaları birden fazla tuğlada saklanır. Örneğin, 1 TB + 1 TB iki tuğlada toplam 1 TB verinin iki kopyasını tutarsınız.
  • Parçalı (Striped Volume): Dosyalar parçalara bölünerek her bir parçası ayrı bir tuğlada saklanır. Örneğin, 1 TB kapasiteli 3 tuğlanız varsa, 3 TB'lık dosya 1 TB'lık parçalara bölünerek saklanır. Yazma ve okuma performansı artmış olur.
  • Dağıtık Çoğaltılmış (Distributed Replicated Volume): En az 4 tuğla gerekir. Dosyalar tuğlaların yarısı arasında dağıtık olarak saklanırken, diğer tuğlalarda bu tuğlaların birebir kopyası tutulur.
  • Dağıtık Parçalı (Distributed Striped Volume): Dosyalar iki veya daha fazla düğüm arasında parçalı olarak dağıtılır. Diğer yöntemlerden farkı, dağıtımın tuğla değil düğümler (nodes) arasında yapılmasıdır.

Hangi Durumda Hangi Hacim Türünü Kullanmalıyım?

  • Ölçeklendirme önemli fakat yedeklilik şart değilse (veya bu yedeklilik başka yazılım ya da donanım katmanları tarafından kontrol ediliyorsa) dağıtık hacimler kullanılmalıdır.
  • Yüksek güvenilirlikte ve kesintisiz ulaşılabilecek veriler saklayacaksanız çoğaltılmış hacimler kullanılmalıdır.
  • Çok büyük ve anlık kullanım sayısı yüksek dosyaların olduğu ortamlarda parçalı hacimler kullanılmalıdır.
  • Anlık kullanımı fazla, yüksek boyutlu dosyaların olduğu ve ölçeklendirme gerekecek sistemlerde dağıtılmış-parçalı hacimler kullanılmalıdır.
  • Yüksek güvenilirlik ve ölçeklendirme ihtiyacı olan sistemlerde dağıtık çoğaltılmış hacimler kullanılmalıdır. Dağıtık çoğaltılmış hacimler çoğu durumda daha iyi okuma performansı sağlar.

Gluster Kurulumu

Gluster'ı üretim ortamında sadece dosya sunucusu olarak ayrılmış ayrı bir cluster'a kurmak ideal olsa da, geliştirme veya öğrenme ortamlarında mevcut cluster'ınız üzerine kurmak da mümkündür. Eğer proje bütçeniz çok kısıtlı değilse işlemci ve bellek kapasitesi görece daha düşük, disk erişim hızları ve kapasiteleri yüksek olan ayrı bir cluster kurmanızı öneririm.

Gluster kurulumu "Merhaba" içerikli bir yazının sınırları dışında kalıyor; fakat istek gelmesi halinde sanal makine veya AWS EC2 üzerinde Gluster kurulumunu pratik olarak anlatan bir yazı veya video da hazırlayabilirim.

Bu Yazıda Yapılan Değişiklikler
  • 21.06.2026: GlusterFS mimarisindeki temel depolama birimi olan "Brick" kelimesinin teknik karşılığı hatalı "köprü" çevirisinden "tuğla" karşılığına güncellendi. Yazım hataları (kat ve kat -> katbekat, Tabi -> Tabii, sunculara -> sunuculara vb.) düzeltildi. Başlık SEO dostu hale getirildi. Hacim karşılaştırma tablosu ile özet paneli eklendi.
  • 11.05.2022: Yazı özeti düzenlendi.