Czy RAID 1 chroni przed korupcją?

14

Czy Raid 1 chroni przed uszkodzeniem danych? Powiedzmy na przykład, że przechowuję wszystkie ważne pliki na serwerze NAS, który używa 2 dysków w macierzy RAID 1. Jeśli jeden dysk twardy ma jakiś problem wewnętrzny i dane ulegną uszkodzeniu, czy RAID rozpozna to automatycznie i poprawi używa danych z innego dobrego dysku?

Czy mógłby w ogóle wiedzieć, która kopia jest dobra?

Czy RAID 5 chroni przed korupcją?

Wiem, że RAID nie jest rozwiązaniem kopii zapasowej. Próbuję wymyślić, jak się upewnić, że nie tworzę kopii zapasowych uszkodzonych danych!

Reg Edycja
źródło

Odpowiedzi:

13

RAID-1 chroni przed całkowitą awarią jednego z dwóch dysków. Jeśli dysk nie zostanie oznaczony jako uszkodzony, jego zawartość zostanie uznana za dokładną. Ale jeśli z jakiegoś powodu jeden z dwóch dysków zwróci niespójne dane, wówczas ten błąd nie zostanie wykryty przez system RAID, a aplikacja otrzyma złe dane.

Wiele kontrolerów ma proces weryfikacji, który jest uruchamiany okresowo, ale ma to na celu sprawdzenie awarii dysku, a nie integralności danych. Dyski twarde wdrażają własne testy integralności danych i sumy kontrolne, których używają do wykrywania uszkodzonych sektorów, ale algorytm został zaprojektowany jako szybki i kompaktowy, a nie dokładny, aby błędy mogły wyciekać.

Chociaż uszkodzenie danych jest raczej wyjątkiem niż regułą, nie jest również niespotykane. Członek zespołu ZFS, na przykład, poinformował w wywiadzie, widząc, że uszkodzone dane są usuwane przez ich wysokiej klasy urządzenie RAID-5, które wykryli dzięki temu, że ZFS implementuje sumy kontrolne na tym poziomie systemu plików.

tylerl
źródło
5

To zależy od tego, skąd bierze się korupcja. Jeśli dysk w lustrze RAID 1 jest paskudny i pisze bzdury, to lustro RAID ulegnie degradacji, a dobry dysk będzie w użyciu i będziesz mieć dobre pliki. W przypadku RAID 5 odbywa się to z 2 dyskami danych i dyskiem parzystości (w najprostszej formie), a jeśli jeden z 3 dysków nie zapisuje odpowiednich plików, nie powiedzie się i pozostaną albo 2 dane dyski lub 1 dysk danych i dysk parzystości.

Teraz spójrzmy na to, co się dzieje, jeśli uszkodzenie jest spowodowane przez wirusa lub błąd w programie. W macierzy RAID 1 i RAID 5 żaden dysk nie zostanie wyłączony z eksploatacji, ponieważ dyski zapisują poprawnie. Nic nie zawiodło. Pliki zostaną jednak zniszczone, ponieważ wirus lub błąd zapisują śmieci i zapisują je zarówno na dyskach w lustrze RAID 1, jak i na wszystkich 3 dyskach w systemie RAID 5.

Dlatego RAID nie jest kopią zapasową. Zapobiega najprawdopodobniej awarii, jaką jest awaria dysku, ale nie uwzględnia wielu innych scenariuszy.

Joshua Levitsky
źródło
4
+1 „Dlatego RAID nie jest kopią zapasową” Bóg wie, ile razy słyszałem „Mam się dobrze, mam kopię zapasową przykrytą RAID”
Urda
2
Jak RAID może rozróżnić, które dane są dobre, a które złe?
1
Shaun ... jeśli twoje dane zostaną zjedzone przez wirusa lub przypadkowo usunięte, RAID nigdy nie rozróżni ich jako dobrych lub złych. Wszystko, co zarządza RAID, to upewnienie się, że (w RAID 1) oba dyski są równe. Jeśli sektor nie uzyska sumy kontrolnej, kontroler RAID rekompensuje jego naprawę lub uruchamia odbudowę. W macierzy RAID 5, jeśli sektor nie przejdzie kontroli parzystości, następuje przebudowa. RAID chroni dyski fizyczne przed awarią i utratą danych. Nie mogą chronić przed utratą danych spowodowaną błędami programu lub wirusami.
Urda
6
Twoja charakterystyka RAID 5 jest niedokładna. Nie ma osobnego dysku parzystości, zamiast tego parzystość jest rozdzielana na wszystkie dyski. Otrzymujesz całkowitą dostępną przestrzeń n-1, ale nie ma dysku poświęconego parzystości.
MDMarra
2
Muszę to zagłosować. RAID1 nie sprawdza sumowania, chroni tylko przed całkowitą awarią dysku. Jeśli jeden dysk zacznie zwracać śmieci, nie będzie w stanie stwierdzić, który z nich jest poprawny, i chętnie zwróci dane śmieci. RAID5 Nie jestem pewien z powodu kontroli parzystości. Właśnie dlatego wymyślono systemy plików, takie jak ZFS i BTRFS, aby uzyskać system podobny do RAID „rozpoznający dane”, który może odpowiednio korygować śmieci za pomocą sum kontrolnych do weryfikacji bloków danych.
Alex
5

