Odzyskiwanie danych ZFS: przewodnik po RAIDZ1, RAIDZ2, RAIDZ3 i konfiguracji typu stripe (RAID‑0)
W tym artykule omawiamy procedury dotyczące odzyskiwania danych z macierzy RAIDZ1, RAIDZ2, RAIDZ3 oraz ZFS Stripe utworzonych w systemie operacyjnym TrueNAS SCALE. Prezentujemy sekwencję działań w przypadku awarii sprzętowej serwera oraz metodologię przywracania dostępu do puli danych, gdy jeden lub więcej dysków ulegnie awarii lub dane zostaną przypadkowo usunięte z macierzy.

- Możliwości TrueNAS SCALE
- Metoda 1. Automatyczne odzyskiwanie macierzy ZFS
- Metoda 2. Odzyskiwanie RAIDZ przy brakujących dyskach
- Metoda 3. Odzyskiwanie usuniętych plików
- Wnioski
- Pytania i odpowiedzi
- Komentarze
Oprócz awarii sprzętowych opisujemy odzyskiwanie po usunięciu całego datasetu, uszkodzeniu puli, krytycznej awarii systemu operacyjnego, uszkodzeniu systemu plików ZFS, błędach podczas dodawania nowych dysków, niewłaściwym działaniu kontrolera oraz przypadkowej inicjalizacji dysków w innym systemie.
Odzyskiwanie danych zostało przeprowadzone w środowisku Linux Ubuntu, ale możliwe jest również w systemach Windows i macOS.
Odzyskiwanie danych z macierzy RAID SHR-2 i SHR-1 utworzonych na serwerze NAS Synology DS418play
Możliwości TrueNAS SCALE
TrueNAS to otwarty system operacyjny do budowy pamięci masowej sieciowej, oparty na Linuksie i wykorzystujący system plików ZFS. Zapewnia ochronę danych, weryfikację integralności, efektywne zarządzanie dyskami oraz obsługę maszyn wirtualnych.
Platforma obsługuje różne typy RAID, w tym RAIDZ, który łączy wydajność z odpornością na awarie. TrueNAS SCALE umożliwia skalowanie horyzontalne poprzez łączenie wielu węzłów w klaster, przy zachowaniu kluczowych cech ZFS: samonaprawiania, snapshotów, kompresji, deduplikacji i szyfrowania.

System jest zgodny z protokołami SMB, NFS, iSCSI i S3 oraz umożliwia uruchamianie kontenerów i Kubernetes, co czyni go uniwersalnym rozwiązaniem do przechowywania i przetwarzania danych w różnych środowiskach.
RAIDZ to redundandna macierz dyskowa w ZFS z rozproszoną parzystością. Zastosowanie bloków o zmiennej długości optymalizuje zapisy i pozwala na automatyczną korekcję błędów podczas odczytu.
Podczas odzyskiwania zdegradowanej macierzy (resilvering) obciążenie pozostałych dysków znacząco wzrasta. Dlatego RAIDZ najlepiej nadaje się do środowisk o umiarkowanych wymaganiach dotyczących odporności na awarie lub dla dysków o mniejszej pojemności, gdzie czas odbudowy macierzy jest minimalny.
| Kategoria | Możliwości |
|---|---|
| Typ systemu | Otwarty system NAS / serwer oparty na Linuksie |
| System plików | Obsługa ZFS |
| RAID | RAIDZ1, RAIDZ2, RAIDZ3, Stripe, Mirror |
| Skalowanie | Horyzontalne (Scale-out) |
| Wirtualizacja | Obsługa KVM (maszyny wirtualne) |
| Kontenery | Kubernetes, Docker (przez Apps) |
| Protokoły sieciowe | SMB, NFS, FTP, iSCSI |
| Zarządzanie | Interfejs webowy (GUI) |
| Bezpieczeństwo | Szyfrowanie danych, kontrola dostępu, ACL |
| Kopie zapasowe | Snapshoty, replikacja, Rsync |
| Usługi chmurowe | Integracja z AWS, Google Cloud, Azure |
| Monitorowanie | Alerty, logi, statystyki |
| Wtyczki / aplikacje | Rozszerzalność przez katalog aplikacji |
| Wysoka dostępność | Obsługa klastra (HA) |
| Obsługa GPU | Tak (dla kontenerów i maszyn wirtualnych) |
Metoda 1. Automatyczne odzyskiwanie macierzy ZFS
W przypadku awarii komponentów sprzętowych serwera (zasilacz, płyta główna lub kontroler dysków) bezpośredni dostęp do danych z poziomu systemu operacyjnego może stać się niemożliwy.
Podobne sytuacje występują również, gdy serwer nie uruchamia się z powodu krytycznego błędu podczas aktualizacji TrueNAS SCALE lub gdy partycja systemowa została uszkodzona.
Nawet jeśli pliki i dyski nie zostały fizycznie uszkodzone, dostęp do macierzy RAIDZ może zostać utracony, a standardowe narzędzia ZFS mogą nie wykrywać dysków lub nie umożliwiać importu puli. W takich przypadkach specjalistyczne oprogramowanie, takie jak Hetman RAID Recovery, pozwala bezpiecznie uzyskać dostęp do danych i odzyskać informacje.
W tym przykładzie pokazujemy zautomatyzowany proces odzyskiwania na komputerze z systemem Ubuntu.
Najpierw wyłącz serwer i ostrożnie wyjmij wszystkie dyski, które należały do macierzy.

