Nic nie jest wieczne – szczególnie jeśli jest intensywnie używane. Jednym z najczęściej wymienianych elementów w serwerach są dyski, które po przepracowaniu określonej ilości godzin przestają działać, lub znacząco tracą na wydajności.
Większość serwerów posiada zazwyczaj dwa dyski które najczęściej są spięte programowo w raid1 – więc mamy dane jednocześnie na dwóch dyskach. Jeśli jeden przestanie działać to nasz serwer działa dalej poprawnie – ale uszkodzony dysk należy wymienić.
W tym poradniku pokaże więc jak wykonać taką wymianę krok po kroku.
Przygotowanie do wymiany – teoria
Wymianę wykonamy na systemie CentOS 7 z raid 1 – w przypadku fizycznego serwera dyski zazwyczaj mają oznaczenie /dev/sda i /dev/sdb:
Jeśli jesteś już zapisany - Kliknij "Zaloguj się" i podaj swojego maila - treść zostanie odblokowana:
Jak widać mamy tutaj 3 urządzenia raid – md125, md126 i md127
Każde urządzenie ma dwie partycje raid – przykładowo md125 ma /dev/sdb3 i /dev/sda3
Oznaczenie “[UU]” to informacja że obydwa dyski działają poprawnie
W przypadku awarii dysku /dev/sdb będziemy widzieli przy danym urządzeniu raid oznaczenie “(F)” co oznacza fail – co ważne , te oznaczenie nie musi być przy każdym urządzeniu raid ( jeżeli go nie używamy to zazwyczaj samo się nie zmieni na fail i trzeba go oznaczyć jako uszkodzone ręcznie).
OK, tyle teorii – przejdźmy do praktyki.
Przygotowanie do wymiany – praktyka
Monitoring informuje o awarii raid – sprawdzamy więc w konsoli:
Widzimy że dysk /dev/sdb jest uszkodzony – sprawdzamy go smart-em:
Oznaczamy więc sdb2 na urządzeniu md127 jako uszkodzone, a następnie usuwamy dyski z raid-u:
Raid rozpięty, działa jeden dysk.
Jeśli smart nie pokazał nam numeru seryjnego uszkodzonego dysku, sprawdzamy numer poprawnego ( by wiedzieć który ma zostać):
Dla Centos6 jest to:
I ostatnia rzecz – robimy backup serwera , wrazie coś pójdzie nie tak 🙂
Backup zrobiony – wyłączamy serwer i podmieniamy dysk.
Wymiana i przygotowanie dysku
Po wymianie uszkodzonego dysku na nowy uruchamiamy serwer i widzimy nasz nowy dysk:
Polecenie fdisk pokazało nam listę partycji na dysku /dev/sda i na /dev/sdb ( pustą).
Tworzymy więc partycje na dysku sdb, identycznie jak na sda:
Krótkie wyjaśnienie:
fdisk -ul /dev/sda – lista partycji na dysku /dev/sda
fdisk /dev/sdb – przechodzimy do partycjonowania /dev/sdb
W programie fdisk:
n – utwórz nową partycję
Następnie podajemy numer partycji , pierwszy sektor i ostatni – w przypadku /dev/sdb1 musi być on identyczny jak w /dev/sda1 czyli odpowienio partycja numer 1, pierwszy sektor: 2048 i ostatni 19548159
Powtarzamy to dla pozostałych partycji, czyli sdb2 i sdb3.
Po utworzeniu partycji wpisujemy “t” – czyli przechodzimy do wyboru systemu plików dla naszych partycji.
Podajemy numer partycji ( np. 1) i system plików ( w naszym wypadku to “fd” – czyli partycja raid). Analogicznie robimy dla pozostałych partycji.
Po ustawieniu wpisujemy w i zapisujemy zmiany.
Drobna uwaga – niekiedy po zmianach otrzymamy komunikat że wymagany jest restart serwera, lub polecenie partprobe – wykonujemy wtedy to drugie, czyli w konsoli wpisujemy:
Więcej informacji na temat polecenia fdisk i jego opcji jest w manualu, lub po podaniu polecenia m:
Ok, partycje mamy utworzone – sprawdzamy czy są na pewno identyczne:
Odbudowa raid
Sprawdzamy urządzenia raid i dodajemy do niego partycje – jeśli urządzenie md125 ma partycje /dev/sda3, to dodajemy do niego /dev/sdb3; podobnie dla pozostałych urządzeń:
Czekamy aż raid się zepnie, tj aż przy każdym urządzeniu będzie [UU]:
Czas synchronizacji zależy od wielkości i szybkości dysków – generalnie czekamy aż całość będzie złożona poprawnie:
Zostały nam ostatnie dwie rzeczy: pierwsza, czyli instalacja grub-a na nowym dysku:
Gotowe – dysk wymieniony, raid spięty, całość działa poprawnie.
Podsumowanie
Wymiana dysku nie jest skomplikowanym procesem, o ile przestrzegamy dwóch zasad:
- na bieżąco sprawdzamy stan naszej macierzy
- na bieżąco sprawdzamy stan dysków
- posiadamy aktualną kopie zapasową
Pierwszy punkt można realizować na wiele sposobów – od podpięcia gotowego szablonu z systemu monitoringu ( zabbix,nagios itp.) po kilka linijek w bash-u:
Podobnie ma się sprawa z drugim punktem – nie musimy czekać aż dysk przestanie działać, często problemy są sygnalizowane chociażby w testach smart-em.
Jeżeli odpowiednio wcześniej wiemy o problemach możemy zrobić wymianę dysku w bardziej komfortowym dla Nas momencie, niż wiedząc że cały system działa tylko na 1 dysku.
Ja niestety mam błąd przy instalacji Grub:
grub2-install –recheck /dev/nvme0n1
Installing for i386-pc platform.
grub2-install: warning: Couldn’t find physical volume
(null)'. Some modules may
(null)’. Some modules maybe missing from core image..
grub2-install: warning: Couldn't find physical volume
be missing from core image..
Installation finished. No error reported.
Co może być przyczyną?