Wymiana uszkodzonego dysku w systemie głównym ZFS

Koncepcje wprowadzające

Niniejszy dokument służy jako przewodnik dla administratorów i osób, które posiadają pewien poziom wiedzy na temat komputerowych platform sprzętowych i koncepcji pamięci masowej, takich jak RAID. Jeśli posiadasz już dobre zrozumienie ogólnego procesu awarii, możesz pominąć sekcje dotyczące wymiany dysku i naprawy puli.

Stopnie szczegółowości

Za każdym razem, gdy dysk ulegnie awarii lub wystąpią błędy, system SmartOS rejestruje wiele informacji. Aby dowiedzieć się, co jest przyczyną awarii dysku, należy zagłębić się w szczegóły. Poniżej znajdują się polecenia w kolejności malejącej:

Polecenie "zpool status" zapewnia przegląd stanu puli.

iostat zapewnia nam wysoki poziom liczby błędów, a także szczegółowe informacje o urządzeniach.

fmadm faulty pomoże nam dokładniej określić, co spowodowało awarię dysku. fmadm jest również w stanie usunąć przejściowe błędy;

Polecenie fmdump zapewnia nam dziennik ostatnich {n} dni zdarzeń błędów.

Oprócz wymiany uszkodzonych dysków, informacje te mogą być niezwykle pomocne w wyizolowaniu głównej przyczyny problemu, jeśli problem jest bardziej złożony niż zwykła awaria dysku.

Ogólny proces awarii

W systemie, gdy wystąpi awaria dysku, ZFS nie jest pierwszym komponentem, który ją wykrywa i reaguje na nią. Zamiast tego ma miejsce następująca ogólna kolejność zdarzeń:

1. FMA (Fault Management Architecture) wykrywa i rejestruje uszkodzony dysk. FMA monitoruje i zarządza błędami sprzętowymi w systemie.

2. Gdy FMA wykryje uszkodzony dysk, system operacyjny wkracza do akcji i usuwa dysk z systemu.

3. ZFS, który jest solidnym i skalowalnym systemem plików, staje się świadomy zmienionego stanu. System ZFS wykrywa, że dysk został usunięty i reaguje, zgłaszając błąd urządzenia. Błąd urządzenia oznacza, że ZFS oznacza dysk jako uszkodzony i podejmuje niezbędne środki w celu utrzymania integralności i dostępności danych.

Ten ogólny proces awarii zapewnia, że wszelkie awarie dysków w systemie są szybko wykrywane, rejestrowane i reagowane przez odpowiednie komponenty. FMA wykonuje początkowy krok identyfikacji uszkodzonego dysku, po którym następuje usunięcie go przez system operacyjny, a na końcu ZFS reaguje na zmieniony stan poprzez uszkodzenie urządzenia. Postępując zgodnie z tą kolejnością zdarzeń, system może skutecznie obsługiwać awarie dysków i utrzymywać ogólną stabilność i niezawodność infrastruktury pamięci masowej.

Należy pamiętać, że jest to ogólny opis procesu awarii i może się różnić w zależności od konkretnej implementacji i konfiguracji systemu.

Jak wymienić dysk

Ogólny przegląd nieudanej wymiany dysku w systemie głównym ZFS

Uwaga: Przed przystąpieniem do procesu wymiany dysku upewnij się, że poprawnie zidentyfikowałeś uszkodzony dysk. Upewnij się również, że masz dostępny zapasowy dysk do wymiany.

Przewodnik krok po kroku dotyczący wymiany uszkodzonego dysku w systemie głównym ZFS

Załóżmy, że serwer ma 2 dyski: /dev/sda i /dev/sdb
Jeden z dysków uległ awarii, na przykład /dev/sdb
Uszkodzony dysk musi zostać wymieniony.

Najpierw zdefiniujmy naszą pulę za pomocą polecenia:

zpool list
Wymiana uszkodzonego dysku w systemie głównym ZFS

Przed wymianą dysku zaleca się usunięcie go z macierzy:

zpool detach rpool /dev/sdb

Następnie należy wyłączyć serwer, jeśli nie ma możliwości wymiany dysków na gorąco, ale wszystko opisane poniżej można wykonać bez zatrzymywania serwera - jeśli posiadamy kontroler i hotswap.

poweroff

Fizyczna wymiana uszkodzonego dysku.

Określenie tablicy partycji (GPT lub MBR) i przeniesienie jej na nowy dysk

Po wymianie uszkodzonego dysku należy określić, czy tablica partycji to GPT czy MBR.
W tym celu należy użyć programu gdisk. Zainstaluj gdisk:

apt-get install gdisk -y

Uruchom polecenie:

gdisk -l /dev/sda

Gdzie /dev/sda jest prawidłowym dyskiem w macierzy RAID.

Dla MBR wynik będzie w przybliżeniu następujący:

Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present

Dla GPT jest to w przybliżeniu następujące:

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Przed dodaniem dysku do macierzy należy go podzielić na partycje dokładnie tak, jak dobry dysk sda. Odbywa się to w różny sposób w zależności od podziału dysku na partycje.

Kopiowanie partycjonowania dla GPT

Aby skopiować partycjonowanie GPT:

Uwaga!Pierwszy dysk to dysk, na który partycjonowanie jest kopiowane, a drugi to dysk, z którego partycjonowanie jest kopiowane. Jeśli je pomylisz, partycjonowanie na pierwotnie sprawnym dysku zostanie zniszczone.

sgdisk -R /dev/sdb /dev/sda

Przypisz nowy losowy identyfikator UUID do dysku:

sgdisk -G /dev/sdb

Kopiowanie partycji MBR

Aby skopiować partycjonowanie MBR:

Uwaga!
W tym miejscu należy najpierw zapisać dysk, z którego przenoszona jest partycja, a następnie dysk, na który jest ona przenoszona.

sfdisk -d /dev/sda | sfdisk /dev/sdb

Jeśli partycje nie są widoczne w systemie, można ponownie odczytać tablicę partycji za pomocą polecenia:

sfdisk -R /dev/sdb

Instalacja bootloadera

Po partycjonowaniu dysku należy zainstalować na nim bootloader:

grub-install /dev/sdb

Dodawanie dysku

Określamy dysk, który chcemy zastąpić (w naszym przypadku jest to /dev/sdb3):

zpool replace rpool /dev/sdb3

Dodawanie dysku do raid:

zpool online rpool /dev/sdb3

Czekamy na zakończenie synchronizacji macierzy:

zpool status

Podsumowanie

Postępując zgodnie z tymi instrukcjami, można z powodzeniem wymienić uszkodzony dysk w systemie ZFS root bez narażania integralności danych. Ważne jest, aby podjąć środki ostrożności i wykonać kroki tworzenia kopii zapasowych i weryfikacji, aby uniknąć potencjalnej utraty danych i zapewnić płynne działanie.