Wyszukiwanie w witrynie

Jak odzyskać dane i odbudować uszkodzone oprogramowanie RAID — część 8


W poprzednich artykułach z tej serii RAID przeszedłeś od zera do bohatera RAID. Przeanalizowaliśmy kilka konfiguracji oprogramowania RAID i wyjaśniliśmy podstawowe zasady każdej z nich, wraz z powodami, dla których warto skłaniać się ku jednej lub drugiej, w zależności od konkretnego scenariusza.

W tym przewodniku omówimy, jak odbudować programową macierz RAID bez utraty danych w przypadku awarii dysku. Dla zwięzłości rozważymy tylko konfigurację RAID 1 – ale koncepcje i polecenia mają zastosowanie we wszystkich przypadkach jednakowo.

Scenariusz testowania RAID

Zanim przejdziesz dalej, upewnij się, że masz skonfigurowaną macierz RAID 1, postępując zgodnie z instrukcjami podanymi w części 3 z tej serii: Jak skonfigurować RAID 1 (lustro) w systemie Linux.

Jedynymi zmianami w naszym obecnym przypadku będą:

1) inną wersję CentOS (v7) niż ta użyta w tym artykule (v6.5) oraz
2) różne rozmiary dysków dla /dev/sdb i /dev/sdc (8 GB każdy).

Ponadto, jeśli SELinux jest włączony w trybie wymuszania, będziesz musiał dodać odpowiednie etykiety do katalogu, w którym zamontujesz urządzenie RAID. W przeciwnym razie podczas próby zamontowania zobaczysz następujący komunikat ostrzegawczy:

Możesz to naprawić, uruchamiając:


restorecon -R /mnt/raid1

Konfigurowanie monitorowania RAID

Istnieje wiele powodów, dla których urządzenie pamięci masowej może ulec awarii (jednak dyski SSD znacznie zmniejszają ryzyko takiej sytuacji), ale niezależnie od przyczyny, możesz mieć pewność, że problemy mogą wystąpić w każdej chwili i musisz być przygotowany na wymianę uszkodzonego części oraz w celu zapewnienia dostępności i integralności danych.

Najpierw mała rada. Nawet jeśli możesz sprawdzić /proc/mdstat, aby sprawdzić stan swoich macierzy RAID, istnieje lepsza i oszczędzająca czas metoda polegająca na uruchomieniu mdadm w monitorze + skanowaniu tryb, który będzie wysyłał powiadomienia e-mailem do wcześniej zdefiniowanego odbiorcy.

Aby to skonfigurować, dodaj następujący wiersz w pliku /etc/mdadm.conf:


MAILADDR user@<domain or localhost>

W moim przypadku:


MAILADDR gacanepa@localhost

Aby uruchomić mdadm w trybie monitorowania i skanowania, dodaj następujący wpis crontab jako root:


@reboot /sbin/mdadm --monitor --scan --oneshot

Domyślnie mdadm sprawdza macierze RAID co 60 sekund i wysyła alert, jeśli znajdzie problem. Możesz zmodyfikować to zachowanie, dodając opcję --delay do powyższego wpisu crontab wraz z liczbą sekund (na przykład --delay 1800 oznacza 30 minut).

Na koniec upewnij się, że masz zainstalowanego Mail User Agent (MUA), takiego jak mutt lub mailx. W przeciwnym razie nie będziesz otrzymywać żadnych alertów.

Za chwilę zobaczymy jak wygląda alert wysłany przez mdadm.

Symulacja i wymiana uszkodzonego urządzenia pamięci masowej RAID

Aby zasymulować problem z jednym z urządzeń pamięci masowej w macierzy RAID, użyjemy opcji --manage i --set-faulty w następujący sposób:


mdadm --manage --set-faulty /dev/md0 /dev/sdc1  

Spowoduje to oznaczenie /dev/sdc1 jako wadliwego, jak widać w /proc/mdstat:

Co ważniejsze, sprawdźmy, czy otrzymaliśmy powiadomienie e-mail z tym samym ostrzeżeniem:

W takim przypadku konieczne będzie usunięcie urządzenia z programowej macierzy RAID:


mdadm /dev/md0 --remove /dev/sdc1

