Przewodnik po ZFS: Instalacja i optymalizacja systemu plików ZFS na ZimaBoard

Eva Wong jest Technicznym Redaktorem oraz stałym majsterkowiczem w ZimaSpace. Życiowa geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu złożonych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że self-hosting powinien być zabawą, a nie czymś onieśmielającym. Poprzez swoje tutoriale umożliwia społeczności rozwikłanie konfiguracji sprzętowych, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Witajcie entuzjaści ZimaBoard! Dziś z radością przedstawiamy kompleksowy poradnik naszego oddanego członka społeczności, Tyrehla. Tyrehl nie tylko fachowo przeprowadza przez proces instalacji ZFS na ZimaBoard, ale także przedstawia całościowy przegląd samego ZimaBoard.

Od wglądu społeczności po szczegółowe instrukcje instalacji, artykuł Tyrehla to kompleksowe źródło do odblokowania pełnego potencjału zarówno ZFS, jak i ZimaBoard. Serdecznie dziękujemy Tyrehlowi za ten wartościowy wkład, łączący zaangażowanie społeczności z wiedzą techniczną. Wyruszmy razem w tę podróż i podnieśmy twoje doświadczenia z ZimaBoard. Miłego odkrywania!

Wprowadzenie

Komputery jednopłytkowe (SBC) są bardzo popularne w scenariuszach domowych laboratoriów, a w ostatnich latach zdobyły też uznanie w środowiskach profesjonalnych i przemyśle. Obecnie istnieje duży ekosystem skupiony wokół edge computingu i systemów o małej formie.

Przyzwoitą moc obliczeniową łatwo zdobyć, różne SBC oferują 4 rdzenie i dużo pamięci RAM do różnych zastosowań. Zazwyczaj zawodzą jednak pod względem pamięci masowej. Karty SD i pamięć Flash ogólnie są zazwyczaj wolne i podatne na awarie przy intensywnym zapisie. Dyski podłączone przez USB nie oferują takiej niezawodności, a wybór dobrego konwertera USB na SATA też nie jest trywialny.

ZimaBoard ma asa w rękawie. Dwa porty SATA, podwójny Ethernet 100/1000 oraz różne opcje rozszerzeń PCIe tworzą bardzo elastyczny system.

Gdzie są granice tego, co SBC może realistycznie osiągnąć i dlaczego pamięć masowa zawsze sprawia tyle problemów? Gdzie jest złoty środek między kompaktową maszyną, która nie radzi sobie szczególnie dobrze z żadnym zadaniem, a potworem z plątaniną kabli i 6 dyskami SATA wymagającymi zewnętrznego zasilacza ATX?

Ten artykuł ma na celu zbadanie mocnych stron ZimaBoard i sposobów ich wykorzystania, aby dobrze go wykorzystać. Bez kończenia z głupio wyglądającą i niepraktyczną konfiguracją.

Motywacja

Jak wspomniano wcześniej, dużo mocy obliczeniowej jest łatwe do wdrożenia i wykorzystania. Pamięć jest też tania, więc szybko to pamięć masowa staje się czynnikiem ograniczającym. Każdy, kto miał do czynienia z infrastrukturą, prawdopodobnie to wie. Wystarczy spojrzeć na opcje sieciowej pamięci masowej w k8s, różne platformy oferujące API kompatybilne z S3 dla twojego klastra i jak uciążliwe jest ich wdrażanie i prawidłowa obsługa.

ZimaBoard, dzięki doskonałym możliwościom I/O, jest świetnym kandydatem na mały NAS lub serwer ogólnego przeznaczenia z odporną lokalną pamięcią masową. I tu pojawia się wyzwanie – jak zapewnić pamięć masową odporną na błędy w małej obudowie, na platformie, która „po prostu działa” i jest operacyjnie bezproblemowa.

