Dağıtılmış Depolama Dosya Sistemi - Hangisi / Kullanıma hazır bir ürün var mı?


31

İle Hadoop'un ve CouchDB baştan Bloglar ve aslında bir dağıtılmış-hataya dayanıklı depolama (motor) çalışır ne İlgili haber.

  • CouchDB aslında herhangi bir dağıtım özelliğine sahip değil, benim bilgime göre girişleri otomatik olarak dağıtacak tutkal ya da tüm veritabanları bile eksik.
  • Hadoop çok yaygın bir şekilde kullanılıyor gibi görünüyor - en azından iyi bir baskı alıyor, ancak yine de tek bir başarısızlık noktası var: NameNode. Artı, sadece FUSE üzerinden monte edilebilir, HDFS'nin aslında Hadoop'un asıl amacı olmadığını biliyorum
  • GlusterFS'in paylaşılan hiçbir fikri yok ama son zamanlarda beni pek de kararlı kılmayan birkaç yazı okudum
  • Parlaklık ayrıca özel bir meta veri sunucusu kullandığı için tek bir hata noktasına sahiptir.
  • Ceph tercih edilen oyuncu gibi görünüyor ama ana sayfa hala alfa aşamasında olduğunu belirtiyor.

Öyleyse asıl soru, dağıtılmış dosya sisteminin şu özellik setine sahip olduğudur (belirli bir düzen yoktur):

  • POSIX uyumlu
  • düğümlerin kolayca eklenmesi / çıkarılması
  • paylaşılan hiçbir şey kavramı
  • ucuz donanımlarla çalışır (AMD Geode veya VIA Eden sınıfı işlemciler)
  • kimlik doğrulama / yetkilendirme yerleşik
  • Bir ağ dosya sistemi (Farklı ana bilgisayarlara aynı anda monte edebilmek istiyorum)

Olması güzel:

  • yerel olarak erişilebilen dosyalar: Düğümü aşağıya çekerek bölümü standart bir yerel dosya sistemine (ext3 / xfs / neyse ...) bağlayabilir ve dosyalara erişebilirim

Ben değilim değil , barındırılan uygulamalar için bana bizim donanım kutuları her 10GB söylemek alıp ağımız mevcut olduğunu saklama alanına sahip, kolayca ana bir çok üzerinde monte sağlayacak ziyade bir şeyler arayan.


Peki neyle sonuçlandın? Geçerli kurulumunuzu duymanız ilginç olurdu.
MattBianco

Lustre, bunu yazdığınızdan beri aktif / pasif MDS'ler ekliyor gibi görünüyor, bu nedenle başka bir görünüme ihtiyaç duyabilir.
pjz

Tecrübelerime göre, GlusterFS istikrarlı ancak performansı oldukça zayıf. Daha iyi performans için, ciddi bir şekilde üst seviye donanıma ihtiyacınız olacak - temel olarak RDMA. Önemli olan, tüm sunucular ve GlusterFS istemci makinesi arasındaki gecikmedir.
Mikko Rantalainen

Yanıtlar:


9

POSIX gereksinimini bırakmak zorunda kalacağınızı düşünüyorum, çok az sayıda sistem bunu uygular - aslında NFS bile gerçekten değildir (kilitleri düşünür vb.) Ve bunun artıklığı yoktur.

Eşzamanlı çoğaltma kullanan herhangi bir sistem buzul yavaş olacaktır; eşzamansız çoğaltmaya (veya "nihai tutarlılık") sahip herhangi bir sistem POSIX kurallarını ihlal edecek ve "geleneksel" bir dosya sistemi gibi davranmayacaktır.


Hem nihai tutarlılığı hem de sıkı tutarlılığı destekleyen herhangi bir dosya sistemini biliyor musunuz, belki her ikisi için de ayarlanabilir ve 2 montaj oluşturabilir mi?
CMCDragonkai

16

Gerisi ile konuşamam, ancak 'dağıtılmış depolama motoru' ve 'dağıtılmış dosya sistemi' arasında şaşkın görünüyorsunuz. Aynı şey değiller, aynı şeyle karıştırılmamalılar ve asla aynı şey olmayacaklar. Bir dosya sistemi, işlerin sabit sürücüde nerede bulunduğunu izlemenin bir yoludur. Hadoop gibi bir depolama motoru, bir anahtar ile tanımlanan veri yığınını takip etmenin bir yoludur. Kavramsal olarak, fazla fark yok. Sorun şu ki, bir dosya sistemi bir depolama motorunun bir bağımlılığıdır ... sonuçta bir blok cihaza yazmanın bir yoluna ihtiyacı vardır, değil mi?

