TrueNAS – dlaczego ZFS jest zajefajny – zPool/ARC/L2ARC/SLOG

TrueNAS – dlaczego ZFS jest zajefajny – zPool/ARC/L2ARC/SLOG

sie, 2022 | TrueNAS, Video BLOG

TrueNAS + ZFS jest super! Ok ale w zasadzie czemu jest super?

A no między innymi dlatego, że na pokładzie ma wbudowaną obsługę ZFS bo sam ZFS jako taki nie jest jakoś super user frendy. a ZFS jest super! Ok ale dlaczego ZFS jest super? A o tym właśnie dzisiaj opowiem. Najpierw będzie małe wprowadzenie. Będzie też o tych całych pool-ach, ARC-ach, L2ARC-ach, SLOG-ach i ZIL-ach. Opowiem jak ZFS ma zorganizowane przechowywanie danych i dlaczego jest tak fajny a potem pokarzę w laboratorium jak jak możemy to jeszcze znacznie przyspieszyć.

00:00 intro
00:55 ZFS – wstęp
02:51 ZFS – Auto healing
03:40 ZFS – vDev
04:11 ZFS – RAID-Z
05:39 ZFS – zPoll
07:22 ZFS – ARC
09:57 ZFS – L2ARC
11:00 ZFS – SLOG/ZIL
13:31 ZFS – Dataset
14:06 ZFS – copy on write
14:56 ZFS – inne ciekawe funkcje
16:13 ZFS – przyspieszanie
17:08 Środowisko testowe
19:51 test – Synchroniczne i niesynchroniczne zapisy
27:13 test – odczyty liniowe i losowe
40:14 test – L2ARC – przyspieszanie odczytu
45:07 test – SLOG – przyspieszanie zapisu
50:22 outro

ZFS

Na wstępnie niech z padnie oczywiste. ZFS czyli Zettabyte File System.
A konkretnie w TrueNAS użyto OpenZFS czyli otwarto źródłową wersję ZFS, który jako ZFS jest zamknięty i rozwijany przed Oracle. Dla uściślenia mówiąc ZFS będę mówił o OpenZFS. Dobra dobra a co to ten Zettabyte? Obecne a zwłaszcza starsze systemy plików mają swoje ograniczenia. np. nawet Windows 10 jeżeli jest w wersji 32-bit a nie 64-bit to nie będzie potrafił się obsłużyć dysku większego niż 2TB. Dla przykładu weźmy dysk wielkości 1TB to obecnie powiedzmy standard. Więc 1000 takich 1TB dysków to 1PB (PetaByte). 1000 PB to 1 EB (ExaByte). 1000 EB to 1 ZB (ZettaByte). Czyli 1 ZettaByte to 1000 x 1000 x 1000 x 1TB dysk. Dużo prawda?
No dobrze tylko, że ten ZettaByte to już tylko w nazwie pozostał. W zasadzie teraz teoretyczna pojemność jednego zpoll-a w ZFS to 256 quadrillion ZettaBytes, .. serio, aż musiałem sprawdzić co to jest ten quadrillion. Pamiętacie te nasze 1TB dyski? Więc pojemność teoretyczna jednego zpoll-a to 1 000 000 000 000 000 takich dysków !!! Przepraszam nie moglem się powstrzymać od odrobiny wyliczeń.

ZFS ma sporo zalet w porównaniu ze zwykłymi systemami plików. Można by powiedzieć, że jest taki meta systemem plików. Sposobem organizacji danych na których oparte są systemy plików.

 

ZFS auto-healing

ZFS wyróżnia na przykład funkcja auto-healing. Zawsze podczas odczytu danych z dysku sprawdza się ich poprawność z sumami kontrolnymi i nawet jeżeli z jakiegoś powodu odczytane dane nie były prawidłowe to w locie jest wyliczana prawidłowa wartość, nadpisywana ta niewłaściwa na dyskach a użytkownik dostaje właściwe dane. To znacząco odróżnia ZFS od zwykłych RAID które nawet mogą by „nieświadome” że podają złe dane. Można też ręcznie wymusić sprawdzenie spójności całego zPoll-a to funkcja na ZFS nazywa się scrub.

Przechodząc do tego jak zorganizowane jest przechowywanie danych w ZFS.

VDev

