Tworząc urządzenie rajdowe z oprogramowaniem dla systemu Linux jako urządzenie raid10, jestem zdezorientowany, dlaczego należy go zainicjować. To samo pytanie dotyczy naprawdę raid1 lub raid0.
Ostatecznie większość ludzi umieściłaby na nim jakiś system plików i ten system plików nie powinien zakładać żadnego stanu danych na dysku. Każdy zapis wpłynie na oba dyski w konfiguracji raid10 lub raid1, do której zapisywane jest N mirrorów. Początkowo nie powinno być żadnego powodu, aby inicjować nalot10, ponieważ nastąpi to z czasem.
Rozumiem dlaczego dla konfiguracji RAID 5/6, w której istnieje wymóg parzystości, ale nawet wtedy wydaje się, że można to zrobić leniwie.
Czy to po to, żeby ludzie czuli się lepiej?
linux
software-raid
raid10
Michael Graff
źródło
źródło
Odpowiedzi:
Konieczna jest wstępna synchronizacja, ponieważ wszelkie różnice między serwerami lustrzanymi pojawiałyby się jako błędy podczas okresowej kontroli.
I powinieneś robić okresowe kontrole.
źródło
Rajd 1, będący lustrem, zależy od tego, czy wszystkie dyski w lustrze są dokładnie takimi samymi kopiami. Weź losowy dysk twardy i inny losowy dysk twardy, a prawdopodobnie masz tam inne dane, co narusza to domniemanie. Dlatego konieczna jest inicjalizacja. Po prostu kopiuje zawartość pierwszego dysku na inne. Zwróć uwagę, że w niektórych warunkach możesz uniknąć inicjalizacji dysków - zwykle fabrycznie nowe urządzenia mają już wszędzie zero, więc możesz to po prostu zignorować.
mdadm
Opcja--assume-clean
to robi, ale ostrzega:Jeśli tego nie zrobisz, istnieje rozbieżność między dyskami i jest on odczytywany, nie wiadomo, co dysk będzie czytał. Powinieneś być całkiem bezpieczny z systemem plików (ale uwaga poniżej), ponieważ najprawdopodobniej napiszesz zanim przeczytasz cokolwiek z tego urządzenia, a potem wszystko będzie jasne.
Zauważ, że przynajmniej Linux
mdadm
zainicjuje tablicę w tle. Możesz szczęśliwie stworzyć FS na nim w pierwszej sekundzie. Wydajność będzie cierpieć do momentu zakończenia inicjalizacji, ale to wszystko.Ale:
a) Podczas wykonywania
mkfs
niektórych narzędzi sprawdź, czy coś już jest na tym dysku. Chociaż dotyka to tylko kilku dobrze znanych regionów jazdy, odczytuje przed napisaniem czegokolwiek, zagrażając w ten sposób.b) W przypadku okresowej ponownej synchronizacji macierzy urządzenie RAID nie wie nic o twoim systemie FS. Po prostu odczytuje każdy blok z każdego urządzenia i porównuje je. A jeśli nie używasz FS kopiowania przy zapisie (np. ZFS lub BTRFS) i nigdy nie wypełniasz FS, jest całkiem prawdopodobne, że blok pozostanie niezainicjowany z perspektywy FS przez lata.
Dlaczego resynchronizacja z urządzeniami RAID1?
Z tego samego powodu resynchronizujesz z urządzeniami RAID5 lub dowolnym innym poziomem (oprócz RAID0). Odczytuje wszystkie dane i porównuje / weryfikuje sumy kontrolne RAID (w RAID 5 lub 6). Jeśli bit został w jakikolwiek sposób odwrócony (ponieważ pamięć HD dostała spontaniczne odwrócenie, ponieważ telefony komórkowe ciebie i twoich 5 sąsiadów przypadkowo ingerowały w ten konkretny region talerza, cokolwiek), wykryje niespójność, ale nie będzie w stanie pomóc Ci. Jeśli, OTOH, jeden z dysków twardych po prostu zgłosi „Nie mogę odczytać tego bloku”, co jest bardziej prawdopodobne w przypadku awarii dysku, oznacza to, że po prostu wykryłeś awarię wcześnie i skróciłeś czas pracy w trybie awaryjnym (licząc od awaria napędu, nie od momentu, gdy go zauważysz). Raid nie pomoże ci, jeśli jeden dysk ulegnie awarii, a miesiąc później drugi ulegnie awarii, jeśli nie
RAID10
Teraz, dla RAID10, wszystkie powyższe blokady są ważne. W końcu RAID10 to po prostu sprytny sposób na powiedzenie: „Umieszczam moje dwa urządzenia RAID1 w parze RAID0”.
Zastrzeżenie:
To wszystko jest niezdefiniowane zachowanie. Dlaczego sprawdziłem w systemie Linux, używając
mdadm
innych implementacji programowych macierzy RAID może zachowywać się inaczej. Inne wersje jądra i / lubmdadm
narzędzi Linuksa niż te, których używam, mogą również zachowywać się inaczej.źródło
If you don't do it, there is a discrepancy between the drives and it's read, the RAID device will report failure of a drive
. Uważam, że to stwierdzenie jest nieprawidłowe. Przynajmniej podaj przykład komunikatu o błędzie, aby można było skonsultować się ze źródłem w celu sprawdzenia, w jakich okolicznościach jest on generowany.While this only touches a few well-known regions of drive, it reads before you write anything, thus putting you in danger.
W niebezpieczeństwie czego? Zdaję sobie sprawę, że odczyt może spowodować cokolwiek, ale dlaczego miałoby to stanowić pewne zagrożenie dla użytkownika, jeśli (a) czytana informacja nie zostanie nigdzie użyta i (b) nastąpi zapis?urandom
zainicjowanym urządzeniu z Linuksem mdadm pokazuje, że pierwsze 80k pozostaje inne, a ostatnie 48k. Ten ostatni prawdopodobnie wynika z zaokrąglenia rozmiaru RAID do rozmiaru bloku. Nie testowałem z różnymi rozmiarami urządzeń, ale 80 + 48 to dokładnie różnica w wielkości między urządzeniem RAID a podstawowym urządzeniem blokowym.Pamiętaj, że RAID 1 to lustro, a RAID 10 to pasek lusterek.
Pytanie brzmi, na którym dysku w każdym lustrze dane są prawidłowe? W świeżo utworzonej tablicy nie jest to znane, ponieważ dyski mogą mieć różne dane.
Pamiętaj również, że RAID działa na bardzo niskim poziomie; nic nie wie o systemach plików ani żadnych danych przechowywanych na dysku. Może nawet nie być w użyciu system plików.
Zatem inicjalizacja w tych macierzach polega na tym, że dane z jednego dysku w każdym lustrze są kopiowane w stanie obecnym na drugi dysk.
Oznacza to również, że tablica jest bezpieczna w użyciu od momentu jej utworzenia i może być inicjowana w tle; większość kontrolerów RAID (i Linux mdraid) ma taką opcję lub robi to automatycznie.
źródło
Mówiąc najprościej, ponieważ dwa nowe dyski od samego początku nie będą lustrzanymi kopiami.
Muszą zostać zamienione w doskonałe kopie.
Ponadto inicjalizacja obejmuje także skonfigurowanie superbloku metadanych z informacjami o konfiguracji macierzy.
Plik / proc / mdstat powinien informować, że urządzenie zostało uruchomione, że rekonstruowane jest dublowanie, oraz ETA zakończenia rekonstrukcji. Rekonstrukcja odbywa się przy użyciu bezczynnej przepustowości we / wy. Twój system powinien nadal reagować, chociaż diody LED dysku będą również wykazywać dużą aktywność.
Proces rekonstrukcji jest przezroczysty, więc możesz faktycznie korzystać z urządzenia, nawet jeśli lustro jest w trakcie rekonstrukcji.
źródło