(GFS) Google Dosya Sistemi

Post on 15-Jul-2015

170 Views

Category:

Engineering

14 Downloads

Preview:

Click to see full reader

Transcript

Ö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

top related