Parzystość RAID może pozostać matematycznie poprawna, podczas gdy dane NAS są błędne, ponieważ parzystość zwykle potwierdza, że bieżące bloki spełniają równanie nadmiarowości. Nie dowodzi jednak, że te bloki zawierają historycznie poprawną zawartość pliku.
Jeśli uszkodzone dane zostaną zapisane przez normalną ścieżkę przechowywania, warstwa RAID może obliczyć pasującą parzystość dla tych uszkodzonych danych. Pasek jest wewnętrznie spójny, ale plik może być nadal logicznie lub cicho uszkodzony.
Co właściwie weryfikuje parzystość RAID?
Parzystość to relacja między blokami w pasku. W uproszczonym przykładzie z pojedynczą parzystością, bloki danych i blok parzystości są połączone równaniem XOR. Jeśli jeden blok jest nieobecny, pozostałe mogą go odtworzyć.
To równanie odpowiada na wąskie pytanie: czy te bieżące wartości bloków pasują do oczekiwanej relacji parzystości? Nie odpowiada na pytanie, czy zdjęcie nadal zawiera piksele, które użytkownik pierwotnie zapisał, czy strona bazy danych odzwierciedla najnowszą zatwierdzoną transakcję lub czy złośliwe oprogramowanie celowo zmieniło plik.
Jak mogą współistnieć błędne dane i poprawna parzystość?
Załóżmy, że zła ścieżka pamięci, błąd oprogramowania, błąd aplikacji lub już uszkodzone źródło generuje błędne dane przed obliczeniem parzystości przez RAID. Stos pamięci zapisuje błędne dane i aktualizuje parzystość na podstawie tej samej błędnej wartości. Oba zapisy mogą zakończyć się pomyślnie.
Wynikowy pasek jest spójny z perspektywy RAID. Późniejsza kontrola parzystości nie wykryje niezgodności, ponieważ równanie nadal jest prawdziwe. Awaria nastąpiła powyżej warstwy parzystości, więc parzystość nie ma niezależnego zapisu zamierzonej zawartości.
| Stan | Bloki danych | Parzystość | Co widzi RAID |
|---|---|---|---|
| Poprawny zapis | Poprawne | Pasuje | Spójne |
| Błędne dane zapisane normalnie | Błędne | Pasuje do błędnych danych | Spójne |
| Write hole (dziura zapisu) | Mieszanka nowych i starych wartości | Nie pasuje do końcowego paska | Niespójne |
| Ukryty błąd sektora | Jeden blok nieczytelny lub zmieniony | Może pomóc w rekonstrukcji | Zależy od pozostałych informacji |
Dlaczego write hole w RAID to inny problem?
Write hole występuje, gdy aktualizacja paska zostaje przerwana po tym, jak tylko część zmiany danych i parzystości zostanie zapisana w stabilnym magazynie. Pasek może wtedy zawierać mieszankę starych i nowych wartości. To jest niespójność parzystości, a nie przypadek „błędnych danych z pasującą parzystością”.
Dokumentacja Linux MD dotycząca dziennika częściowej parzystości wyjaśnia, że PPL zamyka write hole RAID 5, rejestrując częściową parzystość przed główną aktualizacją paska. Zwraca też uwagę na ważną granicę: ochrona spójności parzystości nie chroni automatycznie danych użytkownika w trakcie zapisu przed wszystkimi trybami awarii.
Dzienniki RAID opisane w dokumentacji RAID device-mapper Linux rozwiązują ten sam typ nieatomowych aktualizacji komponentów. Utrzymują spójność równania parzystości po przerwanym zapisie, ale nie mogą określić, czy aplikacja dostarczyła właściwe bajty.
Co dodaje integralność end-to-end?
Sumy kontrolne end-to-end dodają osobną tożsamość dla bloku danych lub rekordu. Scrub może ponownie obliczyć sumę kontrolną i porównać ją z zapisaną wartością. Jeśli jedna kopia nadmiarowa nie przejdzie walidacji, a inna tak, system ma dowód, która kopia jest wiarygodna.
Dokumentacja Btrfs dotycząca scrub opisuje sprawdzanie danych i metadanych pod kątem błędów sum kontrolnych i odczytu, a następnie naprawę z weryfikowanej repliki, gdy jest dostępna. To różni się od polegania wyłącznie na parzystości, by stwierdzić, że równanie paska jest zrównoważone.
Sumę kontrolną również trzeba chronić i przechowywać przez zaufaną ścieżkę. Jeśli zarówno zawartość, jak i jej suma kontrolna zostaną nadpisane razem z logicznie błędną nową wersją, system może konsekwentnie zweryfikować tę błędną wersję.
Gdzie RAID nadal pomaga?
Parzystość pozostaje wartościowa przy awarii dysku i odzyskiwaniu nieczytelnych bloków. Może odtworzyć brakujące informacje, zachować dostępność i wspierać naprawę, gdy awaria mieści się w modelu RAID. Błąd polega na oczekiwaniu, że parzystość udowodni poprawność aplikacji, historyczną prawdę lub niezależność od tego samego stosu pamięci masowej.
Ta granica jest częścią ograniczeń RAID dla ochrony danych NAS w domu. RAID, sumy kontrolne, migawki i kopie zapasowe odpowiadają na różne pytania i stają się silniejsze, gdy są warstwowe, a nie traktowane jako zamienne.
FAQ
Czy pomyślna kontrola parzystości dowodzi, że każdy plik jest poprawny?
Nie. Dowodzi, że sprawdzone paski spełniają swoje bieżące relacje parzystości. Pliki mogą nadal być logicznie błędne, celowo zmienione lub konsekwentnie uszkodzone powyżej warstwy RAID.
Czy sumy kontrolne mogą wskazać poprawną kopię?
Mogą odróżnić kopię, która pasuje do zapisanej sumy kontrolnej, od takiej, która nie pasuje. Naprawa nadal wymaga ważnej kopii nadmiarowej lub kopii zapasowej, a suma kontrolna nie wykryje złej wersji, która została legalnie zsumowana po zapisie.
Czy dziennikowanie RAID to to samo co dziennikowanie systemu plików?
Nie. Dziennikowanie RAID chroni spójność aktualizacji macierzy, zwłaszcza relacje danych i parzystości. Dziennikowanie systemu plików chroni spójność transakcji systemu plików, takich jak aktualizacje metadanych.
Podsumowanie
Poprawna parzystość oznacza, że bieżący pasek jest matematycznie samospójny. Nie oznacza to, że bajty są zamierzonymi bajtami. Sumy kontrolne end-to-end, semantyka transakcji, migawki i niezależne kopie zapasowe są potrzebne, aby odpowiedzieć na szersze pytania o integralność i odzyskiwanie, na które parzystość nie potrafi odpowiedzieć.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego Home Assistant działa inaczej w sieci lokalnej i przy połączeniach zdalnych?
Sesje Home Assistant w sieci LAN i zdalne korzystają z różnych ścieżek sieciowych; opóźnienie zdalne obejmuje DNS, szyfrowanie, sieć WAN, serwer proxy lub VPN...

Czy Home Assistant działa niezawodnie za CGNAT-em lub podwójnym NAT-em?
CGNAT i podwójny NAT zazwyczaj nie wpływają na lokalne sterowanie Home Assistantem; zmieniają głównie sposób, w jaki zdalni klienci mogą utworzyć ścieżkę przychodzącą do...

Jak opóźnienie sieci wpływa na działanie Home Assistant podczas awarii Internetu?
Utrata dostępu do Internetu i opóźnienia sieciowe to różne awarie: lokalne ścieżki urządzeń mogą nadal działać szybko, podczas gdy DNS, integracje z chmurą, bramy...

