Gluster tam olarak ne yapar?


12

Son 2 gündür gluster ile oynuyorum ve burada ve soru sistemlerinde sorular soruyorum. Bazı şeyleri gerçekten anlamıyorum. İnsanların şöyle şeyler söylediğini görüyorum

Sunucular arasında çoğaltılmış tuğlalar ayarlayın (yalnızca 3 kullandığınızdan, çoğaltılmış daha güvenli olurdu) ve her sunucu diğer tüm sunucuların dosyalarını 'yerel' olarak görecektir - bir sunucu başarısız olsa bile dosyalar çoğaltıldı diğer sunucular.

veya

Gluster, birimler (tuğlalar) arasında dosya senkronizasyonunu koruyacak ve bir sunucunun çevrimdışı olması nedeniyle herhangi bir tutarsızlıkla başa çıkacak 'kendini iyileştirme' özelliklerine sahiptir.

Ben yana monte sunucudan istemciye uzak hacmi (ler) nasıl sunucu düğümü gluster kolu yetmezliği, bir hacim elde monte edilmiştir ki? Ne birim denedim istemci üzerinde birimin bağlandığı klasöre erişilemez hale gelir ve engelini kaldırmak için umount kullanmak zorunda. Ve bundan sonra sunucudan içerik yok.

Bu, temelde herhangi bir açıklamada görmediğim şeydir : sunucu düğümü başarısız olduğunda ve unison veya rsync gibi içeriği gerçekten kopyalamanın mümkün olup olmadığı ne olur?

Yanıtlar:


8

Kısa bir süre önce kendi kullanımımız için GlusterFS'yi araştırmaya başladık, bu yüzden bu soru benim için ilginçti. Gluster, veri depolama şeklinizi ele almak için FUSE istemcisinde 'çevirmenler' olarak adlandırılanları kullanır. Burada ana hatları verilen çeşitli çevirmen türleri vardır:

http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.3

Özellikle sorduğunuz kişiye Otomatik Dosya Çoğaltma Çevirmeni veya AFR adı verilir ve burada ayrıntılı olarak açıklanmıştır:

http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator

Kaynak koduna bakıldığında, veri aslında düğümlere aynı anda yazılıyor, rsync'den çok daha iyi görünüyor!

Başarısızlık durumundan kurtulma konusunda bulduğum ilginç bir not var. Gluster sistemi, çoğaltma durumu değişikliklerinin aktif olarak farkında olmaması ve 'tetiklenmesi' gerektiğinden Ceph'den farklıdır. Bu nedenle, kümenizdeki bir düğümü kaybederseniz, Gluster'ın çoğaltılmasını sağlamak için her dosyayı aramanız gerekir:

http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_Triggering_Self-Heal_on_Replicate

Hata senaryosu mekanizmalarını dahili olarak açıklayan iyi bir sayfa bulamadım. Bununla birlikte, kaynak kodunu indirip istemciye bakarak, komutlar için kullandığı çeşitli zaman aşımları ve kümedeki diğer sistemlere sık sık yaptığı bir prob vardır. Bunların çoğunda TODO işaretleri var gibi görünüyor ve yakınsama süresi kritikse sizin için bir endişe olabilecek kaynak kodu değişikliği dışında şu anda yapılandırılamıyor.


Kendimi AFR hakkında öğrendim, ancak kullanırken, istemciye yazamadım, sadece sunucuda. Bu, arkasındaki mantığın bir sonucu mu, yoksa bakmam gereken bir şey mi?
cbaltatescu

2
Bu büyük olasılıkla bir yapılandırma problemidir (tasarımdan kaynaklanmaz).
polinom

3

Yalnızca 2 düğüm çoğaldığında, gluster otomatik bir rsync komut dosyasından çok farklı değildir. Her şey ancak 4 veya daha fazla depolama düğümünüz olduğunda ilginç olmaya başlar - istemci makineleriniz bir alan havuzu görür, ancak kurucu dosyalar tüm depolama düğümlerine (tuğlalar) yayılır. Bu, 4 sunucunuzda 10 TB yerel alan varsa, istemci makinelerinizin tek bir 20 TB ad alanı (çoğaltılmış veya 40 TB korumasız depolama alanı) görebileceği anlamına gelir.

Bir depolama tuğlası kullanılamadığında IO'yu denediğinde bir istemci makinede kısa bir hıçkırık (belki 30 saniye kadar) gördüm. Hıçkırıktan sonra, IO, hala hacim verilerinin tam bir setini tutan çevrimiçi sunucular olduğu sürece normal şekilde devam edecektir.


Gidester CTO'sunun nasıl çalıştığına ilişkin slideshare.net/Gluster/… sunumu.
polinom

1
Mesele şu ki, rsync'in yaptığı şeyi YAPMAMAK. Rsync, diğer makinedeki verilerin bir kopyasını sağlar. Gluster, master (2 düğümlü bir sunucu-istemci kurulumunda) başarısız olduğunda, hiçbir şey bırakmaz ya da anlayamadım, dolayısıyla soru.
cbaltatescu

2
Yalnızca 2 düğümünüz varsa ve düğümlerden biri bir istemciyse (yerel olarak herhangi bir veri depolamıyorsa), verilerle birlikte 'ana verilerin kaybedilmesi, istemcide IO'nun engellenmesine ve engellenmesine neden olur. Çoğaltma için yapılandırılmış birime ve istemcilere sahip en az 2 sunucuya ihtiyacınız vardır.
techieb0y


0

İstemci karşı karşıya sunucu başarısız olduğunda (yani IP / DNS istemci tarafından dosya sistemini bağlamak için kullanılan sunucu), tüm birim o istemciye çevrimdışı olur, yani birim üzerinde okuma / yazma yapamaz.

Ancak istemci başka bir sunucunun IP / DNS'sini kullanarak bağladıysa, birim o istemci için çevrimiçi olmaya devam eder. Ancak okuma / yazma işlemi başarısız / çökmüş örneğe gitmeyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.