Następnie możesz fizycznie usunąć go z maszyny i zastąpić częścią zamienną (/dev/sdd, gdzie wcześniej utworzono partycję typu fd):


mdadm --manage /dev/md0 --add /dev/sdd1

Na szczęście dla nas system automatycznie rozpocznie przebudowę tablicy z części, którą właśnie dodaliśmy. Możemy to przetestować, zaznaczając /dev/sdb1 jako wadliwy, usuwając go z tablicy i upewniając się, że plik tecmint.txt jest nadal dostępny pod adresem / mnt/raid1:


mdadm --detail /dev/md0
mount | grep raid1
ls -l /mnt/raid1 | grep tecmint
cat /mnt/raid1/tecmint.txt

Na powyższym obrazku wyraźnie widać, że po dodaniu do tablicy /dev/sdd1 w zamian za /dev/sdc1, przebudowa danych została automatycznie przeprowadzona przez system bez ingerencji Z naszej strony.

Chociaż nie jest to bezwzględnie wymagane, warto mieć pod ręką zapasowe urządzenie, dzięki czemu proces wymiany wadliwego urządzenia na dobry dysk może zostać przeprowadzony w mgnieniu oka. Aby to zrobić, dodajmy ponownie /dev/sdb1 i /dev/sdc1:


mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md0 --add /dev/sdc1

Odzyskiwanie po utracie zatrudnienia

Jak wyjaśniono wcześniej, mdadm automatycznie odbuduje dane w przypadku awarii jednego z dysków. Ale co się stanie, jeśli 2 dyski w macierzy ulegną awarii? Zasymulujmy taki scenariusz, zaznaczając /dev/sdb1 i /dev/sdd1 jako wadliwe:


umount /mnt/raid1
mdadm --manage --set-faulty /dev/md0 /dev/sdb1
mdadm --stop /dev/md0
mdadm --manage --set-faulty /dev/md0 /dev/sdd1

Próby odtworzenia tablicy w ten sam sposób, w jaki została ona utworzona w tym momencie (lub przy użyciu opcji --assume-clean) mogą skutkować utratą danych, dlatego należy ją pozostawić w ostateczności.

Spróbujmy odzyskać dane z /dev/sdb1 na przykład na podobną partycję dysku (/dev/sde1 – pamiętaj, że wymaga to utworzenia partycji wpisz fd w /dev/sde przed kontynuowaniem) używając ddrescue:


ddrescue -r 2 /dev/sdb1 /dev/sde1

Należy pamiętać, że do tego momentu nie poruszyliśmy jeszcze kwestii /dev/sdb ani /dev/sdd, czyli partycji wchodzących w skład macierzy RAID.

Teraz odbudujmy tablicę za pomocą /dev/sde1 i /dev/sdf1:


mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1

Pamiętaj, że w rzeczywistej sytuacji zazwyczaj będziesz używać tych samych nazw urządzeń, co w oryginalnej tablicy, czyli /dev/sdb1 i /dev/sdc1 po uszkodzone dyski zostały wymienione na nowe.

W tym artykule zdecydowałem się użyć dodatkowych urządzeń, aby odtworzyć macierz z zupełnie nowych dysków i uniknąć pomyłek z oryginalnymi, uszkodzonymi dyskami.

Na pytanie, czy kontynuować zapisywanie tablicy, wpisz Y i naciśnij Enter. Tablicę należy uruchomić i powinieneś móc obserwować jej postęp za pomocą:


watch -n 1 cat /proc/mdstat

Po zakończeniu procesu dostęp do zawartości macierzy RAID powinien być możliwy:

Streszczenie

W tym artykule omówiliśmy, jak odzyskać siły po awariach RAID i utracie redundancji. Należy jednak pamiętać, że technologia ta jest rozwiązaniem służącym do przechowywania danych i NIE zastępuje kopie zapasowe.

Zasady wyjaśnione w tym przewodniku mają zastosowanie zarówno do wszystkich konfiguracji RAID, jak i koncepcji, które omówimy w kolejnym i ostatnim przewodniku z tej serii (zarządzanie RAID).

Jeśli masz jakiekolwiek pytania dotyczące tego artykułu, możesz zostawić nam wiadomość, korzystając z poniższego formularza komentarza. Oczekujemy na kontakt zwrotny!