Odzyskiwanie danych z RAID 6 i Synology SHR-2
RAID 6 toleruje awarię dwóch dysków, ale ta ochrona kończy się w momencie, gdy rebuild zaczyna pracować na dyskach z błędami, opóźnieniami albo nieaktualnymi metadanymi. Na dużych nośnikach odbudowa potrafi trwać dziesiątki godzin i obciąża każdy pozostały dysk. Przy ważnych danych bezpieczniejszą drogą jest obrazowanie wszystkich członków i rekonstrukcja offline z kopii, a nie eksperymenty na oryginalnej macierzy.
Rebuild zdegradowanej macierzy RAID 6 z dużymi dyskami potrafi pogorszyć sytuację, jeśli którykolwiek z pozostałych nośników ma błędy, timeouty albo jest dyskiem nieaktualnym po wcześniejszym wypadnięciu z macierzy. Jeżeli dane są jedyną kopią, najrozsądniej zatrzymać dalsze operacje, zachować kolejność dysków i skonsultować przypadek zanim kontroler zacznie automatycznie przebudowywać lub sprawdzać spójność.
Dual parity - jak RAID 6 różni się od RAID 5
RAID 5 używa jednego bloku parity XOR na każdy stripe - pozwala odtworzyć dane z jednego brakującego dysku. RAID 6 dodaje drugi, niezależny blok parity obliczany innym algorytmem. Dwa niezależne równania pozwalają rozwiązać układ z dwiema niewiadomymi - czyli odtworzyć dane z dwóch brakujących dysków jednocześnie.
Parity P to bitowe XOR wszystkich bloków danych w stripe - ten sam algorytm co RAID 5. Pozwala odtworzyć jeden brakujący blok.
Parity Q to kod korekcji błędów Reed-Solomon obliczany w skończonym polu Galois GF(2^8). Każdy blok danych dostaje inny mnożnik (potęgę elementu generatora), co sprawia że Q jest liniowo niezależne od P. Dwa niezależne równania - dwie niewiadome do rozwiązania.
Oba bloki parity rotują po wszystkich dyskach zamiast siedzieć na dedykowanych dyskach parity. Przy rekonstrukcji offline trzeba precyzyjnie zidentyfikować kierunek rotacji, rozmiar bloku i algorytm Q - błędna identyfikacja daje matematycznie poprawne ale kompletnie nieczytelne dane.
Minimalna liczba dysków: 4 (2 na dane, 2 na parity). Pojemność użytkowa: (N-2) × rozmiar najmniejszego dysku.
- → RAID 5: rekonstrukcja 1 dysku, algorytm XOR
- → RAID 6: rekonstrukcja 2 dysków, P (XOR) + Q (Reed-Solomon)
- → Identyfikacja algorytmu Q konieczna do rekonstrukcji
- → Błędny algorytm Q: dane wyglądają poprawnie ale są uszkodzone
- → Minimalna macierz: 4 dyski (RAID 5: 3)
SHR-2 - Synology Hybrid RAID z tolerancją dwóch dysków
W Synology użytkownik bardzo często nie widzi napisu "RAID 6". W panelu DSM pojawia się raczej SHR-2, pula pamięci, Volume Crashed albo informacja o zdegradowanym woluminie. Z punktu widzenia odzysku najważniejsza nie jest nazwa z panelu, tylko układ dysków, metadane mdadm, warstwa LVM oraz system plików.
SHR-2 to Synology Hybrid RAID z tolerancją dwóch dysków. Przy dyskach tej samej pojemności zachowuje się praktycznie jak RAID 6. Przy dyskach różnych pojemności Synology potrafi dzielić przestrzeń na kilka grup i lepiej wykorzystać większe dyski, ale dla odzysku oznacza to dodatkową warstwę logiczną do przeanalizowania.
Typowy stos w Synology SHR-2 wygląda tak: mdadm RAID 6 - LVM - Btrfs albo EXT4. Dlatego przy awarii nie wystarczy "odpalić jeden dysk". Trzeba odtworzyć cały układ, kolejność dysków, warstwy wolumenów i dopiero wtedy analizować system plików.
To jest ważne szczególnie przy zgłoszeniach typu: Synology pokazuje Volume Crashed, pula pamięci uległa awarii, SHR-2 zdegradowany po wymianie dysku, rebuild zatrzymał się w połowie albo NAS przestał widzieć dwa dyski.
DSM może pokazywać "SHR (with 2-drive fault tolerance)", ale pod spodem nadal analizujemy metadane mdadm, kolejność członków, LVM i Btrfs/EXT4. Oryginalny NAS pomaga, ale nie jest warunkiem odzysku - kluczowe są dyski i ich kolejność.
SHR z tolerancją jednego dysku odpowiada najczęściej układom zbliżonym do RAID 5. SHR-2 daje tolerancję dwóch dysków i jest odpowiednikiem RAID 6. W obu przypadkach po awarii kluczowe jest zatrzymanie rebuildu, zachowanie kolejności dysków i praca na kopiach posektorowych.
Dlaczego rebuild RAID 6 może być ryzykowny
Rebuild zdegradowanej macierzy RAID 6 wymaga odczytu każdego sektora wszystkich pozostałych dysków pod ciągłym, intensywnym obciążeniem I/O. Przy 6 dyskach po 8 TB to odczyt 40 TB danych po kolei, bez przerwy. Przy 8 TB dyskach na zwykłym sprzęcie - 24 do 48 godzin. Przy 16 TB dyskach - 48 do 72+ godzin.
W tym czasie macierz pracuje w stanie obniżonej tolerancji. Dyski tej samej partii, kupione razem, mające podobną liczbę godzin pracy i identyczne warunki pracy, są szczególnie narażone na ujawnienie słabych sektorów, timeoutów albo awarii mechanicznej właśnie podczas tak intensywnego odczytu.
Jeden URE (unrecoverable read error) na ocalałym dysku podczas rebuildu po jednym padniętym - RAID 6 z Q parity sobie z tym poradzi: drugi blok parity wypełni ten stripe i rebuild idzie dalej. Ale jeśli padnie kolejny dysk mechanicznie podczas rebuildu - macierz ma już zero tolerancji i każdy następny błąd odczytu to utrata danych.
Hot spare skraca czas zanim rebuild się zacznie - ale sam rebuild nadal wymaga pełnego odczytu wszystkich dysków pod obciążeniem. Jeśli hot spare uruchomi automatyczny rebuild na macierzy gdzie drugi dysk jest już marginalny, rebuild może go pchnąć za krawędź.
Jeśli macierz ma jeden padły dysk i podczas rebuildu trafi na URE na ocalałym - Q parity pokryje ten stripe i rebuild idzie dalej. Eskalacja do poważnej utraty danych następuje gdy drugi dysk pada mechanicznie podczas rebuildu - wtedy brak parity do pokrycia błędów.
Scenariusze awarii RAID 6 - co się stało i co zrobić
Jednoczesna vs sekwencyjna awaria dwóch dysków
Awaria jednoczesna - zwykle bardziej przewidywalna
Przepięcie, zwarcie backplane albo wspólne zdarzenie może zatrzymać dwa dyski w tym samym momencie logicznym. Jeżeli pozostałe P i Q parity są nadal zsynchronizowane z danymi na ocalałych dyskach, rekonstrukcja jest zwykle bardziej przewidywalna: mamy dwa niezależne równania i dwie niewiadome na stripe. To nadal nie jest "prosty przypadek", bo dochodzi stan fizyczny nośników, system plików i ewentualne błędy odczytu, ale od strony logiki RAID jest to korzystniejszy scenariusz niż stale drive.
Awaria sekwencyjna - poważniejsza
Pierwszy dysk wypada z macierzy. Macierz działa dalej w trybie zdegradowanym, przyjmuje zapisy. Dane pierwszego dysku "zamrażają się" w momencie wypadnięcia. Po jakimś czasie pada drugi dysk. Administrator widzi dwie awarie i próbuje wymusić pierwszy dysk online jako stopgap.
Kontroler akceptuje nieaktualne bloki pierwszego dysku, oblicza od nowa P i Q parity na podstawie mieszaniny aktualnych i przestarzałych danych. Parity jest spójne matematycznie - ale pliki mają stare dane tam gdzie pierwszy dysk był nieaktualny. I ta nieprawidłowa parity jest teraz "poprawna" z punktu widzenia kontrolera.
Jeśli macierz działała przez jakiś czas bez pierwszego dysku, jego dane są nieaktualne. Wymuszenie go online uruchamia consistency check który "koryguje" aktualną parity do stanu z nieaktualnego dysku. Dane sprzed wypadnięcia są poprawnie odzwierciedlone, ale wszystko co było zapisane po wypadnięciu - przepadło z parity.
Przy odzysku porównujemy event countery w metadanych mdadm, znaczniki czasu transakcji i per-stripe sums parity żeby zidentyfikować które bloki na pierwszym dysku są nieaktualne i wykluczyć je z rekonstrukcji.
mdadm śledzi stan macierzy przez licznik Event Count który inkrementuje się przy każdej zmianie stanu. Dysk który wypadł z macierzy ma niższy event count niż reszta. mdadm normalnie odrzuca dyski z dużo niższym event count. Flaga --force omija tę ochronę. Dlatego fraza mdadm --assemble --force w historii przypadku jest dla nas ważną informacją diagnostyczną, a nie sugestią do samodzielnego testowania na oryginalnych dyskach.
Proces odzysku z RAID 6 krok po kroku
RAID 6 w Synology, QNAP, ZFS i na kontrolerach
Czego nie robić po awarii RAID 6
Poniższe działania nie zawsze niszczą dane od razu, ale potrafią mocno pogorszyć sytuację. Największy problem w RAID 6 to nie sama awaria dwóch dysków, tylko późniejszy rebuild, wymuszony import, consistency check albo praca z dyskiem stale.
- Nie wymuszaj rebuildu zdegradowanej macierzy, jeśli pozostałe dyski mają błędy SMART, timeouty albo niestabilny odczyt
- Nie importuj Foreign Configuration w ciemno, jeżeli nie wiesz, czy któryś dysk nie był wcześniej stale
- Nie używaj
mdadm --assemble --forcena oryginalnych dyskach z niższym event count bez kopii posektorowych - Nie restartuj przerwanego rebuildu w ciemno - część stripe'ów może być w stanie pośrednim
- Nie wkładaj konsumenckich dysków DM-SMR jako zamienników w RAID 6, jeśli dane są ważne
- Nie uruchamiaj consistency check po wymuszeniu stale drive online - może utrwalić niespójny stan parity
- Nie inicjalizuj macierzy od nowa na dyskach z danymi
- Nie wykonuj testów zapisu na oryginalnych dyskach - najpierw kopie, potem rekonstrukcja
Co warto napisać przy awarii RAID 6 / SHR-2
Nie musisz znać wszystkich parametrów macierzy. Wystarczy krótki opis: ile było dysków, jaki był NAS lub kontroler, co stało się przed awarią i jaki komunikat widzisz w panelu. Jeżeli dyski są już wyjęte z obudowy, dobrze jest zachować ich kolejność albo oznaczyć numery slotów.
Pomocne są zdjęcia ekranu z DSM/QTS/iDRAC/WebBIOS, komunikaty typu Volume Crashed, Degraded, Foreign Configuration, informacja o przerwanym rebuildzie albo o użyciu mdadm --force. Jeżeli tego nie masz, to nie problem - większość parametrów można ustalić podczas diagnozy na kopiach posektorowych.
Jak wyceniamy odzysk z RAID 6 i SHR-2
Nie podaję tutaj sztywnej ceny, bo RAID 6 może oznaczać kilka zupełnie różnych przypadków: prostą utratę konfiguracji, dwa dyski z błędami odczytu, przerwany rebuild, stale drive po wymuszonym imporcie albo kilka nośników wymagających naprawy przed klonowaniem.
Wycena zależy głównie od liczby dysków, stanu każdego nośnika, typu kontrolera lub NAS-a, systemu plików oraz historii zdarzeń: rebuild, hot spare, Foreign Config, consistency check, mdadm --force, wymiana dysku albo migracja między urządzeniami.
Najpierw wykonujemy diagnozę i ustalamy, czy dane można złożyć z kopii posektorowych. Po diagnozie dostajesz konkretną wycenę oraz informację, jaki zakres odzysku jest realny. Aktualne zasady diagnozy i rozliczeń są w cenniku oraz formularzu zgłoszenia.
FAQ - RAID 6 i SHR-2
Zobacz też
RAID 6 lub SHR-2 nie działa?
Opisz ile dysków padło, jaki NAS lub kontroler, czy był rebuild lub import foreign config. Odpiszę z oceną sytuacji - zazwyczaj tego samego dnia.