Düşük RAM ortamı fizibilitesinde optimize edilmiş ZFS?


10

Şu anda bir dosya sunucusu kuruyorum ve aslında veri sürücülerini kurma noktasına geldim. Sistemde 4 sürücü vardır (bir işletim sistemi diski, 3 veri diski). OS diski ext4 olarak biçimlendirilir ve ZFS havuzuna eklenmez (ZFS'yi çalıştırmayı seçersem). Asıl sorun veri bütünlüğü ve minimum veri kaybı riskidir (bios'ta sürücü önbelleğe alma devre dışı bırakılır). Çünkü bu ZFS mükemmel bir aday gibi görünüyor, çünkü Linux için kararlı bir sürümü var (doğru?) Ve sabit sürücülerin aynı boyutta olması gerekmeyen veri çoğaltma, havuzlama ve raidz'i destekliyor.

Ama işte benim sorunum. Sunucu sadece 2GB RAM'e sahip ve bu yakın bir gelecekte yükseltilemiyor ve diğer tüm hizmetleri yükledikten sonra gerçekçi olarak sadece 1.5'e ZFS tarafından erişilebilecek. Bir seferde en fazla yaklaşık 10 müşteri kullanacaktır (ortalama 4 gibi). Güvenli kabul edilemeyecek kadar düşük mü?

