(GFS) Google Dosya Sistemi
-
Upload
oemer-faruk-ince -
Category
Engineering
-
view
170 -
download
14
Transcript of (GFS) Google Dosya Sistemi
![Page 1: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/1.jpg)
Ömer Faruk İNCEYıldız Teknik Üniversitesi
24.12.2014
![Page 2: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/2.jpg)
Sunum Planı GFS Dosya Sistemi Nedir
GFS Neden Tasarlanmıştır
Tasarıma Genel Bakış
Arayüz
Mimari
Master Server
Chunk Server
Metadata
Okuma/Yazma Algoritmaları
Master İşlemleri
Çöp Toplama Mekanizması
Hata Töleransı
Veri Bütünlüğü
Sonuçlar
![Page 3: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/3.jpg)
GFS; Google’ın kendine özel olarak geliştirdiği genişölçekli(large scale), dağıtık loglanabilir (distributedtransaction log), kontrol altında tutulabilen(structured)bir dosya sistemidir.
Google Dosya Sistemi Nedir?
![Page 4: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/4.jpg)
Google’ın kendine özel bir dosya sistemigeliştirmesinin ana nedeni var olan genel dosyasistemlerinin ihtiyaçlarını karşılamıyor olmasıdır.
Gereksinimler: Farklı datacenter ler üzerinde çalışması
Binlerce makinenin aynı dataya erişiminin sağlanması(read, also write)
Yüksek boyutlu dosyaları desteklemesi
Network üzerinden erişilen makineler arasındaeşit yük dağılımı sağlaması(distrubiton of operations) ve darboğazları azaltması(reduce bottlenecks).
GFS Neden Tasarlanmıştır?
![Page 5: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/5.jpg)
GFS için standart bir API uygulanmıyor olmasına rağmen tanıdık birdosya sistemi arayüzü sağlar. Diğer sistemlere benzer olarakhiyerarşik yapıda düzenlenmiş dizinler ve dosyalarla ilgilenir. Dosyalarhiyerarşik olarak dizinlenmiştir. Dosyalara dosya yolu adı(pathname)aracılığıyla erişilir. Dosya işlemleri için standartlaşmış olan dosyaoluşturma, silme, açma, kapama, okuma ve yazma işlemlerinigerçekleştirir.
Diğer dosya sistemlerinin haricinde GFS snapshot(anlık) ve kayıtekleme işlemlerini de gerçekleştirir. Snapshot düşük maliyetle birdosyanın bir kopyasını veya bir dizin ağacı oluşturur. Kayıtekleme(Record append) çok sayıda clientin eş zamanlı bir şekilde aynıdosyaya kayıt eklemesine izin verir aynı zamanda her bir clientinkendi eklediği dosyanın bütünlüğünü korumayı garanti eder. Çokyönlü birleştirme, bir çok clientin aynı anda locklama olmadanekleme yapabilmesini sağlar.
Arayüz
![Page 6: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/6.jpg)
GFS Mimari
GFS Kümesi 1 Master
Multiple Chunkservers
Multiple Clients
![Page 7: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/7.jpg)
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 istedikleridatanın metadatasına bakarak datanın hangi Chunk Serverüzerinde tutulduğunu öğrenir.
![Page 8: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/8.jpg)
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 Megabyte) sabit uzunluklu chunklar halinde Chunk Server larüzerinde tutulur. Her bir chunk global olarak tekil 64 bit chunk handle iletanımlanmıştır. Bu tanımlayıcı master sunucuda chunk yaratılırken atanır.
![Page 9: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/9.jpg)
Chunk Size 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. Konfigüre edilebilir.
Chunk Size Avantajları Master ve Client arasındaki chunk lokasyon bilgisi iletişimini azaltmak.
Master’da saklanan metadata nı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.
![Page 10: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/10.jpg)
Metadata Kavramı
Master Server, 3 tip metadata bilgisi saklar.
1. Dosya adı ve bağlı olduğu Chunk adı
2. Dosyalardan Chuncklara Haritalama
3. 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.
![Page 11: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/11.jpg)
Master’in Görev ve Sorumlulukları
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 verileriyeniden çoğaltmak, re-replikasyon.
![Page 12: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/12.jpg)
Master’in Görev ve Sorumlulukları
Çöp toplama mekanizmasının çalıştırılması.
Eskiyen kopyaların silinmesi.
![Page 13: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/13.jpg)
Sistem Etkileşimleri1. İstemci, Master’a hangi Chunk
sunucunun uygun yeri tuttuğunu vediğer replikaların nerde olduğunusorar.
2. Master Server birincil replikanın vediğer replikaların yerlerinin neredeolduğunu istemciye iletir.
3. İstemci bütün replikalara push işlemigerçekleştirir
4. Bütün replikalar kabul ettikten sonraistemci, birincil replikaya yazma isteğigönderir.
5. Birincil replika diğer bütün replikalarayazma isteğini iletir.
6. İkincil replikalar, birincil replikanınyazma işleminin tamamlamasındansonra cevap verir.
7. Birincil replika istemciye cevap verir.Hatalar tekrar denenerek handle edilir.
![Page 14: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/14.jpg)
Okuma Algoritması1. Uygulama, GFS istemciye okuma isteği oluşturur.
2. GFS istemci, Master’e isteği iletir.
3. Master, Chunk handle ve replika lokasyonlarınıcevap olarak döner.
![Page 15: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/15.jpg)
Okuma Algoritması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.
![Page 16: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/16.jpg)
Yazma Algoritması1. Uygulama istek oluşturur.
2. GFS istemci, Master’e isteği iletir.
3. Master, GFS istemciye Birincil ve İkincil Replikayerlerini yanıt olarak döner.
![Page 17: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/17.jpg)
Yazma Algoritması4.İstemci tüm Chunklara yazmak için veriyi gönderir.
Veriler Chunk Serverlar içindeki bufferlarda saklanır.
![Page 18: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/18.jpg)
Yazma Algoritması
5. İstemci, birincil replikaya yazma komutu gönderir.
6. Birincil replika yazma komutunun gelmesiyle data örneğini kendi buffera alır ve chunk a yazar.
7.Birincil replika yazıldıktan sonra ikincil replikalara yazma işleminin yapılması için seri komutlar gönderir.
![Page 19: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/19.jpg)
Snapshot Sistemin o an için bir kopyasının oluşturulduğu anlık
görüntüdür. Çok büyük veri setlerinin kopyalarının oluşturulması
Yapılan değişikliği basit bir şekilde geri almak için kontrol noktası görevi görür.
Master bir snapshot isteği aldığı zaman, ilk olarak Chunksunucularındaki tamamlanmamış görevleri iptal ederekChunk serverin anlık görüntüsü alınır.
![Page 20: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/20.jpg)
Replica Management Veri kullanılabilirliği ve
güvenilirliğini maksimize etmek.
Bant genişliği kullanımını maksimize etmek
Chunk replikalarınınmakine ve racklararasında dağıtımını sağlar.
![Page 21: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/21.jpg)
Creation, Re-replication and Rebalancing Replikalar 3 sebeple oluşturulur.
Chunk Oluşturma Re-replikasyon Yük dengeleme(Load balancing)
Creation Disk kullanımı ortalamanın altına düştüğünde replika oluşturulur.
Re-replikasyon Kullanılabilir replika sayısı kullanıcı tarafından belirlenen
değerin altına düştüğünde yeniden replika oluşturulur. Rebalancing
Yük dağılımı GFS Master tarafından periyodik olarak incelenir vedaha uygun disk alanı bulunduğunda yük dengeleme amacıylareplikalar uygun diske taşınabilir.
![Page 22: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/22.jpg)
Çöp Toplama Mekanizması Dosya 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 server lar periyodik olarak sahip oldukları kopyalarıraporlar. GFS Master de, master’in metadatasında mevcutolan bütün chunk kimliklerini chunkserver a gönderir. Eğerchunk id si master metadatasında bulunmuyorsaaralarında bağ olmayacağı için chunk server ilgili replikayısilebilir.
![Page 23: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/23.jpg)
Hata Çözümleri ve Önlemleri Yüksek Erişebilirlik - Süreklilik
Hızlı kurtarma
Master and Chunkservers birkaç saniyede yeniden başlatılabilme.
Chunk Replikasyonu Her bir chunk farklı chunkserverlar üzerindeki farklı
tracklere kopyalanabilir. Kullanıcılar dosya adının farklı parçaları için farklı seviyeler belirleyebilir.
Default olarak 3 replika olarak belirlenmiştir.
• Shadow masters Veribütünlüğünü kontrol eder.
Her bir Chunk için 64 KB sağlama bloğu vardır.
![Page 24: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/24.jpg)
Veri Bütünlüğü Her Chunk sunucusu depolanan verilerin bozulup
bozulmadığını tespit etmek checksumming(sağlama) kullanır.
Checksum’lar bellekte tutulur.
Data’dan ayrı olarak tutulur.
Okuma hatası aldığında bunu Master’e bildirir.
Master Chunk u tekrar kopyalar.
Diğer replikalar okunur ve karşılaştırılır.
![Page 25: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/25.jpg)
Sonuçlar
GFS dağıtık sistemlerde büyük miktarda verinin nasıl işlendiğinigöstermesi açısından model oluşturmuştur.
Çok yüksek kapasiteli serverlar ve maliyeti fazla olan serverlaryerine ç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 azaindirme noktasında etkin çözüm sağlar.
GFS, Google’ın artan depolama ihtiyaçlarını karşılamaktadır.
![Page 26: (GFS) Google Dosya Sistemi](https://reader034.fdocument.pub/reader034/viewer/2022042503/55a5eedc1a28abfd6a8b4806/html5/thumbnails/26.jpg)
Data Integrity Each chunkserver uses checksumming to detect
corruption of stored data.
Checksums are kept in memory.
Separate from data.
On read error, error is reported to master.
Master will re-replicate the chunk.
Requestor read from other replicas
Teşekkürler