Bir yana, Bütün bunlar olabilir bir üretim ortamında dağıtılmış dosya sistemi olarak ocfs2 kullanımına konuşur. Eğer cesur detaylar istemiyorsanız, bu satırdan sonra okumayı bırakın: Çok havalıdır, ancak düşündüğünüzden daha fazla kesinti anlamına gelebilir.

Son birkaç yıldır üretim ortamında ocfs2 kullanıyoruz. Sorun değil, ancak birçok uygulama için uygun değil. Gereksinimlerinize gerçekten bakmalı ve ne olduklarını bulmalısınız - hatalarınızdan düşündüğünüzden çok daha fazla bir enleminiz olduğunu fark edebilirsiniz.

Örnek olarak, ocfs2, kümeyi yerleştirecek her makine için bir bölmeye sahiptir. Diyelim ki dört web makineniz var ve mkfs.ocfs2'yi kullanarak bu bölümü yaptığınızda, kendinize büyümesi için yer açmak için toplam altı makine olacağını belirtiyorsunuz. Bu dergilerin her biri yer kaplar ve bu da disklerde depolayabileceğiniz veri miktarını azaltır. Şimdi, yedi makineye ölçeklendirmeniz gerektiğini varsayalım. Bu durumda, tüm aşağı çekmek gerekirküme (yani, tüm ocfs2 bölümlerinin bağlantısını kes) ve boş yer olması koşuluyla ek bir günlük oluşturmak için tunefs.ocfs2 yardımcı programını kullanın. Sonra ve ancak o zaman yedinci makineyi kümeye ekleyebilir (bir yardımcı programı kullanmıyorsanız, bir metin dosyasını kümenin geri kalanına dağıtmanızı gerektirir), her şeyi geri getirin ve sonra bu bölümün tümünü yedi makineleri.

Neyi kastettiğimi anla? 'Her zaman çevrimiçi' anlamına gelmesi beklenen yüksek erişilebilirlik olması gerekiyordu, ama tam orada bir sürü aksama süreniz var ... ve tanrı disk alanı için kalabalık olduğunuzdan korusun. Ocfs2 kalabalığında ne olacağını görmek istemezsin.

Ocfs2 kümelerini yönetmenin 'tercih edilen' yolu olan evms'in, dodo kuşunun clvmd ve lvm2 lehine gittiğini unutmayın. (Ve evms iyi kurtuluş.) Ayrıca, kalp atışı hızla openais / kalp pili yığını lehine bir zombi projesine dönüşecek. (Bir yana: ocfs2 için ilk küme yapılandırmasını yaparken, kalp atışı yerine küme motoru olarak 'pcmk' belirtebilirsiniz. Hayır, bu belgelenmemiş.)

Ne pahasına olursa olsun, kalp pili tarafından yönetilen nfs’e geri döndük, çünkü birkaç saniye kapalı kalma süresi veya birkaç tcp paketi, kalp pili bir nfs paylaşımını başka bir makineye geçirirken, temelde gördüğümüz kapalı kalma süresiyle karşılaştırıldığında önemsiz ocfs2 kullanırken makine ekleme gibi paylaşılan depolama işlemleri.


2
Sadece bunun tam olarak benim OCFS2 / Pacemaker vs. NFS konusundaki deneyimim olduğunu söylemek istedim. OCFS2'yi bir süre kümelenmiş veri deposu olarak denedikten sonra çok eksik buldum. Bu arada, HA NFS sistemimiz cazibe gibi çalışıyor.
Kamil Kisiel

1
OCFS2 kesinlikle baktığım şey değil. Dağıtılmış olarak, merkezi bir depolama örneğine sahip bir şey değil, daha çok "küme" nin geri kalanındayken hala depolama sağlayan düğümleri kolayca ekleyebildiğim / kaldırabildiğim bir şey demek istemiyorum
serverhorror,

2
Bu cevaba hala daha fazla oy aldığım için, artık GlusterFS'i üretimde nfs yerine kullanıyoruz. Bununla birlikte, VM disk görüntülerini, veritabanı depolama dosyalarını (sqlite veya myisam veya her neyse) veya gluterf'larda çoğaltma kirpiğine neden olduğu için sıkça değişmesi muhtemel olan diğer dosyaları SIRMAMIZ. Yerel olarak LVM'deki VM ana bilgisayarlarında depoladıklarımız ve yük devretme sitelerine dağıtmak veya yerleşik çoğaltma kullanmak için DRBD'yi kullanıyorlar.
Karl Katzke




