System plików ZFS został zaprezentowany w 2004 roku, dzięki nowemu podejściu do zarządzania danymi od razu zdobył wielu zwolenników.  Pełna nazwa systemu to “Zettabyte File System”, 128-bitowy system plików ZFS charakteryzuje się dużą pojemnością, potrafi przechować do 256 quadrillion zettabytes danych. Oprócz tego, że ZFS jest skalowalnym systemem to dodatkowo ma wbudowany algorytm chroniący dane przed ich uszkodzeniem, na chwilę obecną jest to ekskluzywna funkcjonalność wśród dostępnych na rynku systemów plików.

ZFS znosi pojęcia wolumenów dysku, partycji oraz provisioning poprzez wprowadzenie „pooled storage”, gdzie wszystkie dostępne dyski twarde są połączone razem. Łączna przepustowość połączonych dysków twardych jest wykorzystywana przez ZFS, co skutecznie zwiększa przestrzeń, szybkość i dostępność macierzy.

Zamiast stosować pre-alokację metadanych, jak to ma miejsce w innych systemach plików, ZFS wykorzystuje dynamicznie przydzielanie metadanych w miarę potrzeb. Do tego dochodzi brak wymogów co do przestrzeni przy inicjalizacji, brak limitów odnośnie ilości plików i katalogów, to wszystko sprawia, że jedynym ograniczeniem ZFS jest ilość dostępnych dysków twardych.

ZFS vs. Silent Data Corruption

Macierze dyskowe są coraz większe i szybsze, ale nadal mają nierozwiązany jeden, bardzo kluczowy problem, którym jest silent data corruption. „Ciche uszkodzenie danych” odnosi się do błędów, które miały miejsce przy zapisie danych na dyskach macierzy. Tego typu uszkodzenia są spowodowane przez uszkodzony kontroler, dziury w oprogramowaniu zarządzającym, uszkodzony kabel itp. Ciche uszkodzenie danych ma bezpośredni wpływ na dane zapisane na dyskach, a nie na same dyski, więc ani oprogramowanie dysku twardego, ani system operacyjny nie jest w stanie wykryć uszkodzonych bloków z danymi.

Silent data corruption ma potencjał do uszkodzenia całego systemu plików, przez co może miedź negatywny wpływ na działanie organizacji, której dane biznesowe były zapisane na uszkodzonym systemie plików. Przykładowo raport pokazał, że firmy e-commerce były zmuszone na tymczasowe zamknięcie biznesu z powodu bugów w systemie jakie zostały wywołane poprzez ciche uszkodzenie danych sytemu plików na którym była uruchomiona baza danych firmy.

Co więcej , CERN odkrył w serii eksperymentów, że na 14.6 petabajtów danych średnio 38,000 plików zostało uszkodzonych.  Coraz większe pojemności pojedynczych dysków twardy, których obecnie sięgają 4 TB w połączeniu z systemami NAS, które potrafią obsłużyć jednocześnie nawet dwanaście dysków, znacznie zwiększają ryzyko wystąpienia cichego uszkodzenia danych. Ochrona przed tego typu uszkodzeniami to obecnie największy problem firm produkujących tego typu systemy.

ZFS został tak zaprojektowany, aby zapewnić integralność danych w modelu „end-to-end”.   Przy zapisie zawsze są wykonywane sumy kontrolne dla każdego bloku danych, ZFS cały czas skanuje „storage pool” w celu weryfikacji integralności danych. Jeżeli ZFS wykryje blok danych uszkodzony w procesie cichego uszkodzenia, wtedy natychmiast może go odtworzyć z funkcji skrótu RAID lub sumy kontrolnej systemu ZFS. Śmiało można powiedzieć, że „storage pool” ma podwójną ochronę danych oraz, że system plików ZFS jest samo uleczalny.zfs

ZFS vs. Inne Systemy Plików

Jak pisaliśmy powyżej, ZFS został zaprojektowany w celu zapewnienia integralności danych. Jego zadaniem jest również “zmniejszenie złożoności i łatwość zarządzania”.

ZFS ma dużo zalet, jego największą wadą jest duże obciążenie CPU i bardzo duże zapotrzebowanie na pamięć RAM. Przy takim samym CPU i pamięci RAM system ZFS będzie wolniejszy od konkurencji. ZFS największe zapotrzebowanie na RAM ma gdy jest uruchomiona funkcjonalność deduplikacji oraz SSD Cache.

ZFS  obsługuje SSD Caching

Ten artykuł pokazuje jaki wpływ na osiągi ma funkcjonalność SSD Cache w systemie plików ZFS.  Następnym razem opiszemy dokładniej „Storage Pools” i „deduplikację.

Obecnie taki system w swoich serwerach NAS zaimplementowała firma Qsan oraz Infortrend.