Podłącz je do stacji roboczej: optymalną opcją jest bezpośrednie podłączenie do płyty głównej za pomocą kabli SATA dla maksymalnej prędkości i stabilności transferu danych. Jeśli płyta główna nie ma wolnych portów, można użyć zewnętrznych stacji dokujących USB lub adapterów USB–dysk.

Należy pamiętać, że przy podłączeniu przez stacje dokujące prędkość skanowania może być niższa, dlatego dla dużych wolumenów danych preferowane jest użycie portów wewnętrznych.
Po podłączeniu sprawdź, czy dyski pojawiają się w Ubuntu w narzędziu Dyski, ale nie inicjalizuj ich, jeśli system zasugeruje taką akcję.

Bezpośrednio po weryfikacji uruchom Hetman RAID Recovery, aby przeprowadzić automatyczne złożenie macierzy.
Kluczową cechą Hetman RAID Recovery jest głęboka analiza metadanych ZFS. Oprogramowanie nie wymaga działającego systemu operacyjnego ani kontrolera — odczytuje informacje serwisowe bezpośrednio z dysków i automatycznie rekonstruuje strukturę puli.
Ponieważ ZFS przechowuje wszystkie krytyczne dane konfiguracyjne macierzy wewnątrz samej puli, logiczna integralność plików jest zachowana nawet, gdy środowisko serwera jest całkowicie niedostępne. W rezultacie użytkownik uzyskuje dostęp do danych w znajomej formie bez zależności od oryginalnego systemu.
W artykule demonstrujemy różne konfiguracje macierzy:
- RAIDZ1 na trzech dyskach,
- RAIDZ2 na czterech,
- RAIDZ3 na pięciu,
- oraz Stripe na dwóch dyskach.

Przeanalizujemy szczegółowo algorytm odzyskiwania dla trzydyskowej macierzy RAIDZ1 w sytuacji całkowitej awarii sprzętowej serwera lub krytycznego błędu po aktualizacji TrueNAS SCALE.
Należy podkreślić, że to podejście jest uniwersalne i można je zastosować także do konfiguracji RAIDZ2, RAIDZ3 i Stripe.
Po uruchomieniu Hetman RAID Recovery program automatycznie skanuje wszystkie podłączone urządzenia. Program odczytuje metadane serwisowe ZFS, analizuje konfigurację wirtualnych grup vdev i na podstawie uzyskanych danych rekonstruuje poprawny model RAIDZ1.
W oknie roboczym wyświetlane są wykryte dyski oraz złożone struktury logiczne — można od razu kontynuować pracę z nimi: przeprowadzić szczegółową analizę, przeglądać strukturę danych lub odzyskać wymagane pliki.

Wybierz wymaganą macierz RAIDZ1 z listy odtworzonych struktur i uruchom tryb Szybkie skanowanie, aby szybko określić strukturę danych.

Po zakończeniu skanowania w głównym oknie zostanie wyświetlony odzyskany system plików z pełną hierarchią katalogów i plików. Zaznacz wymagane obiekty i kliknij Odzyskaj.

W następnym kroku określ folder docelowy do zapisu danych — najlepiej na oddzielnym nośniku z wystarczającą ilością wolnego miejsca.

Potwierdź rozpoczęcie procesu, określ docelową ścieżkę i kliknij ponownie Odzyskaj, aby rozpocząć kopiowanie. Po zakończeniu operacji kliknij Zakończ.
W wyniku tych działań dane z puli ZFS RAIDZ1 zostaną odzyskane i będą dostępne do normalnego użytkowania.