Anladığım kadarıyla ZFS düşük RAM durumlarında çökebilir ve havuza girebilir. Takasın bu sorunu hafifletmeye yardımcı olup olmayacağı konusunda çelişkili görüşler duydum (20 GB'lık takas adanmış bir sürücüm var). Herkes az RAM ile ZFS ile veri kaybı yaşadı mı ve bunu önlemek için hangi optimizasyonları dahil ettiniz?

Yukarıdakileri göz önünde bulundurarak, ack boyutunu küçültüp biraz da olsa ZFS'yi çalıştırmak mümkün olabilir mi yoksa bu çok riskli olacak mı?

Sistem özellikleri: 2GB RAM 20GB takas sürücü işletim sistemi, Debian 7, minimum kurulum, FTP ve XBMC, DNLA (RAM gereksinimi hakkında fikir vermek için). Depolama sunucusu ve diğer cihazlara akış yapan müzik medyası için kullanılır.


1
Ben değil bir ZFS gurusu, ama genel olarak dosya sistemleri hakkında bir fikre ve seni dışarı bakmak gerekecek bir yer biliyorum - büyük zaman - bellek tüketimi verileri tekilleştirme olduğu için. Disklerinizin ne kadar büyük olduğunu veya disklerde ne kadar veri bulunacağını belirtmezsiniz; ZFS'nin bir bellek içi arama tablosu tutması gerektiği için bu çok büyük. Başka endişelerle konuşamam ama kesinlikle tekilleştirmeyi öldürürüm. Ayrıca, btrfs artık yedeklenen veriler için oldukça olgunlaşmıştır; düşündün mü Bazı içgörüleri öğrenmek için arstechnica.com/civis/viewtopic.php?f=16&t=1226135 adresini ziyaret edin (bazıları şüphesiz buna katılmayacaktır).
ravenpi

Oh evet bunu kaçırdım. Havuz 3.35 tb olacak (hem diskler hem de veriler, günlük 9 istemciyi yedekleyeceğinden, hızlı bir şekilde dolduracağını tahmin ediyorum, sanırım freebsd her tb depolama alanı için 5GB RAM önerdiğinden, en azından çoğaltma anlamına gelmiyor btrfs'yi işaret ettiğiniz için teşekkürler, şimdi istikrarlı olduğunun farkında değildim, sanırım içine iyi bir göz
Thomas E

"Kararlı" demek için acele etmeyeceğim bir şey; biri HERHANGİ tür sorish newish dosya sistemi "kararlı" olarak adlandırmak için tereddüt . Ama oraya varıyor. LWN (Linux Weekly News) üzerinde bir seri yaptı; iyi - buradan kontrol edin: lwn.net/Articles/576276
ravenpi

Yanıtlar:


5

Veri bütünlüğünü ve minimum veri kaybı riskini temel kaygılar olarak belirtirsiniz. ZFS'yi yalnızca 2GiB bellekle çalıştırmak risklidir ve önerilmez. Çok az RAM performansı öldürür ve geçmişte sayısız sökülemez havuzun sebebiydi. FreeNAS proje asgari olarak RAM 8GiB belirtiyor.

Ayrıca, endişeniz veri kaybı olduğundan ECC RAM kullanmak isteyeceksiniz. Kutunuz sadece 2GiB RAM'i destekleyebildiğinden, ZFS için iyi bir seçim olmayacak gerçekten eski bir kutu olduğunu varsayıyorum.

Sorularınızı cevaplamak için:

[…] Ve veri çoğaltmayı destekler

Pratikte, en azından 32GiB'ye sahip olmadığınızda, sadece bir kural olarak, tekilleştirmeyi unutun. Havuz boyutuna bağlı olarak önemli ölçüde daha fazla RAM'e ihtiyacınız olabilir. İkincisi, veri tekilleştirme + RAM maliyetleri bir avuç ek diskten daha ucuz ise matematik yapın. Çoğu zaman, daha fazla disk daha ucuz bir alternatiftir.

Güvenli kabul edilemeyecek kadar düşük mü?

Evet, çok düşük.

Anladığım kadarıyla ZFS düşük RAM durumlarında çökebilir ve havuza girebilir.

Bu doğru ve birçok insan düşük RAM nedeniyle havuzlarını kaybetti.

Takasın bu sorunun hafifletilmesine yardımcı olup olmayacağı konusunda çelişkili görüşler duydum

Takas hakkında unutun, ZFS kutunuz asla takas kullanmamalıdır.

DÜZENLEME: Maceraperest hissediyorsanız ve zaman zaman panik veya veri kaybı riskine aldırmıyorsanız , ZFS ayarlama kılavuzunu okuyun ve belirtilen ayarları uyarlayın. Burada 768MiB bellek sistemi için örnek ayarlar.

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

Aksi takdirde bir bellek şeridine yüz dolar yatırın ve istikrarlı ve performanslı bir sistemin tadını çıkarın.


3
Anlıyorum. Sadece detaylandırmak için evet ecc ram var ve makine 8 / 16gb ram'a kadar destekleyen hp uyumlu mikro sunucu gen7, şu anda daha fazla ram satın almak için finansal olarak uygun değil. Freenas'ın 8 gb önerdiğini biliyordum, ancak freebsd ve Solaris belgeleri asgari olarak 1 gb öneriyor, bu da sorunun nedeni. Sanırım bu ışığında ext4 ile sopa ve rsync ve dd ile elle, muhtemelen en güvenli çözüm çevrimdışı disk (ler) ile ayna gerekir.
Thomas E

ZFS'nin neden SWAP kullanmaması gerektiğini açıklayabilir misiniz?
CMCDragonkai

ECC olmadan ZFS kullanmanın aynı donanımı başka bir dosya sistemiyle çalıştırmaktan daha tehlikeli olmasının bir nedeni yoktur.
Alicia

5
ZFS topluluğu neden hep bu kadar kibirli züppe ile yorum yapıyor? Güvenilir veri isteyen herkes sadece tamamen saçma tasarım gereksinimlerini karşılamak için 100 dolarlık bir ücret talep etmiyor ! Örneğin, 1 GB sabit kablolu RAM ve USB sabit diskleri olan küçük bir ARM ev sunucum var. Üzerindeki verilerin hem algılanması hem de düzeltilmesi yoluyla bit çürümesine karşı güvenli olmasını ve yedekleme amaçlı anlık görüntüleri olmasını istiyorum. Hıza gerek yok. Ve btrfs tasarım tarafından kırılmış. Dolayısıyla , eğer bazı aptallar, 128'den fazla exabyte RAM'e sahip olduğunda depresyondan çıkacak şekilde tasarlamasaydı, ZFS mantıklı olurdu .
Evi1M4chine

0

Yüksek bellek basınç sistemlerinde (linux) belleği yükseltmek gerçekten gereklidir. Değiştirmenin IO'yu (çekirdek asılı görevi) kilitlediği ve yeniden başlatılmadıkça kullanılamaz hale getirdiği hala hata ( bağlantı ) var. Vm.swappiness = X'in zfs üzerinde bir etkisi olmadığına inanıyorum, bu yüzden arkın belirli bir sayı ile sınırlanması biraz yardımcı olabilir.

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.