Po stronie sprzętowej ograniczymy się do pracy z dwoma dyskami 2,5 cala podłączonymi do zasilania i złączy SATA z tyłu ZimaBoard. To bardzo kompaktowe rozwiązanie bez konieczności stosowania zewnętrznego zasilacza i kart rozszerzeń.

Mniej znaczy więcej

Duża pojemność jest dobra, ale jeszcze lepsza jest pamięć masowa odporna na awarie. Do tego potrzebujemy bardziej zaawansowanego systemu plików oferującego redundancję danych.

ZFS oferuje możliwości programowego RAID przewyższające większość kontrolerów sprzętowych RAID. To naprawdę doskonały system plików z wieloma innymi ważnymi funkcjami, takimi jak przyrostowe migawki, synchronizacja między zdalnymi systemami i pulami pamięci masowej oraz szyfrowanie.

Dziś skupiamy się wyłącznie na uruchomieniu dysków w trybie redundantnym. Zazwyczaj ZFS służy do zarządzania tablicą RAIDZ. Ale ponieważ ograniczyliśmy się do dwóch dysków, pozostaje tylko jedna opcja – pula lustrzana ZFS. Skutecznie zmniejszy to pojemność o połowę, ale jednocześnie zapewni lepszą redundancję i możliwość przetrwania awarii pojedynczego dysku. Nie jest to idealne, ale musi wystarczyć.

Sprzęt

Dyski

Ogólnie społeczność ZimaBoard zaleca użytkownikom korzystanie z dysków 2,5 cala. Ich główną zaletą jest to, że nie potrzebują szyny 12V do działania. Są raporty o udanych testach z dyskami 3,5 cala, więc wyniki mogą się różnić. W moim przypadku wybrałem dwa dyski SSD 1TB. Możesz też wybrać dyski HDD, jeśli potrzebujesz większej pojemności.

Złącza i akcesoria drukowane w 3D

Oficjalny rozdzielacz Y jest zdecydowanie zalecany do podłączenia i zasilania dwóch dysków. Istnieją obejścia, takie jak użycie adapterów USB na SATA zasilania. Wygląda to nieestetycznie, ale działa. Aby wszystko trzymało się razem, świetnie sprawdza się podwójna podstawka na dyski HDD wydrukowana w 3D. Końcowy efekt to bardzo przenośne i niskoprofilowe rozwiązanie.

Linki znajdują się na końcu artykułu. Uważam tę wersję za bardzo kompaktową i praktyczną ze względu na niewielki rozmiar. Istnieją też różne wydrukowane w 3D uchwyty do montażu w szafie rack, jeśli masz na to miejsce.

Instalacja ZFS

ZimaBoard jest domyślnie dostarczany z Debianem. To także moja osobista rekomendacja na solidną dystrybucję, która nie będzie przeszkadzać ani zaskakiwać. W przypadku innych dystrybucji zapoznaj się z odpowiednią dokumentacją i instrukcjami instalacji ZFS.

Przed rozpoczęciem pamiętaj, aby zaktualizować do najnowszej wersji LTS, jeśli to możliwe. Zrób kopię zapasową danych, aby łatwo było wszystko rozebrać i zacząć od nowa. Dokumentuj każdy krok, aby ułatwić rozwiązywanie problemów. Sprawdź skrypt polecenie dla wygodnego sposobu wykonania tego.

Szczegółowe instrukcje i zaawansowane przypadki użycia są opisane w https://wiki.debian.org/ZFS to jest zalecane główne źródło do konfiguracji ZFS.

Wymagania wstępne

Upewnij się, że repozytoria HTTPS są dostępne:

1 apt install -y lsb-release apt-transport-https

Dodaj repozytorium Backports dla swojej wersji, edytując plik /etc/apt/sources.list lub dodaj nowy plik źródłowy w katalogu ‘/etc/apt/sources.list.d/’:

