26
Ömer Faruk İNCE Yıldız Teknik Üniversitesi 24.12.2014

(GFS) Google Dosya Sistemi

Embed Size (px)

Citation preview

Page 1: (GFS) Google Dosya Sistemi

Ömer Faruk İNCEYıldız Teknik Üniversitesi

24.12.2014

Page 2: (GFS) Google Dosya Sistemi

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

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

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

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

GFS Mimari

GFS Kümesi 1 Master

Multiple Chunkservers

Multiple Clients

Page 7: (GFS) Google Dosya Sistemi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Çö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

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

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

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

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