Metoda 2. Odzyskiwanie RAIDZ przy brakujących dyskach
Rozważmy teraz przypadek awarii jednego lub większej liczby dysków w macierzy RAIDZ.
Architektura RAIDZ zapewnia odporność na awarie w zależności od typu macierzy:
- RAIDZ1 toleruje utratę jednego dysku.
- RAIDZ2 toleruje utratę dwóch dysków.
- RAIDZ3 toleruje utratę trzech dysków.
W przypadku Stripe nie ma redundancji, więc awaria dowolnego dysku prowadzi do całkowitej utraty danych.

Jeżeli nie jest możliwe podłączenie wszystkich dysków, można utworzyć obraz brakującego dysku i użyć go wraz z pozostałymi dyskami do dalszego procesu odzyskiwania.
Dzięki mechanizmom rozproszonej parzystości i kontroli integralności danych, specjalistyczne oprogramowanie takie jak Hetman RAID Recovery może zrekonstruować utracone bloki i przywrócić dostęp do informacji, jeżeli liczba uszkodzonych dysków nie przekracza dopuszczalnego poziomu dla danego typu RAIDZ.
Jeżeli próg ten zostanie przekroczony, struktura logiczna macierzy ulega zaburzeniu i standardowe metody programowe stają się nieskuteczne. W takich sytuacjach odzyskiwanie jest możliwe wyłącznie za pomocą profesjonalnego sprzętu w wyspecjalizowanych laboratoriach.
Upewnij się, że nośnik docelowy ma wystarczającą ilość wolnego miejsca na zapis odzyskanych danych i ostrożnie wyjmij dyski z serwera, a następnie podłącz je do komputera przez porty SATA lub zewnętrzną stację dokującą. Ważne jest, aby unikać jakichkolwiek zapisów na tych dyskach, ponieważ może to spowodować nieodwracalne utraty danych.

Przed rozpoczęciem zamknij wszystkie aplikacje, które mogą używać tych dysków, i tymczasowo wyłącz automatyczne kopie zapasowe lub synchronizację. Jeżeli system nie montuje macierzy, nie inicjalizuj dysków, nie twórz partycji ani nie formatuj ich.
Pozostaw dyski w ich aktualnym stanie i przejdź bezpośrednio do procedury odzyskiwania. Stosowanie się do tych zaleceń znacznie zwiększa szanse na skuteczne i bezpieczne odzyskanie danych niezależnie od typu RAIDZ lub konfiguracji Stripe.
Jeżeli architektura stacji roboczej nie pozwala na podłączenie wszystkich dysków jednocześnie, optymalnym rozwiązaniem jest użycie obrazów dysków wirtualnych. Metoda ta polega na tworzeniu dokładnych kopii bit po bicie każdego dysku do dalszej analizy.
Po zamontowaniu obrazu brakującego dysku Hetman RAID Recovery potraktuje go jako pełne urządzenie fizyczne i w połączeniu z dostępnymi dyskami automatycznie zrekonstruuje strukturę macierzy. Podejście to pozwala rozpocząć odzyskiwanie danych nawet przy ograniczonej liczbie portów — zachowując bezpieczeństwo i integralność danych na każdym etapie.
Przeanalizujemy proces odzyskiwania na przykładzie RAIDZ3, w którym jednocześnie uległy awarii trzy dyski.
Ta konfiguracja macierzy umożliwia przywrócenie danych nawet w tak poważnej awarii — wykonamy to przy użyciu Hetman RAID Recovery.
Bezpośrednio po uruchomieniu oprogramowanie automatycznie skanuje wszystkie podłączone dyski, odczytuje informacje serwisowe i na tej podstawie rekonstruuje oryginalną strukturę macierzy. Okno robocze wyświetla wszystkie wykryte dyski fizyczne i utworzone konfiguracje wirtualne, które można od razu wykorzystać. Wybierz znalezioną macierz RAIDZ3 i uruchom Szybkie skanowanie.

Zaznacz wymagane pozycje i kliknij Odzyskaj. Następnie określ folder do zapisu i potwierdź operację, klikając ponownie Odzyskaj.

Po zakończeniu kopiowania — kliknij Zakończ.
Po wykonaniu wszystkich kroków odzyskane pliki z macierzy RAIDZ3 będą w pełni użyteczne i dostępne do normalnej pracy.