Grupy dysków tworzą Vdev-y (Virtual Device) są one przedstawiane do ZFS jako jedno urządzenie. Dyski w VDev zależnie od funkcji i potrzeby mogę być przypisane jako pojedyncze dyski, jeżeli nie ma potrzeby redundancji, na przykład L2ARC ale o tym później, jako dyski lustrzane jeżeli to potrzebne, lub jako RAID-Z co w zasadzie stanowi kwintesencję naszego ZFS.

RAID-Z

W zależności od potrzeby ochrony danych i ilości dysków możemy skonfigurować w wersji Z1 Z2 Z3. Numery wersji oznaczają ilość nadmiarowych dysków. Co daje odporność na awarię jednego dwóch lub trzech dysków w poszczególnych VDev. Czyli jeżeli VDev jest w RAID-Z3 to oznacza, że potrzebujemy minimum 4 dyski. W uproszczeniu można powiedzieć, że jeden na dane i trzy na nadmiarowość. Do RAID-Z2 minimum 3 dyski. Do RAID-Z1 minimum dwa dyski, Oczywiście to mało optymalny przykład ale chodzi o zasadę. Czas odbudowy RAID-Z po wymianie dysku jest ważną rzeczą zwłaszcza w wypadku dużych instalacji. Tu też ZFS mocno daje radę bo czas jest zależny ilości danych zapisanych w macierzy. ZFS „wie” kiedy ile i gdzie ma dane więc przy odbudowie przenosi tylko rzeczywiście wykorzystane miejsce. W odróżnieniu od klasycznych RAID1 czy RAID5 gdzie odbudowa RAID oznacza w zasadzie nałożenie CAŁEGO nowego dysku bit po bitcie.

 

Minimalna ilość dysków Odporność na awarię dysków (N-ilość dysków) Przybliżona pojemność macierzy dla dysków 1TB (C-pojemność dysku) Przybliżona pojemność macierzy dla N-dysków o C-pojemności
RAID-Z1 2 1 1TB (N-1)xC
RAID-Z2 3 2 1TB (N-2)xC
RAID-Z3 4 3 1TB (N-3)xC

zPool

Jest naszym systemem plików do którego możemy w razie potrzeby n.p. dodawać nowe VDev-y jeżeli skończy się nam miejsce. Nawet w locie bez restartu. Wiem, że były prowadzone prace nad odejmowaniem Vdev-ów żeby zmniejszyć naszego zPoll-a ale funkcjonalność z tego co wiem nie została wdrożona. Chciał bym żeby to wybrzmiało jasno, można bez problemu rozszerzyć nasz zPoll przez dodanie nowego Vdev-a ale nie powiększenie samego Vdev-a. Obecnie nie ma produkcyjnej możliwości rozszerzenia Vdev-a z RAID-Z. Wiem, że prace wśród deweloperów samego ZFS trwały ale o ile wiem aktualnie czyli na sieprień 2022 w TrueNAS CORE 13-1U nie ma takiej możliwości. W praktyce jako formę obejścia można przenieść dane w inne miejsce przebudować Vdev-a z większą ilością dysków. Mało to wygodne ale czasem konieczne. Do zPoll-a można też w locie dodawać i odejmować na przykład Vdev-y buforujące zapis i odczyt czyli L2ARC i SLOG/ZIL

ARC (Adaptive Replacement Cache)

