You are on page 1of 24

GOOGLE FİLE SYSTEM

(GOOGLE DOSYA SİSTEMİ)

Batuhan ANAR
196051003
GFS NEDİR?

• GFS; Google’ın kendine özel olarak geliştirdiği geniş ölçekli, dağıtık loglanabilir (dijital
hareketlerin saklanması), kontrol altında tutulabilen bir dosya sistemidir.
• Google Dosya Sistemi (GFS), Google Inc. tarafından oluşturulan ve Google'ın genişleyen
veri işleme gereksinimlerini karşılamak için geliştirilmiş, ölçeklenebilir bir dağıtılmış
dosya sistemidir.
GFS NEDEN TASARLANMIŞTIR?

• Google’ın kendine özel bir dosya sistemi geliştirmesinin ana nedeni var olan genel
dosya sistemlerinin ihtiyaçlarını karşılamıyor olmasıdır.
• Gereksinimler:
• Farklı datacenterler (veri merkezi(özel kabinlerin ve bilgisayarların yer aldığı yer)
üzerinde çalışması
• Binlerce makinenin aynı hataya erişiminin sağlanması
• Yüksek boyutlu dosyaları desteklemesi
• Network üzerinden erişilen makineler arasında eşit yük dağılımı sağlaması ve dar
boğazları azaltması.
GFS ÖZELLİKLERİ

• Arıza toleransı
• Kritik veri çoğaltma
• Otomatik ve verimli veri kurtarma
• Yüksek toplam iş hacmi
• Büyük yığın sunucu boyutu nedeniyle istemci ve ana etkileşimin azalması
• Ad alanı yönetimi ve kilitleme
• Yüksek kullanılabilirlik
GFS ARAYÜZ

• GFS için standart bit API uygulanmıyor olmasına rağmen tanıdık bir dosya sistemi ara
yüzü sağlar.
• Diğer sistemlere benzer olarak hiyerarşik yapıda düzenlenmiş dizinler ve dosyalarla
ilgilenir. Dosyalar hiyerarşik olarak dizinlenmiştir.
• Dosyalara dosya yolu aracılığı ile erişilir. Dosya işlemleri için standartlaşmış olan dosya
oluşturma, silme, açma, kapama, okuma ve yazma işlemlerini gerçekleştirir.
• Diğer dosya sistemlerinin haricinde GFS snapshot(anlık) ve kayıt ekleme işlemlerini de
gerçekleştirir. Snapshot düşük maliyetle bir dosyanın bir kopyasını veya bir dizin ağacı
oluşturur.
• Kayıt ekleme çok sayıda clientin (müşteri, ağ üzerinde servera tabi olan bilgisayar) eş
zamanlı bir şekilde aynı dosyaya kayıt eklemesine izin verir aynı zamanda her bir
clientin kendi eklediği dosyanın bütünlüğünü korumayı garanti eder.
GFS MİMARİSİ
• GFS Kümesi
• 1 Master
• Multiple Chunkservers
• Multiple Clients
GFS Master
• Master Server, dosya yolu adlarını ve bu dosyalara ait metadatayı tutar. İstemciler ile
iletişimi GFS Master sağlar. Client lar ‘Master Server’ lar ile konuşarak erişmek
istedikleri datanın metadatasına bakarak datanın hangi Chunk Server üzerinde
tutulduğunu öğrenir.
GFS Chunk Server
• Gerçek datayı kendi diskleri üzerinde barındırırlar.
• Her bir Chunk Server, datayı 3 farklı Chunk Server’a herhangi bir server çöktüğünde datanın
erişilebilir olması amacıyla replike eder.
• Datalar (64 Megabayt) sabit uzunluklu chunklar halinde Chunk Serverlar üzerinde tutulur. Her bir
chunk global olarak tekli 64 bit chunk handle ile tanımlanmıştır. Bu tanımlayıcı master sunucuda
chunk yaratılırken atanır.
CHUNK SİZE

• Büyük dosyalarla işlem yapılmasını kolaylaştırmak için chunklar default olarak 64 MB’a
bölünmüştür.
• Chunk Size Avantajları
• Master ve Client arasındaki chunk lokasyon bilgisi iletişimini azaltmak
• Master’da saklanan meta datanın miktarını azaltmak
• Network yükünü azaltmak
• Chunk Size Dezavantajları
• Bir çok client küçük dosyalar için aynı dosyaya erişmek istediğinde chunk serverlar üzerinde
hot spot oluşturabilir.
METADATA KAVRAMI

 Master Server, 3 tip Metadata bilgisi saklar.


• Dosya adı ve bağlı olduğu Chunk adı
• Dosyalardan Chuncklara Haritalama
• Her bir Chunck replikalarının yerleri
 Bütün metadata Master Server’in hafızasında saklanır.
 İlk 2 tip metadata loglama işlemi içinde kullanılır.
MASTERİN GÖREV VE
SORUMLULUKLARI

• Metadata bilgilerini tutar.


• Namespace yönetimini sağlar.
• Periyodik olarak her bir Chunk sunucusuyla HeartBeat (kalp atışı) ismi verilen
mesajlarla iletişime geçerek, onların durumlarını sürekli kontrol eder.
• Yeni bir Chunk Sunucu oluşturma.
• Veriye erişim hızını ayarlar, kontrol eder.
• Veriler eğer belli bir eşiğin altına düşmüşse verileri yenden çoğaltmak ,re-replikasyon.
• Çöp toplama mekanizmasının çalıştırılması
• Eskiyen kopyaların silinmesi
SİSTEM ETKİLEŞİMLERİ

1. İstemci, Master’a hangi Chunk sunucusunun uygun veri tuttuğunu ve diğer replikaların nerde
olduğunu sorar.
2. Master Server birincil replikanın ve diğer replikaların yerlerinin nerede olduğunu istemciye
iletir.
3. İstemci bütün replikalara push işlemi gerçekleştirir.
4. Bütün replikalar kabul ettikten sonra istemci, birincil replikaya yazma isteği gönderir.
5. Birincil replika diğer bütün replikalara yazma isteğini iletir.
6. İkincil replikalar, birincil replikanın yazma işleminin tamamlamasından sonra cevap verir.
7. Birincil replika istemciye cevap verir. Hatalar tekrar denenerek handle edilir.
OKUMA
ALGORİTMASI

1. Uygulama, GFS istemciye


okuma isteği oluşturur.
2. GFS istemci, Master’a isteği
iletir.
3. Master, Chunk handle ve
replika lokasyonlarını cevap
olarak döner.
4. İstemci okuma yapacağı yeri
seçer ve istek gönderir.
5. Chunk sunucu datayı GFS
istemciye gönderir.
6. İstemci okuma yapacağı
verileri uygulamaya iletir.
YAZMA
ALGORİTMASI

1. Uygulama istek oluşturur.


2. GFS istemci, Master’e isteği
iletir.
3. Master , GFS istemciye
Birincil ve İkincil Replika
yerlerini yanıt olarak döner.
• 4. İstemci tüm Chunklara
yazmak için veriyi gönderir.
Veriler Chunk Serverlar
içindeki bufferlarda saklanır.
5. İstemci, birincil replikaya
yazma komutu gönderir.
6. Birincil replika yazma
komutunun gelmesiyle data
örneğini kendi buffera alır ve
chunka yazar.
7. Birincil replika yazıldıktan
sonra ikincil replikalara yazma
işleminin yapılması için seri
komutlar gönderir.
REPLİCA MANAGEMENT(REPLİKA
YÖNETİMİ)

• Veri kullanılabilirliği ve güvenilirliğini maksimize etmek.


• Bant genişliği kullanımını maksimize etmek
• Chunk replikalarının makine ve racklar arasında dağıtımını sağlar.
CREATİON, RE-REPLİCATİON VE
REBALANCİNG
• Replikalar 3 sebeple oluşturulur:
• Chunk oluşturma
• Re- replikasyon
• Yük dengeleme
• Rebalancing (yeniden dengeleme):
• Yük dağılımı GFS Master tarafından periyodik olarak incelenir ve daha uygun disk
alanı bulunduğunda yük dengeleme amacıyla replikalar uygun diske taşınabilir.
• Re-replikasyon:
• Kullanılabilir replika sayısı kullanıcı tarafından belirlenen değerin altına
düştüğünde yeniden replika oluşturulur.
• Creation:
• Disk kullanımı ortalamanın altına düştüğünde replika oluşturulur.
ÇÖP TOPLAMA MEKANİZMASI

• Dosya ile ilk olarak gizli dosya olarak işaretlenir.


• İşaretlenen bu gizli dosyalar 3 gün geçtikten sonra silinir.
• Dosya silindikten sonra, bellekteki metadatası da silinir.
• Düzenli olarak Chunk namespace’i taranır ve sahipsiz chunklar da silinir.
• Chunk serverlar periyodik olarak sahip oldukları kopyaları raporlar.GFS Master’de,
master’in metadatasında mevcut olan bütün chunk kimliklerini chunk servera gönderir.
Eğer chunk id si master metadatasında bulunmuyorsa aralarında bağ olmayacağı için
chunk server ilgili replikayı silebilir.
VERİ BÜTÜNLÜĞÜ

• Her Chunk sunucusu depolanan verilerin bozulup bozulmadığını tespit etmek


checksumming (sağlama) kullanır.
• Okuma hatası aldığında bunu Master’e bildirir.
• Master Chunku tekrar kopyalar.
• Diğer replikalar okunur ve karşılaştırılır.
• Checksum’lar bellekte tutulur.
• Data’dan ayrı olarak tutulur.
SONUÇ

• GFS dağıtık sistemlerde büyük miktarda verinin nasıl işlendiğini göstermesi açısından
model oluşturmuştur.
• Çok yüksek kapasiteli serverlar ve maliyeti fazla olan serverlar yerine çok sayıda
maliyeti uygun serverlar dağıtık ve eş zamanlı olarak kullanılarak yüksek performans
elde edilmiştir.
• GFS, çok sayıda eş zamanlı okuma ve yazmayı mümkün kıldığı için başarılı bir sistem
olarak geliştirilmeye devam etmektedir.
• Sistem bileşenlerinden kaynaklanan veri kayıplarını en aza indirme noktasında etkin
çözüm sağlar.
• GFS, Google’ın artan depolama ihtiyaçlarını karşılamaktadır.

You might also like