GlusterFS ve Windows ile SPOFS'den Kaçınmak


10

İşleme fonksiyonumuz için kullandığımız bir GlusterFS kümemiz var. Windows'un ona entegre olmasını istiyoruz, ancak bir GlusterFS birimine hizmet veren bir Samba sunucusu olan tek hata noktasından nasıl kaçınılacağını bulmakta sorun yaşıyoruz.

Dosya akışımız şu şekilde çalışır:

GlusterFS Belge Akışı

  1. Dosyalar bir Linux işlem düğümü tarafından okunur.
  2. Dosyalar işlenir.
  3. Sonuçlar (küçük olabilir, oldukça büyük olabilir) yapıldıkça GlusterFS birimine geri yazılır.
    • Sonuçlar bunun yerine bir veritabanına yazılabilir veya çeşitli boyutlarda birkaç dosya içerebilir.
  4. İşlem düğümü, kuyruktan ve GOTO 1'den başka bir işi alır.

Gluster, dağıtılmış bir hacim ve anında çoğaltma sağladığı için harika. Afet esnekliği güzel! Severiz.

Ancak, Windows'un yerel bir GlusterFS istemcisi olmadığından, Windows tabanlı işlem düğümlerimizin dosya deposuyla benzer şekilde esnek bir şekilde etkileşime girmesi için bir yol bulmamız gerekir. GlusterFS belgelerine durumları , Windows erişimi sağlamak için bir yol üstünde bir Samba sunucusu kurmak olduğunu GlusterFS hacmini monte. Bu şöyle bir dosya akışına yol açar:

Winders üzerinden GlusterFS belge akışı

Bu benim için tek bir başarısızlık noktasına benziyor.

Bir seçenek Samba'yı kümelemektir , ancak bu şu anda ve dolayısıyla çalışmayan dengesiz koda dayanmaktadır.

Başka bir yöntem arıyorum.

Attığımız veri türleri hakkında bazı önemli ayrıntılar:

  • Orijinal dosya boyutları birkaç KB ile onlarca GB arasında herhangi bir yerde olabilir.
  • İşlenen dosya boyutları birkaç KB ile GB veya iki arasında olabilir.
  • .Zip veya .tar gibi bir arşiv dosyasında kazma gibi belirli işlemler, içerilen dosyalar dosya deposuna içe aktarıldıkça daha fazla yazmaya neden olabilir.
  • Dosya sayıları 10 milyona girebilir.

Bu iş yükü "statik iş birimi boyutu" Hadoop kurulumuyla çalışmaz. Benzer şekilde, S3 tarzı nesne depolarını değerlendirdik, ancak onları eksik bulduk.

Uygulamamız Ruby'de özel olarak yazılmıştır ve Windows düğümlerinde bir Cygwin ortamımız vardır. Bu bize yardımcı olabilir.

Düşündüğüm bir seçenek, GlusterFS biriminin takılı olduğu sunucular kümesindeki basit bir HTTP hizmetidir. Gluster ile yaptığımız tek şey aslında GET / PUT işlemleri olduğundan, HTTP tabanlı bir dosya aktarma yöntemine kolayca aktarılabilir gibi görünüyor. Onları bir yük dengeleyici çiftinin arkasına koyun ve Windows düğümleri küçük mavi kalplerin içeriğine HTTP PUT ekleyebilir.

Bilmediğim şey GlusterFS tutarlılığının nasıl sağlanacağıdır . HTTP-proxy katmanı, işlem düğümü yazma ile yapıldığını bildirdiğinde ve GlusterFS biriminde gerçekten göründüğünde, dosyayı almaya çalışan sonraki işlem aşamalarından endişe duymamam arasında yeterli gecikme sağlar. bul onu. direct-io-mode=enableBağlama seçeneğini kullanmanın yardımcı olacağından eminim , ancak bunun yeterli olup olmadığından emin değilim . Tutarlılığı artırmak için başka ne yapmalıyım?

Yoksa tamamen başka bir yöntem mi izlemeliyim?


Tom'un aşağıda belirttiği gibi, NFS başka bir seçenektir. Bu yüzden bir test yaptım. Yukarıda belirtilen dosyalar saklamamız gereken istemci tarafından sağlanan adlara sahip olduğundan ve herhangi bir dilde gelebileceğinden, dosya adlarını korumamız gerekir. Bu dosyalar ile bir dizin oluşturdum:

Sunucuda iyi adlara sahip NFS dizini

NFS İstemcisi kurulu olarak bir Server 2008 R2 sisteminden bağladığımda, şöyle bir dizin listesi alıyorum:

İstemcide hatalı adlara sahip NFS dizini