To olbrzymia zaleta ZFS. ARC to cache w którym trzymane są najczęściej odczytywane dane a używana jest to tego najszybsza możliwa do wykorzystania pamięci czyli RAM. Pamięć RAM jest wielokrotnie szybsza niż jakiekolwiek dyski SSD czy tym bardziej klasyczne talerzowe. Sprawia to, że dane najczęściej używane dostępne są w praktyce bez żadnych opóźnień spowodowanych samym dostępem i odczytam danych z dysku. Mówi się, że ZFS jest pamięciożerny – cóż.. tak i nie – użyje tyle RAM ile tylko będzie mógł na rzecz cache ARC. W praktyce oznacza to, że ile byśmy tego RAM nie mieli po jakimś czasie użytkowania będzie on cały zajęty. Ale czy to źle? Oznacza to, że zebrały się tam dane które używamy najczęściej i mamy do nich super szybki dostęp, a przecież o to na chodzi prawda? Pamiętajmy również tym, że jest to pamięć adaptacyjna, więc będzie redukowane zajęte miejsce jeżeli będzie potrzebne i na przykład odpalimy jakąś usługę czy sam system będzie tego RAM-u potrzebował. Redukcja ARC odbędzie się kosztem oczywiście ilości danych buforowanych w ARC. ZFS jest więc nie tyle pamięciożerny lecz stara się maksymalnie wykorzystać dostępne zasoby jako cache. Ale drugim wnioskiem jest to, że w praktyce im więcej RAM tym łatwiej nasz serwer TrueNAS będzie sobie radził w wypadku masowych odczytów które się powtarzają. W praktyce mówi się ok 1GB RAM na każdy 1TB pojemności macierzy dyskowej, jednak nie mniej nić 8GB RAM. Zalecał bym jednak minimum 16GB RAM. Czy więcej? To zależy od potrzeb i oczywiście zasobów. Takim przykładem niech będzie Virtualny serwer czy jail czy instancja dockera uruchomiony na naszym TrueNAS z bazą danych. W praktyce zyskujemy coś w rodzaju bazy danych w RAM – olbrzymie przyspieszenie odczytu – Fajne prawda?

Vdev – L2ARC (Layer 2 Adaptive Replacement Cache)

To drugi poziom bufora odczytu po ARC. Jest opcjonalny. Zasada działania jest taka, że najczęściej używane dane które jednak już nie mieszczą się a ARC będą przesuwane to L2ARC. Jeżeli najważniejszy jest dla nas wydajność to jednak powinniśmy zainwestować w większą ilość RAM ale jeżeli mamy macierz złożoną z dysków talerzowych, co nie jest wcale rzadkością w macierzach o dużej pojemności, to taki L2ARC w postaci jednego dysku NVMe może w niektórych wypadkach znacznie poprawić wydajność odczytu. Zwróćmy uwagę, że nie ma tu potrzeby żadnej redundancji. Na dysku nie ma żadnych niepowtarzalnych danych. Bufor jest odbudowywany według aktualnych potrzeb zawsze po restarcie. Możemy go nawet dodać lub usunąć „w locie” bez żadnych restartów.

Vdev – SLOG (Separate intent log)/ZIL (ZFS intent log)

Tutaj zaczyna się przygoda z zapisem danych z ZFS. SLOG to upraszczając bufor zapisu danych ale dla dosyć specyficznych przypadków. Żeby wytłumaczyć i zrozumieć kiedy warto to musimy trochę zboczyć z kursu. Są dwa rodzaje operacji zapisu, synchroniczne i asynchroniczne. Różnica jest taka, że w synchronicznych zapisujący życzy sobie dostać potwierdzenie, że dane zostały z sukcesem zapisane. W wypadku zapisu asynchronicznego dane są gromadzone w buforze, agregowane i zapisywane na dysk uporządkowanymi sekwencjami, co bardzo optymalizuje wydajność zapisu. Jeżeli zapisujący życzy sobie zapisu synchronicznego to wydajność zapisu, zwłaszcza małych losowych danych, spada dramatycznie. Ponadto w wypadku zapisu asynchronicznego u pojawia się kłopot pod tytułem: a co jeżeli utracimy zasilanie? Dane zostały przyjęte przez serwer ale ponieważ były w RAM to już ich nie ma.
Jako rozwiązanie problemu utraty danych w trybie asynchronicznym przychodzi włączenie trybu synchronicznego który przynosi nam problemy z wydajnością 🙂 Więc jako rozwiązanie problemu wydajności przypadkowych małych zapisów przychodzi właśnie SLOG. Zwłaszcza w wypadku jeżeli nasza macierz jest z dysków talerzowych to wykorzystanie dysku NVMe jako SLOG znacząco podniesie wydajność dla drobnych przypadkowych zapisów. Wielkość takiego dysku naprawdę nie musi być duża ponieważ to tylko bufor który jest opróżniany po zapisie na docelowe dyski. Realnie w zdecydowanej większości sytuacji ciężko będzie zapełnić nawet 16GB dysk, tak nie pomyliłem się 16GB i są takie 🙂 . Pamiętajcie, że w przeciwieństwie do buforów odczytu w tym wypadku mamy do czynienia z danymi których nigdzie indziej nie ma. Zalecane jest by SLOG-i były stosowane w konfiguracjach lustrzanych na wypadek awarii jednego dysku.