Metoda 3. Odzyskiwanie usuniętych plików
Na koniec omówimy jeden z najczęstszych scenariuszy — przypadkowe usunięcie plików z macierzy RAID.
W tym przykładzie odzyskujemy dane z Stripe utworzonego z dwóch dysków w systemie plików ZFS.
Cechą charakterystyczną Stripe jest rozdzielenie danych pomiędzy wszystkie dyski bez redundancji. Oznacza to, że żaden pojedynczy dysk nie zawiera kompletnych plików. Dla skutecznego odzyskania wszystkie dyski muszą być podłączone jednocześnie i traktowane jako jedna struktura logiczna. Jeżeli jeden z dysków jest brakujący lub niepodłączony, oprogramowanie nie będzie w stanie odczytać danych.

Przed rozpoczęciem upewnij się, że wszystkie dyski są fizycznie podłączone do komputera — bezpośrednio przez SATA do płyty głównej lub przy użyciu zewnętrznej stacji dokującej.
Ważne jest, aby nie zapisywać nowych danych na tych dyskach ani ich nie inicjalizować w systemie, aby uniknąć nadpisania utraconych plików.

W Ubuntu uruchom Hetman RAID Recovery.
Oprogramowanie automatycznie przeskanuje wszystkie podłączone dyski, odczyta metadane ZFS i odpowiednio zrekonstruuje logiczną strukturę Stripe. W głównym oknie zobaczysz dyski fizyczne i złożoną macierz gotową do pracy.

Następnie wybierz Stripe z listy wykrytych macierzy i uruchom Pełne skanowanie. Pełne skanowanie jest wymagane, ponieważ po usunięciu plików w ZFS jedynie dogłębna analiza pozwala złożyć zfragmentowane dane i przywrócić poprawną strukturę katalogów.

Dodatkowe ustawienia zazwyczaj nie są wymagane; wystarczy kliknąć Dalej i poczekać na zakończenie procesu. Po zakończeniu skanowania główne okno pokaże odzyskaną strukturę macierzy ze wszystkimi folderami i plikami. W razie potrzeby użyj podglądu, aby sprawdzić zawartość dokumentów, obrazów lub innych plików.
Zaznacz wymagane pliki i foldery i kliknij Odzyskaj.

Określ miejsce docelowe dla odzyskanych danych na oddzielnym nośniku z wystarczającą ilością wolnego miejsca i potwierdź rozpoczęcie procesu, klikając ponownie Odzyskaj.
Po zakończeniu kopiowania kliknij Zakończ.

W rezultacie wszystkie pliki zostaną odzyskane i będą dostępne do normalnego użytkowania.
Ten proces zapewnia bezpieczeństwo danych, umożliwia przywrócenie plików nawet po przypadkowym usunięciu i zachowuje strukturę systemu plików ZFS bez ryzyka uszkodzenia innych danych na dyskach.
Wnioski
Odzyskiwanie danych z systemu plików ZFS oraz z macierzy RAIDZ1, RAIDZ2, RAIDZ3 i Stripe jest skomplikowane, ale całkowicie wykonalne przy prawidłowym podejściu i zrozumieniu architektury tych rozwiązań. Dzięki wbudowanym mechanizmom integralności danych i kontroli błędów, ZFS zapewnia wysoki poziom ochrony, szczególnie w konfiguracjach RAIDZ2 i RAIDZ3.
Niemniej jednak nawet tak niezawodne systemy nie są odporne na utratę danych spowodowaną awariami sprzętu, błędami użytkownika czy krytycznym uszkodzeniem puli. Najmniej zabezpieczoną konfiguracją pozostaje Stripe, gdzie brak redundancji oznacza całkowitą utratę danych w razie awarii dowolnego dysku.
Sukces odzyskiwania zależy od wielu czynników: typu RAID, liczby uszkodzonych dysków, stanu systemu plików oraz szybkości podjętych działań. Kluczowe zalecenia to natychmiastowe zaprzestanie zapisów na dotkniętej macierzy, przeprowadzenie poprawnej diagnostyki oraz wykorzystanie specjalistycznego oprogramowania lub usług profesjonalnych.
Dlatego, aby zminimalizować ryzyko utraty danych, ważne jest nie tylko znajomość metod odzyskiwania, ale również wcześniejsze wdrożenie strategii kopii zapasowych i dobór odpowiedniego poziomu RAID zgodnie z krytycznością przechowywanych informacji.







