Co jest takiego dobrego w systemie plików ZFS w systemie Linux Ubuntu?
System plików ZFS w systemie Linux Ubuntu. Jakie są cechy jego struktury, zalety i wady, zastanówmy się razem w naszym artykule.
- Przewagi ZFS
- Limity ZFS
- Instalacja ZFS na Ubuntu
- Jak utworzyć RAIDz
- Jak tworzyć, wycofywać i usuwać migawki ZFS
- Przekazywanie i odbieranie ZFS
- Kompresja danych ZFS
- Wniosek
- Pytania i odpowiedzi
- Komentarze
ZFS lub Zettabyte File System to system plików pierwotnie stworzony przez Sun Microsystems dla systemu operacyjnego Solaris. Obsługuje duże ilości danych, łączy koncepcje systemu plików, menedżera dysków logicznych i nośników fizycznych, a także proste zarządzanie woluminami pamięci masowej.
Jest to system plików nowej generacji, pierwotnie zaprojektowany w celu zapewnienia rozwiązań NAS o zwiększonym bezpieczeństwie, niezawodności i wydajności. W przeciwieństwie do innych systemów, ZFS to 128-bitowy system plików oferujący praktycznie nieograniczoną pojemność pamięci. ZFS to projekt open source na licencji CDDL (Common Development and Distribution License).
Cecha | Opis |
---|---|
Wsparcie dla dużych wolumenów danych | ZFS obsługuje niezwykle duże wolumeny danych, pozwalając na przechowywanie do eksabajtów informacji. |
Integracja systemu plików i zarządzania woluminami | Łączy system plików i menedżer woluminów, zapewniając uproszczone zarządzanie przestrzenią dyskową. |
Natychmiastowe zrzuty (snapshots) | Umożliwia tworzenie zrzutów systemu plików w celu szybkiego przywracania danych bez znacznego obciążenia zasobów. |
Ochrona przed uszkodzeniami danych | Wbudowane mechanizmy weryfikacji integralności danych przy użyciu sum kontrolnych, które zapobiegają ich uszkodzeniu. |
Redundancja danych (RAID-Z) | Zapewnia różne poziomy ochrony danych dzięki wbudowanym funkcjom RAID-Z w celu ochrony przed utratą. |
Kompresja danych | Oferuje efektywną kompresję danych, co pomaga zaoszczędzić miejsce na dysku. |
Klonowanie systemów plików | Umożliwia tworzenie klonowanych kopii bezpośrednio z zrzutów w celach testowych lub rozwojowych. |
Szyfrowanie | Obsługuje szyfrowanie danych w celu ochrony poufnych informacji. |
Aby korzystać z systemu plików ZFS po wyjęciu z pudełka, musicie zainstalować FreeBSD lub system operacyjny korzystający z jądra ilumos, rozwidlenia jądra OpenSolaris.
Jeśli chcecie używać ZFS na Ubuntu, musicie ręcznie dodać obsługę ZFS, nie jest to trudne, wystarczy uruchomić kilka poleceń. Wrócimy do tego później, ale na razie spójrzmy na zalety i wady tego systemu plików.
Przewagi ZFS
Zalety systemu plików ZFS obejmują:
Przewagi. Ma uproszczone administrowanie
Zarządzanie woluminami, macierzami RAID i systemem plików jest tutaj scalone. Do tworzenia woluminów, poziomów nadmiarowości, systemów plików, kompresji, punktów montowania i nie tylko. potrzebujecie tylko kilku poleceń.
Ułatwia to również monitorowanie, ponieważ dostępne są dwa lub nawet trzy mniejsze poziomy.
Przewagi. Następną korzyścią jest integralność danych
Podczas zapisywania danych obliczana jest i zapisywana wraz z nią suma kontrolna. Później, gdy dane są odczytywane, suma kontrolna jest obliczana ponownie. Jeśli zapisane sumy kontrolne i odczytane dane nie zgadzają się, zostanie wykryty błąd. Następnie system spróbuje automatycznie naprawić taki błąd.
ZFS również dobrze się skaluje dzięki możliwości dodawania nowych urządzeń, zarządzania pamięcią podręczną i tym podobnych.
Przewagi. Funkcja kopiowania przy zapisie
W większości systemów plików dane są tracone na zawsze po nadpisaniu. Z drugiej strony w ZFS nowe informacje są zapisywane w innym bloku.
Metadane systemów plików są następnie aktualizowane do nowych informacji po zakończeniu zapisu. Powoduje to zachowanie starych danych w przypadku awarii systemu lub innego złośliwego zdarzenia.
Przewagi. Ma wbudowane funkcje przechowywania
Replikacja to proces tworzenia kopii czegoś.
-
Deduplikacja to proces, który eliminuje nadmiarowe kopie danych i zmniejsza obciążenie pamięci masowej.
Kompresja to opcja, która oszczędza miejsce na dysku i zwiększa szybkość, podczas gdy liczba bitów potrzebnych do reprezentowania danych jest zmniejszona.
-
Migawki to zestaw znaczników referencyjnych dla danych w określonym momencie.
-
Klony są identyczną kopią czegoś.
Limity ZFS
Ale jak każdy system plików, ZFS ma również swoje słabości.
Limity. ZFS cierpi na fatalną wydajność przy 80% lub więcej swojej pojemności
Jest to częsty problem z systemami plików. Kiedy pula zaczyna wypełniać 80% pojemności, musisz albo rozwinąć ego, albo przenieść się do większej pamięci masowej.
Limity. Nie można zmniejszyć puli
Po dodaniu nie można usunąć urządzeń ani vdevów z puli.
Limity. Ma również ograniczenia w zmianie typu nadmiarowości
Z wyjątkiem przełączenia pojedynczej puli dyskowej na pulę lustrzaną, nie można zmienić typu nadmiarowości. Po wybraniu typu redundancji jedynym rozwiązaniem jest jej zniszczenie i utworzenie nowej, przywrócenie danych z kopii zapasowych lub z innej lokalizacji.
Instalacja ZFS na Ubuntu
Na razie spójrzmy, jak zainstalować ZFS w systemie operacyjnym Linux na przykładzie Ubuntu w wersji 20.04.
Aby zainstalować, potrzebujemy terminala, aby uruchomić, naciśnij kombinację klawiszy Ctrl + Alt + T.
Następnie uruchomcie następujące polecenie
$ sudo apt update
Aby sprawdzić dostępność aktualizacji aplikacji. Po wprowadzeniu polecenia system poprosi o podanie hasła, wpisanie hasła roota i naciśnięcie Enter.
I zainstalować następujące elementy:
$ sudo apt install zfsutils-linux
Po uruchomieniu polecenia instalacji wpicie "y", aby potwierdzić, i naciśnijcie Enter. Rozpocznie się proces instalacji pakietu oprogramowania.
Aby zweryfikować instalację ZFS, uruchomcie następujące polecenie.
$ zfs –version
Wynikiem będzie wersja programu. Teraz możecie utworzyć pulę pamięci za pomocą wirtualnego urządzenia vdev.
Pula pamięci to zbiór co najmniej jednego urządzenia wirtualnego, które przechowuje dane. Pula ZFS, inaczej nazywana Zpool, służy jako kontener danych najwyższego poziomu w całym systemie ZFS. Służy do tworzenia jednego lub więcej systemów plików (zestawów danych) lub urządzeń blokowych (woluminów). Te systemy plików i urządzenia blokowe współdzielą pozostałą przestrzeń w puli. Operacje partycjonowania i formatowania będą obsługiwane przez ZFS.
Urządzenie wirtualne (vdev) może składać się z jednego lub większej liczby urządzeń fizycznych. Może to być pula lub część puli, może mieć lustro, potrójne lustro, poziom redundancji RAIDZ, RAIDZ-2 lub RAIDZ-3.
RAID-Z to implementacja zmodyfikowanego RAID-5. W ZFS jest w stanie wyeliminować błędy i luki zapisu znalezione w oryginalnym RAID-5. RAID-Z1 wymaga do działania co najmniej trzech dysków: dwóch dysków do przechowywania i jednego do kontroli parzystości.
RAID-Z2 powinien mieć dwa dyski do przechowywania i dwa do kontroli parzystości.
RAID-Z3 — co najmniej dwa dyski i trzy dyski dla parzystości.
Jak utworzyć RAIDz
Teraz przyjrzyjmy się, jak złożyć z dysków RAID-Z. Najpierw musicie określić dyski, z których zostanie zbudowana macierz.
Aby sprawdzić podłączone dyski i określić niezbędne, użyjemy narzędzia - fdisk. Uruchomcie następujące polecenie, aby zbudować listę dysków:
$ sudo fdisk -l
W rezultacie zobaczycie listę dysków ze szczegółowymi informacjami o każdym z nich.
Na przykład pokażę, jak zbudować RAIDZ pierwszego poziomu, jest to odpowiednik RAID5 z jednym dyskiem z parzystością. Umożliwia utrzymanie działania macierzy bez utraty danych w przypadku awarii jednego dysku.
Mam trzy dyski twarde /dev/sdd, /dev/sde, /dev/sdf. Stworzę pulę o nazwie zdata. Aby to zrobić, wykonam następujące polecenie:
$ sudo zpool create ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf
$ sudo zpool create zdata raidz /dev/sdd /dev/sde /dev/sdf
Jeśli pojawi się jakikolwiek błąd, możecie uruchomić polecenie za pomocą opcji -f po poleceniu zpool create, co wymusza uruchomienie polecenia.
$ sudo zpool create -f ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf
Aby znaleźć punkt montowania po utworzeniu puli, uruchom polecenie df -h:
$ df –h
Pula jest zamontowana w /zdata. Aby zmienić punkt montowania dla puli, użyjcie następującej składni.
$ sudo zfs set mountpoint =<path> <pool_name>
W tym przykładzie użyłam /var/pool jako nowego punktu montowania.
$ sudo zfs set mountpoint=/var/pool zdata
Sprawdzanie nowego punktu:
$ df –h
Możecie tworzyć katalogi w puli pamięci. Na przykład utworzę katalog o nazwie mydata
$ sudo zfs create zdata/mydata
Aby wyświetlić wszystkie pule pamięci ZFS w systemie, uruchomcie następujące polecenie:
$ zpool list
Aby zobaczyć konfigurację i stan każdego urządzenia w puli ZFS, uruchomcie polecenie status.
$ zpool status
Aby wyświetlić zdarzenia i rozwiązywać problemy, wprowadźcie następujące polecenie
$ sudo zpool events zdata –v
Aby dodać kolejny dysk twardy do puli pamięci ZFS, musicie uruchomić polecenie z nazwą dysku, który chcecie dodać.
$ sudo zpool add zdata /dev/sdb
A po dodaniu dysku, zobaczmy stan puli:
$ zpool status
Aby usunąć pulę pamięci ZFS, musicie uruchomić następujące polecenie.
$ sudo zpool destroy zdata
Jak tworzyć, wycofywać i usuwać migawki ZFS
Ten system plików umożliwia tworzenie migawek puli.
Migawka to kopia tylko do odczytu systemu plików utworzona w określonym momencie. Możecie robić migawki całych zestawów danych lub pul. Migawka zawiera oryginalną wersję systemu plików wraz ze wszystkimi zmianami wprowadzonymi od czasu wykonania migawki. Mówiąc najprościej, po utworzeniu migawki tworzona jest kopia różnicowa tylko do odczytu.
Aby utworzyć zrzut, użyjcie polecenia -zfs snapshot, a następnie nazwy zrzutu. W tym przykładzie użyłam zdata/mydata do utworzenia migawki.
$ sudo zfs snapshot zdata/mydata@snap1
Aby sprawdzić zrzut, uruchomcie następujące polecenie:
$ zfs list -t snapshot
W razie potrzeby możecie zmienić jego nazwę
sudo zfs rename zdata/mydata@snap1 zdata/mydata@snap2
Możecie cofnąć zmiany, wykonując operację wycofywania migawki. Pamiętajcie, że utracicie wszystkie zmiany od czasu wykonania zrzutu.
Aby powrócić do żądanego zrzutu, musicie uruchomić polecenie zfs rollback z nazwą żądanego zrzutu. Spowoduje to cofnięcie wszystkich działań w tym katalogu, które zostały wykonane po wykonaniu tego zrzutu.
$ sudo zfs rollback test-pool/mydata@snap1
To polecenie przywróci system do żądanej daty.
Po zakończeniu przywracania możecie sprawdzić usunięte pliki w katalogu po wykonaniu zrzutu.
Przekazywanie i odbieranie ZFS
Migawki można zapisywać w pliku i zwracać z powrotem, co doskonale nadaje się do tworzenia kopii zapasowych lub wysyłania kopii przez sieć (na przykład przez ssh) w celu skopiowania systemu plików.
Polecenie - send wysyła migawkę systemu plików, która może zostać wysłana do pliku lub do innej maszyny w strumieniu. Polecenie odbierania akceptuje taki strumień i zapisuje kopię migawki z powrotem w systemie plików ZFS.
Na przykład utwórzmy kolejną migawkę i zapiszmy ją w pliku za pomocą następującego polecenia:
sudo zfs snapshot -r zdata/mydata@snap3
sudo zfs send zdata/mydata@snap2> ~/mydata-snap.zfs
A następnie zwróćcie go, wykonując następujące polecenie:
sudo zfs receive -F zdata/mydata-copy < ~/mydata-snap.zfs
Za pomocą dodatkowych skryptów możecie skonfigurować automatyczne tworzenie migawek i wysyłanie na przykład na serwer za pośrednictwem protokołu ssh.
Kompresja danych ZFS
I jak wspomniano wcześniej, ZFS umożliwia automatyczną kompresję danych. Biorąc pod uwagę moc nowoczesnych procesorów, jest to przydatna opcja, ponieważ zmniejszony rozmiar danych oznacza, że mniej danych będzie fizycznie odczytywanych i zapisywanych, co skutkuje szybszymi operacjami we/wy. ZFS zapewnia szeroką gamę metod kompresji. Domyślnie jest to lz4 (wysokowydajny zamiennik lzjb), który zapewnia szybszą kompresję i dekompresję niż lzjb przy nieco wyższym stopniu kompresji. Aby zmienić poziom kompresji, możecie użyć polecenia:
sudo zfs set compression=gzip-9 zdata
Możecie nawet zmienić typ kompresji:
sudo zfs set compression=lz4 zdata
Wyświetlcie poziom kompresji:
sudo zfs get compressratio
Najbezpieczniejszym wyborem jest lz4, ponieważ jest znacznie szybszy niż wszystkie inne opcje o dobrej wydajności.
Wniosek
Biorąc to wszystko pod uwagę, ZFS jest niewątpliwie systemem plików oferującym szeroki wachlarz możliwości. System plików pozwala nie tylko na efektywne i innowacyjne zarządzanie danymi, ale także w przypadku nieprzewidzianej sytuacji pozwoli na ich odtworzenie bez przerwy w pracy. Ponadto w przypadku awarii cały system można łatwo przywrócić za pomocą funkcji migawki i przywrócić go do określonego punktu w czasie.
Jeśli macie problemy z utratą danych z systemu plików ZFS i RAIDZ, użyjcie programu Hetman RAID Recovery. Z jego pomocą można odzyskać przypadkowo usunięte pliki z systemu plików ZFS lub uzyskać informacje ze zniszczonej macierzy RAIDZ. Program pomoże w przypadku awarii, formatowania, nadpisywania i innych przypadków utraty danych.
Cecha | Opis |
---|---|
Obsługa macierzy RAID | Program obsługuje różne typy macierzy RAID, w tym RAID 0, RAID 1, RAID 5, RAID 10 oraz niestandardowe konfiguracje. |
Automatyczne wykrywanie parametrów | Automatycznie wykrywa parametry macierzy, takie jak rozmiar bloku, kolejność dysków i inne kluczowe cechy. |
Odzyskiwanie danych | Możliwość odzyskiwania danych z uszkodzonych lub usuniętych macierzy RAID, a także po błędach lub awariach w konfiguracji. |
Podgląd plików | Umożliwia podgląd plików przed odzyskiwaniem w celu oceny jakości i weryfikacji danych. |
Obsługa systemów plików | Obsługuje systemy plików FAT, NTFS, ReFS, HFS+, Ext2/3/4, XFS, ZFS i inne. |
Przyjazny interfejs użytkownika | Łatwy w obsłudze interfejs z kreatorem krok po kroku do odzyskiwania danych. |