Dataset

Dopiero tutaj w ramach naszego zPoll-a możemy tworzyć wirtualne zasoby w których będziemy trzymać nasze dane. Takie Dataset-y udostępniamy jako na przykład jako serwer plików Samba, miejsce na pliki Nexcloud, czy inne. Dla każdego z Dataset-ów możemy określić wielkość, szyfrowanie, kompresję, prawa dostępu, możliwość deduplikacji i kilka innych.

Copy on Write

to następna bardzo ciekawa funkcja ZFS. Polega ona na tym, że jeżeli chcemy zmodyfikować tylko jeden kawałek w bloku danych to jest przepisywany cały blok danych w nowe miejsce w zmienionej formie. Jak dane zostanę skutecznie zapisane to zmienia się „adres” gdzie zapisane są dane. Bardzo podwyższa do odporność na problemy związane z nieprzewidzianymi awariami podczas zapisu ponieważ nie dotykamy starych danych. W tradycyjnym sposobie zapisu jeżeli wystąpi awaria podczas zapisu zamienionej części danych to nie mamy ani starych ani nowych danych. Przy zastosowaniu copy-on-write cały czas mamy stare dane.

Inne ciekawe funkcje ZFS

– wbudowana kompresja danych zapisywanych na dysku
– szyfrowanie danych na dysku
– łatwa wymiana dysku , zrobiłem o tym materiał <TU>
– snapschoty – nie raz ratują przed problemem o tym też zrobiłem materiał <TU>
– raplikacja danych na inny serwer – o tym <TU>
– deduplikacja – bardzo się przydaje jeżeli mniej lub bardziej świadomie trzymamy wiele razy te same dane. W procesie deduplacji takie dane będą wykryte i utrzymywane tylko jako link do oryginały nie zajmując dodatkowego miejsca.

Optymalizacja ZFS

Jest złożona i zależna od konkretnego przypadku, rodzaju przechowywanych danych, sprzętu i innych. W materiale poruszam tylko bardzo zgrubnie temat optymalizacji. Każda instalacja jest inna i może tworzyć inne obciążenia. Mam tu na myśli fakt, że czasem na przykład przy hostowaniu dużych plików video głównym parametrem będzie odczyt czy zapis dużej ilości danych, w praktyce przepustowość. Czasem najważniejsze będzie szybki dostęp do losowych danych jak w wypadku baz danych lub równoległy dostęp wielu użytkowników. Czasem istotny będzie szybki odczyt a czasem szybki zapis. Podsumowując optymalizacja ZFS jest bardzo ale to bardzo zależna od konkretnego środowiska.

Środowisko testowe

RAIDy sprzętowe są bardzo dobrą sprawą i standardem w komputerach klasy serwerowej. W zdecydowanej większości wypadków to dobre rozwiązanie. Tylko, że .. nie w wypadku TrueNAS. Najlepiej jeżeli ZFS ma bezpośredni dostęp do dysków. Dlaczego? Ponieważ sprzętowy RAID „udaje” dysk i często posiada własne bufory. ZFS nie wie czy dane zostały skutecznie zapisane czy nie. Nie wie czy wszystkie dyski są sprawne czy nie. Dodatkowo dochodzi nam następny element do regularnej kontroli, czy dyski w RAID sprzętowym są ok. Słowem dublują się nam funkcję, komplikuje obsługa i zrozumienie co się dzieje a nie mamy w zasadzie wiele korzyści. Dlatego wskazaniem do serwera TrueNAS jest brak RAID sprzętowego.

Testy przeprowadziłem bezpośrednio na maszynie z TrueNAS, żeby uniknąć wpływów związanych na przykład z opóźnieniami lub przepustowością sieć.

Benchmark – fio
Mówi się, że są małe kłamstwa, duże kłamstwa i benchmarki ale jakoś do tego trzeba było podejść żeby mieć do czego się odnieść. Do testów używam programu „fio” wbudowanego w TrueNAS i inne linuxopodobne twory.

Komendy testowe 

Zapis na dysku
fio –name TEST –eta-newline=5s –filename=/mnt/test-pool/vdev-test/out-20GB2.bin –rw=write –size=20g –blocksize=64k –runtime=60 –numjobs=4 –group_reporting

