Jeśli system RAID5 napotka URE podczas przebudowy, czy wszystkie dane zostaną utracone?


23

Rozumiem argument dotyczący większego prawdopodobieństwa wystąpienia URE podczas przebudowy, jednak nie jestem pewien, jakie są tego rzeczywiste konsekwencje. Ta odpowiedź mówi, że cała odbudowa kończy się niepowodzeniem, ale czy to oznacza, że ​​wszystkie dane są niedostępne? Dlaczego miałoby to być? Z pewnością pojedynczy URE z jednego sektora na dysku miałby wpływ tylko na dane związane z kilkoma plikami. Czy tablica nadal nie zostałaby odbudowana, z niewielkim uszkodzeniem kilku plików?

(Jestem szczególnie zainteresowany implementacją RAID5 w ZFS, ale logika wydaje się taka sama dla każdej implementacji RAID5).


1
Zasadniczo, gdy „prawdopodobieństwo wystąpienia URE podczas przebudowy ” jest omawiane w kontekście ryzyka RAID5, zakłada się, że wcześniejsza korupcja już wystąpiła, aby spowodować konieczność przebudowy. Innymi słowy, „URE podczas przebudowy” jest drugim URE i rzeczywiście WSZYSTKIE dane zostaną utracone.
Colt

1
@Colt - Rozumiem, że to implikacja, ale nie rozumiem, dlaczego pojedynczy URE (który w analizie, dlaczego RAID5 nie jest zalecany, wydaje się odnosić do złego sektora) oznaczałby, że wszystkie dane zgubić się. Ogólnie rzecz biorąc, jeśli straciłem 1 dysk macierzy RAID5, nadal mam wszystkie dane. Jeśli dodatkowo stracę pojedynczy sektor z dowolnego z pozostałych dysków, możliwe jest , że stracę dane, które były przechowywane w tym sektorze, ale jeśli w tym sektorze było (na przykład) wolne miejsce, to mnie to nie obchodzi, a jeśli ten sektor miał na nim dane, może to wpłynąć tylko na kilka plików.
proces91

@Colt - Na podstawie poniższych odpowiedzi wydaje się, że niepowodzenie w przebudowaniu tablicy w obecności pojedynczego URE było wyborem dokonanym przez producentów sprzętu RAID. Moim zdaniem był to zły wybór, ale na szczęście wygląda na to, że ZFS robi to inaczej.
proces91

Zobacz odpowiedź @ shodanshok na ten proces. Co do tego, dlaczego RAID zapewnia ciągłość dostępu do wiarygodnych danych dla innych procesów, aplikacji itp., A nie chodzi o tworzenie kopii zapasowych. Powodem, dla którego wiele (większość?) Kontrolerów sprzętowych przerywa działanie po wystąpieniu URE podczas przebudowy, jest to, że RAID nie może już robić tego, co powinien . W tym momencie, kopie zapasowe muszą być użyte do wiarygodnych danych. Innym sposobem korzystania z RAID jest w ogóle nie przeprowadzanie żadnej odbudowy, a jedynie użycie RAID do kontrolowania czasu odzyskiwania z kopii zapasowej. Daje to również czas na wykonanie ostatecznej kopii zapasowej przed odzyskaniem.
Colt

Zauważ, że implementacja RAID5 w „ZFS” nazywa się „raidz” lub „zraid” i różni się od sprzętowej RAID5. Zazwyczaj można uzyskać lepsze odpowiedzi na temat „ZFS RAID5” z pytaniem o „raidz”
Josh

Odpowiedzi:


24

To zależy od konkretnej implementacji RAID:

  • większość sprzętowych macierzy RAID przerwie proces rekonstrukcji, a niektóre oznaczą tablicę jako nieudaną , co spowoduje jej obniżenie. Uzasadnieniem jest to, że jeśli URE wydarzy się podczas przebudowy RAID5, oznacza to, że niektóre dane zostaną utracone, więc lepiej jest całkowicie zatrzymać tablicę, niż ryzykując ciche uszkodzenie danych. Uwaga: niektóre sprzętowe RAID (głównie oparte na LSI) zamiast tego przebiją macierz, umożliwiając kontynuację przebudowy, jednocześnie zaznaczając dotknięty sektor jako nieczytelny (podobnie jak zachowuje się RAID oprogramowania Linux).

  • oprogramowanie linux RAID może zostać poinstruowane, aby a) zatrzymać przebudowę macierzy (jedyne zachowanie „starożytnych” kompilacji MDRAID / jąder) lub b) kontynuować proces przebudowy oznaczający niektóre LBA jako złe / niedostępne. Uzasadnieniem jest to, że lepiej pozwolić użytkownikowi dokonać wyboru: w końcu pojedynczy URE może znajdować się na wolnym miejscu, nie wpływając wcale na dane (lub wpływając tylko na nieistotne pliki);

  • ZRAID pokaże niektóre pliki jako uszkodzone, ale będzie kontynuował proces przebudowy (patrz tutaj przykład). Ponownie, uzasadnieniem jest to, że lepiej jest kontynuować i zgłosić się do użytkownika, umożliwiając mu dokonanie świadomego wyboru.