Açıkçası, Unicode korunmuyor. NFS benim için çalışmayacak.


Samba ekibinin ctdbistikrarlı ve üretim için hazır olduğunu düşündüğüne ve verdiğiniz bağlantıdaki ilk cümlenin ikincisini geçersiz kıldığından, asla güncellenmediği için inanıyorum . Bunu kurmayı planlıyordum, ama bunu yapmadan önce işleri neredeyse penceresiz bir ortama çevirdim.
Sven

Hangi pencereleri kullanıyorsunuz?
Tom O'Connor

@ TomO'Connor Etiketin dediği gibi Windows 7. Yine de, Server 2008 R2 bir noktada orada olacak.
sysadmin1138

Sanırım Cygwin söz konusu değil mi?
Tom O'Connor

Yanıtlar:


5

GlusterFS'yi seviyorum. Aslında GlusterFS'ye bayılıyorum. Bazı özel bant genişliği verebildiğiniz sürece her şey yolunda.

GlusterFS ile ilgili en iyi şeylerden biri NFS ile kullanmaktır. Son zamanlarda üzerinde çalıştığım şaşırtıcı şeylerden biri Windows 7 ve 2k8R2'de NFS .

İşte yapacağım şey.

  1. NFS'yi dışa aktarabilecek 2 GlusterFS sunucusu kurun.
  2. Aralarında bir kalp atışı bağlantısı oluşturun.
  3. Belki Kalp Atışı / Kalp Pili gibi bir şey dağıt?
  4. Gluster Düğümleriniz arasında sanal bir IP (VIP) oluşturun.
  5. VIP'nin IP adresini kullanarak Windows kutusunun eşlenen ağ sürücülerini bağlayın.
  6. Hayal edebileceğiniz her şeyi test edin.

Küme Samba korkutucu geliyor ve bunu yapsanız bile, Samba hala bazı Windows ağlarında güvenilir bir şekilde davranma yeteneğinden yoksundur (tüm NT4 etki alanı uyumluluğu, bunu asla geçemez gibi görünmektedir).

Ben düşünüyorum her gluster düğüm dağıtılan çoğaltılmış modunda olduğu için o zaman teorik olarak bağlanabiliyor olması gerektiğini ya ve çevresindeki Verilerinizi taşıma konusunda endişe bunu tanır. Sonuç olarak, kalp atışı, konuştuğunuz yönlendirmeyi ve kontrolü yapan şey olmalıdır.

Gelince

  • Dosya sayıları 10 milyona girebilir.

XFS'yi temel dosya sistemi olarak kullanmayı araştırmanızı öneririm, çünkü büyük dosya sistemlerinde oldukça iyidir ve GlusterFS altında desteklenir


Şu anda XFS kullanıyorum! NFS3'e bir süre önce ilk alım işlevini ele almak için baktık, ancak Unicode desteğinin olmaması nedeniyle işe yaramaz olduğu kanıtlandı. Bu, Windows'taki NFS sunucusuydu. "会計 2012.xls" doğru olmaz ve bu çok önemlidir. Ama ... 7 / R2 hakkında bir şey bilmiyordum ve araştırmaya değer!
sysadmin1138

Bu yüzden bir test yaptım. Maalesef iyi sonuçlar döndürmedi (söz konusu güncellemeye bakın). Unicode sorunu iki yönlü görünüyor.
sysadmin1138

Kahretsin. Fikirlerim bitti o zaman. Samba'yı VIP'in arkasına koyabilir misin acaba?
Tom O'Connor

Çalışma grubu evet, Domain (kullandığımız) hayır. Böylece benim sorunum.
sysadmin1138

Öte yandan, geliştiriciler ile görüştükten sonra dosya adlarını tutmak beklediğim kadar kritik değil. Görünüşe göre, onları ilk aşamada (yutmak) alabildiğimiz sürece veritabanı isimleri takip edecektir. Dolayısıyla NFS burada geçerli bir seçenektir (doğru Windows sürümlerini aldığımızda).
sysadmin1138

1

Belki HA çözümünde düşünebilirsiniz ... kimlik doğrulaması için bir LDAP kullanın (istediğiniz kadar LDAP sunucusu olarak çoğaltılabilir) ve SMB hizmetlerini dinlemek için bir IP yerleştirin.

Bu IP ana sunucuda yüzer. Bu devre dışı olduğunda, Heartbeat ikinci sunucuda hizmetleri başlatabilir.

Bu sunucular glusterfs için bir bağlama noktasına sahip olacak ve daha sonra tüm veriler orada olacak.

Olası bir çözüm ve yönetimi çok kolay ...

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.