– eta-newline – co ile ma wypisywać nową linię
– filename – położenie pliku testowego
– rw – rodzaj operacji
– size- ilość danych
– blocksize – wielkość bloków testowych
– runtime – czas testu
– numjobs – ilość równoległych operacji

Informacje o utylizacji dysków
zpool iostat -v test-pool 1

– v – nazwa zPolla
– 1 – szybkość odświeżania danych

Zapraszam do oglądania

 

Zaawansowane rozwiązania ochrony danych – kiedy zwykły backup to za mało

To, że trzeba w ogóle zadbać o regularną kopie ważnych danych to już oczywiste. W znaczącej części przypadków rozwiązanie którym w wypadku awarii sprawna naprawia czy zastąpienie uszkodzonego serwera i przywrócenie danych z kopii to wystarczające...

VPN nie ma sensu

na ogół NIE potrzebujemy VPN – no chyba, że akurat tak 🙂 O tym dlaczego tak naprawdę w codziennym korzystaniu z Internetu VPN są nie przydatne a czasem nawet pogarszają sprawę. 0:00 - intro 0:35 - jak działa VPN 1:00 - jak ma się VPN do codziennego użytkowania...

piSignage – zarządzaj ekranami łatwo i efektywnie

Masz kilka lub więcej ekranów na krórych chcesz wyświetlać swoje treści? Reklamy, ogłoszenia, cennik? Wykluczasz zabawę z pentrive i prznoszeniem dysków itp? Chciał być zdalnie zarządzać wszystkimi swoimi ekranami? Jeden klik i wszytkie ekrany zmieniają treśc według...

TrueNAS – TAK – ale który?

To świetny wybór ale jest ich kilka, który będzie najlepszy dla ciebie? FreeNAS, TrueNAS CORE, TrueNAS SCALE, TrueNAS ENTERPRISE Pomogę. 0:30 - koniec z FreeNAS 2:05 - co to True Command 2:45 - Core Scale Enterprise - porównanie 9:10 - Serwery od TrueNAS...

TrueNAS – replikacja – coś więcej niż backup

Kiedy zrozumiemy, że sam NAS też musi mieć swoją kopię a dane w jednym miejscu to nie dane. 0:40 - środowisko testowe 1:10 - dlaczego replikacja ZFS w TreuNAS jest wyjątkowa 3:50 - wstęp - ustawianie replikacji ZFS na TrueNAS 4:55 - ustawianie snapshots do replikacji...

Duck Duck Go – Jak (NIE)wysłałem WSZYSTKIE dane o sobie do 34 firm

Duck Duck Go - pomoże Ci dbać o prywatność Jak (NIE)wysłałem WSZYSTKIE dane o sobie do 34 firm w 19 godzin Myślisz, że ty nie? O tym jak wiele informacji rozsiewamy radośnie "po internetach" Jak znacząco zmniejszyć strumień informacji o nas. 0:17 - czym...

Xen-Orchestra – wszystkie opcje w bezpłatnej wersji

Co potrafi pełna wersja Xen-Orchestra i jak ją zainstalować w bezpłatnej wersji. 0:00 - intro 0:28 - dlaczego xen-orchestra ze źródeł 1:27 - wersje płatne 3:25 - funkcjonalności wersji xen-orchestra 10:08 - instalacja xen-orchestra ze źródeł   Xen-Orchestra - jak...

TrueNAS + ZFS – deduplikacja kompresja danych

To, że TrueNAS i ZFS to świetna para to już wiemy. O TrueNS jako takim opowiadałem <TU> . O tym jak działa i dlaczego tak fajny jest sam ZFS no i jak go optymalizować i kiedy warto to robić opowiadałem <TU>. Czas na optymalizację wykorzystania miejsca na...

Xen-Orchestra – zarządzaj – backup, snapshot, migracje

Rolling Snapshot, Disaster Recovery - jak, po co, dlaczego? Jakie rodzaje backup VM w wirtualizatorze XCP-NG pod kontrolą XenOrchestra? Jak skonfigurować właściwy dla siebie backup. Czym się od siebie różnią i jakie są ich wady i zalety. biuro@eonea.pl +48 67 348 26...