@ process91 Aby rozwinąć nieco dalej. Jeśli implementacja RAID nie ma dodatkowych struktur danych potrzebnych do oznaczenia poszczególnych sektorów jako złych, musi albo zawieść przebudowę, albo wprowadzić cichą korupcję. Oznaczanie poszczególnych sektorów jako złe jest lepsze, ale nadal może stanowić ryzyko dla innych sektorów ze względu na dzielenie sektora parzystości z sektorem złym.
kasperd

@kasperd Pewnie, przypuszczam, że założyłem, że większość implementacji RAID mogła ostrzec użytkownika o uszkodzonych sektorach. Rozumiem, czy w jednym dysku jest uszkodzony sektor, który po odbudowie doprowadzi do nieprawidłowego sektora w nowym dysku. To powiedziawszy, nawet jeśli implementacja RAID nie zrobiła nic poza ostrzeżeniem użytkownika: „Przebudowałem dysk najlepiej, jak mogłem, ale doświadczyłem 1 URE”, a następnie nadal pozwalałem na próby zapisu w tym sektorze, ale nie zobacz, jak zagrożone mogą być inne sektory. Jedynymi możliwymi niepoprawnymi sektorami byłyby oryginał, nowy i parzystość.
process91

Jedno wyjaśnienie, oparte na komentarzach @Colt powyżej - w przypadku sprzętowej macierzy RAID, gdy oznaczy tablicę jako nieudaną, czy nadal pozwala na dostęp do danych? Nawet powiedzmy dostęp tylko do odczytu w celu próby odzyskania?
proces91

@ process91 Dopuszczenie do uszkodzenia sektora nie jest uważane za dobry pomysł, nawet jeśli fakt ten został zapisany w pliku dziennika. Nie masz pojęcia, który plik może być uszkodzony. RAID musiałby upewnić się, że po odczytaniu tego pliku wystąpi błąd. Oczywiście nie chcesz po prostu nadpisywać uszkodzonego sektora, ponieważ oznaczałoby to, że straciłeś ostatnią szansę na odzyskanie danych. Masz więc nieczytelny sektor na jednym dysku i sektor na nowym dysku, w którym nie wiesz, co napisać. Mogą to być dwa różne pliki uszkodzone.
kasperd

1
@ process91 Dodałem notatkę o tablicach opartych na LSI. Spójrz.
shodanshok

8

Jeśli wystąpi URE, nastąpi uszkodzenie danych w całym bloku, który zwykle ma rozmiar 256 KB-1 MB, ale nie oznacza to, że WSZYSTKIE dane w woluminie zostaną utracone. To, co nie jest tak świetne w RAID5, to zupełnie inna sprawa: sama odbudowa jest stresująca i istnieje duże prawdopodobieństwo, że dojdzie do awarii drugiego dysku z rzędu. W takim przypadku wszystkie dane zostałyby utracone.


2
W jaki sposób przebudowa RAID5 jest bardziej stresująca na pojedynczym dysku niż przebudowa RAID1? Widzę, że jest to bardziej stresujące dla procesora, ale dla każdego konkretnego dysku po prostu odczytujemy z niego wszystkie dane. Zwykle ludzie, którzy przytaczają większe dyski, prawdopodobnie napotkają URE podczas przebudowy, ale nie mam nic przeciwko, jeśli oznacza to tylko uszkodzenie jednego sektora.
proces91

3
To teoria prawdopodobieństwa. W przypadku N (gdzie jest to liczba dysków) Twoje szanse na awarię są N razy większe.
BaronSamedi1958,

1
Nie do końca tak działałyby obliczenia, tak naprawdę chciałbyś obliczyć 1 prawdopodobieństwo braku awarii, ale rozumiem tę część. Wygląda na to, że błędnie zinterpretowałem twoje oświadczenie jako sugerujące, że przebudowa RAID5 jest w jakiś sposób bardziej stresująca na samym dysku (który przeczytałem gdzie indziej), co zwiększa szanse na URE, ale jeśli to nie to, co „ mówię wtedy zgadzam się.
proces91

