Upload
oemer-faruk-ince
View
171
Download
14
Embed Size (px)
Citation preview
Ömer Faruk İNCEYıldız Teknik Üniversitesi
24.12.2014
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
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?
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?
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
GFS Mimari
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 istedikleridatanı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 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.
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.
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.
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.
Master’in Görev ve Sorumlulukları
Çöp toplama mekanizmasının çalıştırılması.
Eskiyen kopyaların silinmesi.
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.
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.
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.
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.
Yazma Algoritması4.İstemci tüm Chunklara yazmak için veriyi gönderir.
Veriler Chunk Serverlar içindeki bufferlarda saklanır.
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.
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.
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.
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.
Çö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.
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.
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.
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.
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