Hepiniz için ... Herhangi bir Raid üzerinden ZFS toplam bir PAIN'dir ve yalnızca MAD insanlar tarafından yapılır! ... ECFS belleği olmayan ZFS kullanmak gibi.
Örneklerle daha iyi anlayacaksınız:
- Raid1 üzerinden ZFS, bir disk kapatılmadığında bir bit değişti ... bildiğiniz her şeyi göz önünde bulundurun, ZFS, hangi diskin okunduğuna bağlı olarak bir miktar hasar görecek veya görmeyecek (Raid denetleyicisi bu bitin değiştiğini görmedi ve her iki diskin de iyi olduğunu düşünüyor ) ... eğer başarısızlık VDEV bölümünde ise ... bütün ZPOOL tüm verilerini sonsuza dek kaybediyor.
- Raid0 üzerinden ZFS, bir disk kapatılmadığında bir bit değişti ... bildiğiniz her şeyi göz önünde bulundurun, (Raid denetleyicisi bu bitin değişmediğini gördü ve her iki diskin de iyi olduğunu düşündü) ... ZFS bu hasarı görecek ancak fail, VDEV bölümünde ... bütün ZPOOL tüm verilerini sonsuza dek kaybediyor.
ZFS'nin iyi olduğu durumlarda, güç olmadığı durumlarda disk (RAID denetleyicileri bunu yapamaz), ayrıca istenmeden bir şey istendiğinde değiştirilirse değişen Bitleri saptamaktır.
RAM modülünde bir bit istenmeden kendiliğinden değiştiğinde olduğu gibi aynıdır ... eğer bellek ECC ise, bellek kendini düzeltir; değilse, bu veriler değişmiştir, böylece veriler değiştirilmiş disklere gönderilecektir; Başarısızlığın VDEV bölümünde olması durumunda, değişimin UDEV bölümünde olmadığını göz önünde bulundurun ... tüm ZPOOL tüm verilerini sonsuza dek kaybeder.
Bu, ZFS'deki bir zayıflık ... VDEV'ler başarısız oluyor, tüm verilerin sonsuza dek kaybedildiğini gösteriyor.
Donanım Baskını ve Yazılım Baskısı kendiliğinden bit değişikliklerini tespit edemez, sağlama toplamları yoktur, Raid1 seviyelerinde en kötü (mirros), tüm parçaları okumaz ve karşılaştırmazlar, tüm parçaların hep aynı veriye sahip olacağını sanırlar, ALLWAYS (derim ki) yüksek sesle) Baskın, verilerin başka hiçbir şey / yolla değişmediğini varsayar ... ama diskler (bellek olarak) kendiliğinden bit değişikliklerine eğilimlidir.
Asla hiçbir zaman ECC olmayan bir RAM'de ZFS kullanmayın ve hiçbir zaman ZFS'yi asla basılmış disklerde kullanmayın, ZFS'nin tüm diskleri görmesine izin verin, VDEV ve POOL'unuzu mahvedebilecek bir katman eklemeyin.
Böyle bir hatayı nasıl simüle edersiniz ... bilgisayarı kapatır, Raid1'in bir diskini çıkarır ve sadece bir biti değiştirir ... Raid kontrol ünitesinin nasıl değiştiğini bilmediğini görün ve bakın ... ZFS tüm okumaların test edildiğinden sağlama toplamına karşı ve eşleşmezse, başka bir bölümü oku ... Baskın, bir hata (donanım imkansız okunması hariç) başarısız olursa ... bir daha okunmaz, eğer Baskın okuyabilirse, verilerin iyi olduğunu düşünür (ama bu gibi durumlarda değil) ) ... Baskın sadece başka bir diskten okumayı denediğinde "hey, oradan okuyamıyorum, donanım arızalı" diyorsa ... sağlama toplamı okuyormuş gibi uyuşmuyorsa ZFS başka bir diskten okuyor "hey, oradan okuyamıyorum, donanım hatası" diyor.
Umarım çok açık bir şekilde izin vermişimdir ... Raid'in herhangi bir seviyesinden ZFS, toal ağrıları ve verileriniz için toplam risktir! ECC dışı hatıralardaki ZFS gibi.
Ama kimsenin söylemediği şey (ben hariç):
- Dahili önbelleğe sahip diskler kullanmayın (yalnızca SHDD diskleri değil, 8Mib - 32MiB önbelleğe sahip olanlar vb.) ... bazıları bu tür önbellek için ECC olmayan bellek kullanır
- SATA NCQ kullanmayın (yazma sırasına göre) çünkü güç kesilirse ZFS'yi mahvedebilir
Peki hangi diskleri kullanmak için?
- Tüm kuyruğu sağlayan dahili bataryaya sahip herhangi bir disk, elektrik kesintisi durumlarında diske yazılır ve içinde ECC hafıza kullanır (üzgünüm, hepsinde çok az olanlar var ve pahalıdır).
Ama, hey, çoğu insan bunların hepsini bilmiyor ve hiç bir zaman bir problemi olmadı ... onlara şunu söylüyorum: vay, ne kadar şanslısın, şanslı gitmeden önce bazı piyango bileti satın al.
Riskler var ... bu tür başarısızlıklar tesadüfler meydana gelebilir ... bu yüzden daha iyi cevap:
- ZFS ile verinin gerçekte depolandığı (RAM, Raid, NCQ, dahili disk önbellek vb.) Arasına herhangi bir katman koymamaya çalışın.
Şahsen ben ne yapıyorum?
- Bazı katmanları daha fazla koyun ... USB 3.1 Gen2 C tipi bir kasadaki her 2,5 "SATA III 7200 rpm diski kullanıyorum, bazı muhafazaları PC'ye bağladığım bir USB 3.1 Gen 2 Tip A Hub'a bağladım; başka bir hub'a PC’deki başka bir kök bağlantı noktasına vb.
- Sistem için ZFS'de dahili sata bağlayıcıları kullanıyorum (Raid0 seviyesi) çünkü değişken (LiveCD gibi) bir Linux sistemi kullanıyorum, her biri dahili disklerde aynı içeriği başlatıyor ... ve sistemin geri yükleyebildiğim bir Clone görüntüsü var (1GiB sisteminden daha az) ... aynı zamanda, bir dosyayı sistemde bulundurmak için hileyi kullanıyorum ve açılışta klonladığım RAM eşlemeli sürücüyü kullanıyorum, önyüklemeden sonra tüm sistemler RAM'de çalışıyor ... bir DVD de aynı şekilde önyükleyebilirim, bu yüzden dahili disklerin arızalanması durumunda, sadece DVD ile önyüklerim ve sistem tekrar çevrimiçi olur ... SystemRescueCD için benzer bir numara ancak biraz daha karmaşık bir ISO dosyası üzerinde olabilir. dahili ZFS ya da sadece gerçek DVD olmak ve iki farklı sürüm istemiyorum.
Umarım ZFS'ye Raid'e karşı biraz ışık verebilirim, işler ters gittiğinde gerçekten acı verici!