2

Wyjaśniłbym to na odwrót;

Jeśli kontroler RAID nie zatrzymuje się na URE, co może się zdarzyć?

Żyłem na serwerze, RAID nigdy nie zauważył URE, a po przebudowie zaczęło się gromadzić uszkodzenie na całym woluminie RAID.

Po odbudowie dysk zaczął być coraz bardziej uszkodzony, a dane zaczęły być uszkodzone.

Dysk nigdy nie został wyrzucony z woluminu RAID, awaria kontrolera ma na celu ochronę integralności danych.

Ten przykład został napisany, abyś myślał, że kontroler nie może w ogóle przekazać woluminu za pomocą URE, dotyczy to integralności danych, ponieważ wolumin nie ma być kopią zapasową, ale odpornością na awarię dysku


1
Widzę, że wszyscy nowi moderatorzy stale sprawdzają witrynę, szukają rzeczy do zrobienia ...
Totem - Przywróć Monikę

1
Dlaczego pojedynczy URE może powodować uszkodzenie w całym woluminie RAID?
proces91

2
Przepraszam, ponownie przeczytałem twoją odpowiedź. Wygląda na to, że miałeś jeden zły URE podczas przebudowy, ale to nie był problem. Problem polegał na tym, że sektory nadal się pogarszały po odbudowie, a napęd nigdy tego nie zgłosił. Wydaje się to jednak kwestią odrębną od tego, czy kontroler RAID zauważy URE podczas przebudowy. Kontroler RAID może zauważyć URE podczas przebudowy i ostrzec Cię, ale nadal przystępuje do zakończenia przebudowy. Niektóre dane zawsze byłyby lepsze niż brak danych.
proces91

2
Interesuje mnie tylko analiza, dlaczego RAID5 został uznany za „martwy” w 2009 r., Co zależy od prawdopodobieństwa pojedynczego URE. Rozumiem teraz, że ta analiza była matematycznie niepoprawna i tak naprawdę nie ma zastosowania w ten sam sposób, na przykład do ZFS.
proces91

1
@RobMoir Chyba twoje ostatnie zdanie nie zgadza się z tym. Usunięcie prawie wszystkich moich danych z tablicy może być przydatne, nawet gdybym miał inną kopię zapasową. Być może ten plik nie był ważny lub (w przypadku sprzętowej macierzy RAID) błąd wystąpił w obszarze wolnego miejsca. Myślę, że właściwą decyzją dla sprzętowego RAID-a (gdzie nie wie on konkretnie, których plików dotyczy), byłoby ostrzeżenie użytkownika, dokończenie przebudowy i przełączenie tablicy w tryb tylko do odczytu. Nie widzę żadnych wad tego. (Oczywiście systemy plików, takie jak ZFS, mogą nawet działać lepiej, ponieważ mogą zgłaszać pliki, których dotyczy problem).
process91

1

Sugeruję przeczytanie tego pytania i odpowiedzi na nieco więcej informacji. Następnie ponownie przeczytaj pytanie, z którym się połączyłeś .

Kiedy ktoś mówi o tej sytuacji, że „awaria macierzy RAID” oznacza, że ​​utraciłeś korzyści z macierzy RAID - straciłeś ciągły dostęp do danych, który był powodem, dla którego ustawiłeś macierz RAID.

Nie straciłeś wszystkich danych, ale najczęstszym sposobem na odzyskanie z jednego martwego dysku plus (niektóre) URE na (niektórych) pozostałych dyskach byłoby całkowite przebudowanie tablicy od zera, co będzie oznaczało przywrócenie wszystkich danych z kopii zapasowej.


1
Ogólnie rzecz biorąc, używasz RAID, gdy Twoim celem jest zminimalizowanie przestojów. Utrzymywanie tablicy z nieznaną i nie naprawioną korupcją jest zwykle sprzeczne z tym celem.
David Schwartz

1
Dzięki, to pierwsze pytanie, z którym się łączyłeś, było bardzo pouczające. Dlaczego miałbym stracić ciągły dostęp do danych? Macierz nadal będzie działała podczas przebudowy, a jeśli napotka URE podczas przebudowy, spodziewam się, że po prostu będzie działała, choć ten jeden sektor danych jest teraz uszkodzony. Czy tak nie jest?
proces91
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.