TrueNAS + Nextcloud – własna prywatna chmura

Alternatywa dla chmur komercyjnych. Przechowuj i współdziel pliki, kalendarz czy zdjęcia. Polecenie do odczytania haseł: cat /root/PLUGIN_INFO Film o instalacji FrueNAS https://youtu.be/-wxi7mBJpWo Film o replikacji TrueNAS https://youtu.be/voOS1DIu4uw Film o snapshot...

Windows 10 – automatyczny backup

Jak automatycznie i prosto skonfigurować kopię bezpieczeństwa Twoich plików? Bez dodatkowych aplikacji i skomplikowanych konfiguracji. Wystarczy dysk sieciowy lub zewnętrzny dysk lub nawet pedrive USB 0:30 - środowisko testowe 0:40 - mapowanie dysku...

piSignage – zarządzaj ekranami łatwo i efektywnie

Masz kilka lub więcej ekranów na krórych chcesz wyświetlać swoje treści? Reklamy, ogłoszenia, cennik? Wykluczasz zabawę z pentrive i prznoszeniem dysków itp? Chciał być zdalnie zarządzać wszystkimi swoimi ekranami? Jeden klik i wszytkie ekrany zmieniają treśc według...

VPN nie ma sensu

na ogół NIE potrzebujemy VPN – no chyba, że akurat tak 🙂 O tym dlaczego tak naprawdę w codziennym korzystaniu z Internetu VPN są nie przydatne a czasem nawet pogarszają sprawę. 0:00 - intro 0:35 - jak działa VPN 1:00 - jak ma się VPN do codziennego użytkowania...

Jak pomagamy – kompleksowa ochrona danych

Niestety żadne urządzenie nie pracuje wiecznie a awarie i podobne problemy są wyłącznie kwestią czasu. Naszym celem jest przygotowanie się do sprawnego kontynuowania działania nawet po skrajnie niekorzystnych zdarzeniach jak awaria kradzież czy pożar....

TrueNAS – TAK – ale który?

To świetny wybór ale jest ich kilka, który będzie najlepszy dla ciebie? FreeNAS, TrueNAS CORE, TrueNAS SCALE, TrueNAS ENTERPRISE Pomogę. 0:30 - koniec z FreeNAS 2:05 - co to True Command 2:45 - Core Scale Enterprise - porównanie 9:10 - Serwery od TrueNAS...

Pegazus i inne – co powinieneś wiedzieć

Jak działa, co może o Tobie wiedzieć, co powinieneś o nim wiedzieć. No i co można z tym zrobić. linki do terminów wsparcia dla iPhone i Androind https://endoflife.date/android https://endoflife.date/iphone biuro@eonea.pl +48 673482602 Youtube...

Xen-Orchestra – automatyczne testy backapów

Xen-Orchestra – sposoby i rodzaje backup wirtualnych maszyn działających na serwerach xcp-ng ze szczególnym uwzględnieniem automatycznego testowania kopii bezpieczeństwa. Bo to, że nie przetestowana kopia bezpieczeństwa zadziała może okazać się tylko złudnym...

Xen-Orchestra – zarządzaj – backup, snapshot, migracje

Rolling Snapshot, Disaster Recovery - jak, po co, dlaczego? Jakie rodzaje backup VM w wirtualizatorze XCP-NG pod kontrolą XenOrchestra? Jak skonfigurować właściwy dla siebie backup. Czym się od siebie różnią i jakie są ich wady i zalety. biuro@eonea.pl +48 67 348 26...

TrueNAS + ZFS – deduplikacja kompresja danych

To, że TrueNAS i ZFS to świetna para to już wiemy. O TrueNS jako takim opowiadałem <TU> . O tym jak działa i dlaczego tak fajny jest sam ZFS no i jak go optymalizować i kiedy warto to robić opowiadałem <TU>. Czas na optymalizację wykorzystania miejsca na...

Signal w 2022 – czy wciąż bezpieczny?

Aktualizacja informacji o Signal na 2022. Tutaj wcześniejsze pełne omówienie https://youtu.be/X9futV5VG8k biuro@eonea.pl +48 673482602 Youtube Facebook

Copyright 2022 Eonea IT Solutions. All rights reserved. Eonea  / ul.Szybowników 4A / 64-920 Piła / NIP: 764-210-85-30