ZFS jest dość wybredny w kwestii sprzętu, na którym działa.
Nie w tym sensie, że musisz mieć dokładnie odpowiedni chipset, kartę graficzną, wersję oprogramowania układowego dysku itd., Ale w sensie możliwości zapewnianych przez sprzęt. Pamiętaj, że ZFS został zaprojektowany jako wysokiej klasy rozwiązanie serwerowe, a pewne przyjęte przez niego założenia odzwierciedlają to.
Główną częścią tego, co sprawia, że ZFS jest tak doskonały do przechowywania danych, na których Ci zależy, jest to, że możesz go skonfigurować w sposób, który może zarówno wykryć i popraw błędy w pamięci. Mogą to być trywialne błędy, takie jak przerzucanie pojedynczego bitu, lub katastrofalne błędy, takie jak awarie kilku dysków jednocześnie. Tak długo, jak pozostaniesz powyżej progu redundancji układu pamięci masowej (na przykład, nie więcej niż dwa dyski jednocześnie doświadczają problemów w raidz2 vdev) ZFS może skorygować każdy błąd przy użyciu nadmiarowych danych. Dalsze błędy, w zależności od miejsca i sposobu ich wystąpienia, mogą prowadzić do (pół) zgrabnej paniki systemu lub prostego błędu we / wy.
Jeśli zrobisz to dobrze, skonfigurujesz swój system do regularnego szorowania puli ZFS. Spowoduje to przechwycenie degredacji, zanim stanie się problemem, i powiadomi Cię o tym, abyś mógł rozważyć wymianę urządzeń pamięci masowej, które mają problemy z przechowywaniem danych, zanim stanie się to problemem.
Jednak ta wielkość zależy od tego, że można zaufać pamięci RAM. Cała ta walidacja, korekta, przepisywanie itd. Odbywa się głównie w pamięci RAM. Na wysokiej klasy serwerach nie znajdziesz niczego poza pamięcią ECC RAM.
ZFS chroni (i obsługuje) metadane puli, metadane systemu plików i dane użytkownika w ten sam sposób. Nie ma tu żadnej różnicy.
Jeśli system stacji roboczej przerzuci bit pamięci RAM, po zapisaniu danych przerzuconych bitowo do ZFS, dane odwrócone bitowo będą podstawą tego, co ZFS ostatecznie wypisze na dysk. Jest to oczywiście złe, ponieważ oznacza to, że plik zostanie uszkodzony. Jednak dane odwrócone bitowo będą poprawne, jeśli chodzi o ZFS . To jest właściwie dobry , ponieważ oznacza to, że wszystkie normalne metody odzyskiwania ZFS będą działać. Tak, najnowsza kopia danego pliku będzie uszkodzona, ale i tak byłoby zepsute, bez względu na używany system plików. Możesz wykorzystać migawki ZFS przynajmniej móc cofnąć się w czasie do nieuszkodzonej kopii. Skonfiguruj coś takiego zfs-auto-snap aby migać swoje systemy plików w regularnych, bliskich odstępach czasu, zachowuj starszą historię wstecz i zapomnij o niej, dopóki ich nie potrzebujesz. (Na przykład, trzymaj dziesięć migawek w odstępie dziesięciu minut; 50 migawek w odstępie jednej godziny; 30 migawek w odstępie sześciu godzin itd.) Migawki są praktycznie wolne w ZFS; jeśli używasz ZFS, używaj migawek także.
Jeśli Twój serwer pamięci, na którym działa ZFS, ma złą pamięć RAM, niezależnie od tego, czy jest to bit flip, czy zablokowany (jeden lub więcej) bitów, a na serwerze pamięci znajduje się pamięć ECC RAM, zostanie to wykryte, a zdarzenie zostanie zarejestrowane lub system być zatrzymany (jeśli błąd nie może zostać skorygowany). Tak czy inaczej, zachowana jest integralność danych przechowywanych na serwerze. Jeśli twój serwer pamięci ZFS ma RAM inny niż ECC, wtedy błąd może rozprzestrzeniać się na wszystkie dane i metadane ponieważ ZFS próbuje „poprawić” błędy, które naprawdę są tylko wytworami wyobraźni komputera. W najgorszym przypadku co faktycznie dzieje się z ludźmi , cała twoja pula zostanie zniszczona z tego powodu, a wszystkie dane znikną. Nadmiarowość na poziomie pamięci / vdev też tutaj nie pomaga. W przypadku większości innych systemów plików (bez zachowania automatycznej korekcji) tylko jedno miejsce, na które bezpośrednio wpłynął bit flip, zostanie uszkodzone, a jeśli tak się stanie, metadane systemu plików mogą być łatwo naprawione przez tradycyjne programy sprawdzające i odzyskiwanie systemu plików przybory. ZFS nie ma tego luku ratunkowego; nie ma fsck.zfs. (Jest peeling zpool , ale to nie działa, jeśli basen jest uszkodzony nie do naprawienia.)
To, czego nie mogłem zrobić w Google, to: jaki jest sens posiadania maksymalnie niezawodnych plików hostujących NAS (lub jako kopii zapasowych), gdy pracuję z plikami na mniej niezawodnych komputerach?
Oznacza to, że masz zaufane repozytorium danych. Wiesz, że gdy dane dotrą do twojego NAS, jest to bezpieczne. Wszelkie uszkodzenia zostaną naprawione automatycznie lub zostaniesz poinformowany o problemie (w przypadku ZFS za pośrednictwem błędu we / wy). Dane mogą być nadal uszkodzone podczas pracy nad mniej niezawodnymi systemami, ale będziesz mieć miejsce na znaną nieuszkodzoną kopię. Jest to zaleta, nawet jeśli tylko system NAS ma pamięć ECC RAM, ZFS i wysokiej jakości monitorowanie pamięci masowej i alarmy.
W razie potrzeby możesz dodać (w szczególności) pamięć ECC RAM do innych systemów w zależności od budżetu, aby podłączyć ostatni otwór.
Czy muszę (w przenośni) wyrzucić moje obecne systemy i zastąpić je (mini) sprzętem klasy serwerowej, jeśli nie chcę się martwić o zgniliznę bitową itp.? A jeśli pójdę tą trasą, czy mogę rozsądnie oczekiwać, że będę dysponował zasobami na coś innego niż uruchomienie ZFS? Bez wydawania tysięcy dolarów?
Po pierwsze, naprawdę nie potrzebujesz sprzętu klasy serwerowej. Potrzebujesz przede wszystkim pamięci ECC RAM (oraz procesora i kontrolera pamięci / chipsetu obsługującego ECC RAM) niezawodnie trwała pamięć masowa, a najlepiej przypadek, który ułatwia dodawanie i usuwanie dysków podczas pracy systemu. To nie musi być bardzo drogie iz pewnością nie musi kosztować „tysięcy dolarów”.
Po drugie, ZFS lubi pamięć RAM, ale głównie do buforowania. Przy większości obciążeń, 8-16 GB pamięci RAM powinno wystarczyć, a 24-32 GB (łatwo osiągalne nawet przy „konsumenckich” płytach głównych) jest wciąż w rozsądnej cenie nawet przy zakupie wysokiej jakości markowych pamięci ECC. ZFS nie jest strasznie głodny CPU; możesz sprawić, że będzie potrzebował dużo procesora (jak z ZoL , ustawiając sha256, kompresję gzip-9 i ewentualnie deduplikację w połączeniu), ale nie musisz. Mój własny system obsługuje ZFS, nie jest bardzo wydajny (taktowany procesorem FX-6100), wszędzie używam sha256, a nawet w czysto sekwencyjnym I / O dyski są czynnikiem ograniczającym: po przekroczeniu początkowego małego losowo odczytuje część zarośli, mam taką samą przepustowość zarośli jak na surowym dd
z podstawowego urządzenia pamięci masowej, z zapasowym procesorem.