Jak zauważyli inni, system raid1 nie ma sposobu, aby stwierdzić, który z dwóch sektorów jest zły.

Wyższe systemy rajdowe uruchamiają operację szorowania w tle, aby porównać obie kopie i różnice flag. Jeszcze lepiej jest to system, który odczytuje oba bloki z dysku za każdym razem i porównuje je w czasie odczytu. Rozwiązanie tych różnic jest jednak niemożliwe dla kontrolera nalotu.

W systemach uniksowych pod kontrolą mdadm kontrolę szorowania można zainicjować za pomocą „sync współdziałania”:

Tablice md można wyczyścić, pisząc zaznaczenie lub naprawę do pliku md / sync współdziałania w katalogu sysfs dla urządzenia.

Żądanie czyszczenia spowoduje, że md przeczyta każdy blok na każdym urządzeniu w tablicy i sprawdzi, czy dane są spójne. W przypadku RAID1 i RAID10 oznacza to sprawdzenie, czy kopie są identyczne. W przypadku RAID4, RAID5, RAID6 oznacza to sprawdzenie, czy blok parzystości jest (lub jest poprawny).

Raid1 polega na ochronie przed nagłą całkowitą awarią dysku. Szukaj gdzie indziej ochrony przed korupcją. Poza tym Raid1 nie oferuje „historii”, więc nie można odzyskać po błędach ludzkich lub programowych. Sprawdź systemy plików, takie jak ZFS lub system plików chroniący historię, taki jak Hammer, w celu ochrony przed uszkodzeniem.

Bryce
źródło
3

W praktyce tak. Zdecydowana większość awarii dysków twardych występuje całkowicie lub wcale. Albo (a) kabel jest odłączony lub mikrokontroler napędu uległ awarii, więc kontroler RAID w ogóle nie reaguje - ewidentnie uszkodzony dysk. Lub (b) Mikrokontroler dysku i napędu jest dobry, ale gdy próbuje odczytać sektor, wewnętrzny mikrokontroler dysku wykrywa uszkodzenie danych, ponieważ wewnętrzna suma kontrolna ECC nie powiodła się, i powtarzane są próby odczytu tego sektora (w przypadku, gdy jest to tymczasowa usterka odczytu ) ostatecznie upłynął limit czasu, więc kontroler RAID otrzymuje uprzejmą odpowiedź „przepraszam” - ewidentnie uszkodzony dysk. Tak czy inaczej, dla kontrolera RAID-1 lub RAID-5 oczywiste jest, że dysk uległ awarii.

W zasadzie nie. Jeśli coś poszło tak źle, że dysk twardy pisze bzdury, a mimo to działa wystarczająco dobrze, aby napisać poprawny wewnętrzny kod ECC dla tych bzdur, wówczas RAID-1 nie może stwierdzić, który dysk jest poprawny. System RAID-1 prawdopodobnie zastąpi dobre dane uszkodzonymi danymi podczas ponownej synchronizacji. RAID-5 nie jest lepszy. Awaria zasilania „dziura zapisu RAID-5” podczas aktywnego zapisu jest jednym szczególnym rzadkim, ale nie niemożliwym przypadkiem.

O ile mi wiadomo, jedynym sposobem na uniknięcie takiego uszkodzenia jest użycie sum kontrolnych oprócz dublowania plików, albo automatycznie jako część systemu plików (ZFS lub Btrfs), albo okresowo lub ręcznie (ponowne obliczanie sum kontrolnych rsync, prosta weryfikacja plików, zestawy plików Parchive itp.); idealnie z kryptograficznym skrótem, takim jak SHA-256.

David Cary
źródło
Każda szansa, że ​​dasz odpowiedź na to pytanie .... superuser.com/questions/736612/…
Mick