3

Peki ya Xtreemfs ? sürüm 1.4 (Kasım 2012) Üretim Kalitesi olarak kabul edilir.

POSIX uyumludur ve olağanüstü otomatik hata toleransına sahiptir.


2

Parlaklık, fazlalık için aktif / pasif konfigürasyonda çoklu meta veri depolarına izin verir, böylece tek bir hata noktası olmaz.

OCFS2 de bakmaya değer olabilir.

Birden fazla eşzamanlı ağ erişimi gereksinimini ortadan kaldırmanın, iSCSI veya hatta cifs veya nfs gibi bir şeye geçmenin mümkün olduğunu unutmayın. Dezavantajı ise, uberArray'ınızın parçalarını, alana ihtiyaç duyan her sunucu için ısırıklara ayırmanız gerekir.


2

Akademik / geliştirme amaçlı olmadığı sürece, bu tür bir şeye projenin genel şartlarından başlayarak yaklaşılmalıdır. Dağıtılmış dosya sistemlerinin çoğu, ciddi bir dağıtım için yeterince olgun değildir; örneğin, her şey gevşerse ne yaparsınız? Eğer akademik / gelişim amaçlı ise, bu çok şey öğrenip çok fazla sorunu çözebileceğiniz için bu gerçekten iyi bir şey.

POSIX anlambilimine gerçekten ihtiyacınız olup olmadığını sorgulayan yorum iyi bir başlangıçtır. POSIX dışı "dosya sistemi" anlambilimi çok daha esnek olabilir, bu da çok daha güvenilir sistemlere yol açabilir.

Bu eski bir uygulama ise, neden modern bir dağıtılmış dosya sisteminin en iyi çözüm olarak değerlendirilebileceğini merak ediyorum.

Beni yanlış anlama - bunlar inanılmaz eğlenceli oyuncaklar. Yaygın olarak kullanılmayan ve ayrıldığında çözülmesi çok zor olan karmaşık bir birbirine bağlı çözümden sorumlu olmak istemem.


1

Gerçekten, kesinlikle pozitif bir POSIX anlambilimine mi ihtiyacınız var? Özel bir veri deposunu kullanabilirseniz, hayat çok daha kolay hale gelir. Etkili bir şekilde çok büyük bir dağıtılmış anahtar-değer deposu olan dahili olarak yazılmış bir veri deposuna sahibiz. İçinde bir dosya saklar ve bir jetonu geri alırsın. Dosyayı geri istiyorsan, daha önce verdiğin notu ver. Dağıtılır, paylaşılır, hiçbir şey paylaşılmaz, veriler üç kez çoğaltılır, düğümler hem depolama sunucuları hem de kontrol eden sunucular istenirse eklenebilir ve kaldırılabilir.


Ne yazık ki gerçekten POSIX anlambilimine ihtiyacım var. Yerel dosya sistemine malzeme depolayan bir sürü "eski uygulama" var. Bunların hepsini yeniden yazma kesinlikle herhangi bir bütçenin dışında
serverhorror

Diğer gereksinimlerinden bazılarını bırakman gerektiğinden şüpheleniyorum. GlusterFS, Luster, OCFS2, GFS'ye bakıyordum ama paylaşılan hiçbir şey bulamayacağınızdan şüpheliyim.
David Pashley

en.wikipedia.org/wiki/… dağıtılmış dosya sistemlerini listeler, ancak bunların bir kaçı POSIX'tir.
David Pashley

Bir süre önce, bir çeşit AFS kullandım (şimdi OpenAFS nedir). İşe yaradı ama karmaşıktı ve tuhaflıklar vardı.
Jauder Ho

1

Parlaklık ayrıca özel bir meta veri sunucusu kullandığı için tek bir hata noktasına sahiptir.

Parlaklık, yerine çalışma desteklemek için tasarlanmıştır ve bir MDS / MDT / OSS, ulaşılabileceği birkaç adrese sahip olabilir, hizmeti atlatmak için kalp atışı kullanılabilir.

Bazı yeni sürümlerin, unmount'un çalıştığı yerlerde sorunlara sahip olduğunu ancak diske hala uçuşta olan veriler olduğunu unutmayın.


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.