1 #określ nazwę kodową lub ręcznie zamień poniżej:
2 codename=$(lsb_release -cs)
3 #dodaj repozytorium backports do listy źródeł:
4 echo “deb http://deb.debian.org/debian $codename-backports main contrib non-free”|sudo tee /etc/apt/sources.list.d/debian_backports.list && sudo apt update

Pakiety ZFS

Na koniec, zgodnie z dokumentacją Debiana, zainstaluj najnowsze nagłówki Linuxa oraz odpowiednie pakiety ZFS:

1 sudo apt install linux-headers-amd64;sudo apt install -t $codename-backports zfsutils-linux zfs-dkms

„O nie – coś poszło nie tak”

Niepowodzenie instalacji ZFS zwykle wynika ze starego lub nieprawidłowego jądra albo braku nagłówków. Najlepiej usunąć wszystkie pakiety związane z ZFS, sprawdzić zainstalowane nagłówki i ponownie przeczytać dokumentację instalacji.

1 sudo dpkg -l | egrep ‘linux-image|linux-headers’

Tworzenie puli i systemu plików

Wyświetl dyski według identyfikatorów:

1 ls -l /dev/disk/by-id/
2 ls -l /dev/disk/by-id/
3 lrwxrwxrwx 1 root root 9 22 gru 15:29 ata-KINGSTON_SA400S37960G_50026B73818333D1 -> ../../sdb
lrwxrwxrwx 1 root root 9 22 gru 15:29 ata-KINGSTON_SA400S37960G_50026B73818333DB -> ../../sda
4 lrwxrwxrwx 1

I utwórz pulę, podając stabilne identyfikatory urządzeń, np.:

1 zpool create $mirror_pool_name mirror ata-KINGSTON_SA400S37960G_50026B73818333D1 ata-KINGSTON_SA400S37960G_50026B73818333DB

Utwórz zaszyfrowany system plików:

1 zfs create \
2 -o encryption=on \ # usuń jeśli niepotrzebne
3 -o keyformat=passphrase -o casesensitivity=mixed \
4 -o acltype=posixacl -o xattr=sa -o dnodesize=auto $mirror_pool_name/$dataset_name

Praktyczne scenariusze użycia i wydajność

ZimaBoard nie ma problemów z uruchomieniem ZFS i oferuje dużo wydajności, przy czym jedynie szyfrowanie zauważalnie obciąża CPU. Transkodowanie i streaming (np. z Jellyfin) również nie stanowią problemu. Warto zauważyć, że odczyt lub zapis bardzo dużych plików do zaszyfrowanego systemu plików mocno obciąża procesor. Może to wpłynąć na inne zadania działające na systemie.

SMB/NFS

Podczas ogólnych testów zapis pojedynczego pliku 12GB do puli lustrzanej ZFS zajmował około 5 minut, a wąskim gardłem był dysk. Odczyt z puli ZFS był znacznie szybszy, zajmując mniej niż połowę tego czasu. Efektywnie, połączenie sieciowe 1Gbps było całkowicie wykorzystane. Oba testy przeprowadzono na i z nieszyfrowanego systemu plików:

Następny test pokazuje duży wpływ szyfrowania na procesor. Ten sam plik 12GB został odczytany z nieszyfrowanego systemu plików ZFS i zapisany do zaszyfrowanego. Wydajność nadal jest doskonała, ale użycie CPU gwałtownie wzrosło i pozostało bardzo wysokie przez cały proces.

Zasoby i odniesienia

Podsumowanie

Masz pytania lub potrzebujesz dodatkowych wyjaśnień dotyczących jakiegokolwiek aspektu poradnika? Tyrehl jest tutaj, aby pomóc! Dołącz do naszej społeczności na Discordzie, aby połączyć się bezpośrednio z Tyrehl i uczestniczyć w ciekawych dyskusjach. Twoja ciekawość nie musi kończyć się na poradniku – Tyrehl jest gotów wspierać Cię w Twojej przygodzie z ZFS. Dołącz do naszego serwera Discord: [ zimaboard.com/discord]

Centrum Kampanii Zima

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.