Ersetzen einer ausgefallenen Platte im ZFS-Root

Einführende Konzepte

Dieses Dokument dient als Leitfaden für Administratoren und Personen, die über ein gewisses Maß an Wissen über Computer-Hardware-Plattformen und Speicherkonzepte wie RAID verfügen. Wenn Sie bereits über ein gutes Verständnis des allgemeinen Fehlerprozesses verfügen, können Sie die Abschnitte über das Ersetzen eines Laufwerks und die Reparatur des Pools überspringen.

Grade der Ausführlichkeit

Wann immer ein Laufwerk ausfällt oder Fehler aufweist, protokolliert SmartOS eine Vielzahl von Informationen. Um herauszufinden, was die Ursache für den Ausfall eines Laufwerks ist, müssen Sie die Informationen weiter aufschlüsseln. Im Folgenden sind die Befehle in absteigender Reihenfolge ihrer Ausführlichkeit aufgeführt:

Der Befehl "zpool status" bietet einen Überblick über den Zustand des Pools.

iostat liefert uns die Anzahl der Fehler auf hoher Ebene sowie spezifische Informationen über die Geräte.

fmadm faulty hilft uns, die Ursache des Festplattenfehlers genauer zu bestimmen. fmadm ist auch in der Lage, vorübergehende Fehler zu beseitigen;

Der Befehl fmdump liefert uns ein Protokoll der letzten {n} Tage an Fehlerereignissen.

Neben dem Austausch der fehlerhaften Festplatten können diese Informationen äußerst hilfreich sein, um die Ursache des Problems zu isolieren, wenn das Problem komplexer ist als ein einfacher Festplattenfehler.

Allgemeiner Fehlerprozess

Wenn im System ein Festplattenfehler auftritt, ist ZFS nicht die erste Komponente, die diesen erkennt und darauf reagiert. Stattdessen findet die folgende allgemeine Reihenfolge der Ereignisse statt:

1. FMA (Fault Management Architecture) erkennt und protokolliert einen ausgefallenen Datenträger. FMA überwacht und verwaltet Hardware-Fehler im System.

2. Sobald FMA die ausgefallene Festplatte erkannt hat, greift das Betriebssystem ein und entfernt die Festplatte aus dem System.

3. ZFS, ein robustes und skalierbares Dateisystem, wird dann auf den veränderten Zustand aufmerksam. ZFS erkennt, dass die Festplatte entfernt wurde, und reagiert mit einer Fehlermeldung für das Gerät. Ein Fehler auf dem Gerät bedeutet, dass ZFS die Festplatte als fehlerhaft markiert und die notwendigen Maßnahmen zur Aufrechterhaltung der Datenintegrität und -verfügbarkeit ergreift.

Dieser allgemeine Fehlerprozess stellt sicher, dass jeder Plattenfehler im System sofort erkannt, protokolliert und von den entsprechenden Komponenten beantwortet wird. FMA identifiziert zunächst die ausgefallene Festplatte, dann entfernt das Betriebssystem sie und schließlich reagiert ZFS auf den geänderten Zustand, indem es das Gerät fehlerhaft macht. Durch die Einhaltung dieser Reihenfolge der Ereignisse kann das System effektiv mit Festplattenausfällen umgehen und die allgemeine Stabilität und Zuverlässigkeit der Speicherinfrastruktur aufrechterhalten.

Bitte beachten Sie, dass es sich hierbei um eine allgemeine Beschreibung des Fehlerprozesses handelt, die je nach der spezifischen Implementierung und Konfiguration des Systems variieren kann.

Wie man ein Laufwerk ersetzt

Überblick über den Austausch eines ausgefallenen Laufwerks im ZFS-Root

Hinweis: Bevor Sie mit dem Plattenaustausch fortfahren, stellen Sie sicher, dass Sie die ausgefallene Platte korrekt identifiziert haben. Stellen Sie außerdem sicher, dass Sie eine Ersatzplatte für den Austausch zur Verfügung haben.

Schritt-für-Schritt-Anleitung zum Ersetzen einer ausgefallenen Festplatte im ZFS-Root

Angenommen, der Server hat 2 Festplatten: /dev/sda und /dev/sdb
Eine der Festplatten ist ausgefallen, zum Beispiel /dev/sdb
Die beschädigte Platte muss ersetzt werden.

Definieren wir zunächst unseren Pool mit dem Befehl:

zpool list
Ersetzen einer ausgefallenen Platte im ZFS-Root

Bevor Sie die Platte ersetzen, ist es ratsam, sie aus dem Array zu entfernen:

zpool detach rpool /dev/sdb

Als Nächstes schalten Sie den Server aus, wenn Sie keine Festplatten im laufenden Betrieb austauschen können, aber alles, was im Folgenden beschrieben wird, kann auch ohne das Anhalten des Servers durchgeführt werden - wenn Sie einen Controller und Hotswap haben

poweroff

Ersetzen Sie die ausgefallene Festplatte physisch.

Bestimmen der Partitionstabelle (GPT oder MBR) und Übertragen auf die neue Platte

Nach dem Austausch einer beschädigten Festplatte müssen Sie feststellen, ob die Partitionstabelle GPT oder MBR ist.
Verwenden Sie dazu gdisk. Installieren Sie gdisk:

apt-get install gdisk -y

Führen Sie den Befehl aus:

gdisk -l /dev/sda

Dabei ist /dev/sda eine gültige Festplatte im RAID.

Für MBR sieht die Ausgabe ungefähr wie folgt aus:

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

Für GPT ist sie ungefähr wie folgt:

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

Bevor eine Festplatte zum Array hinzugefügt wird, muss sie genau wie eine gute sda-Festplatte partitioniert werden. Dies wird je nach Partitionierung der Festplatte unterschiedlich gehandhabt.

Kopieren der Partitionierung für GPT

Um die GPT-Partitionierung zu kopieren:

Hinweis:Das erste ist die Festplatte, auf die die Partitionierung kopiert wird, und das zweite ist die Festplatte, von der die Partitionierung kopiert wird. Wenn Sie sie verwechseln, wird die Partitionierung auf der ursprünglich brauchbaren Festplatte zerstört.

sgdisk -R /dev/sdb /dev/sda

Weisen Sie der Festplatte eine neue zufällige UUID zu:

sgdisk -G /dev/sdb

Kopieren der Partitionierung für MBR

Um die MBR-Partitionierung zu kopieren:

Hinweis!
Hier schreiben Sie zuerst die Platte, von der Sie die Partitionierung übertragen und dann die Platte, auf die Sie sie übertragen.

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

Wenn die Partitionen im System nicht sichtbar sind, können Sie die Partitionstabelle mit dem Befehl neu einlesen:

sfdisk -R /dev/sdb

Installieren des Bootloaders

Nachdem Sie die Festplatte partitioniert haben, müssen Sie den Bootloader auf ihr installieren:

grub-install /dev/sdb

Hinzufügen einer Festplatte

Geben Sie die Festplatte an, die Sie ersetzen wollen (in unserem Fall ist es /dev/sdb3):

zpool replace rpool /dev/sdb3

Hinzufügen einer Festplatte zum Raid:

zpool online rpool /dev/sdb3

Warten Sie, bis die Synchronisierung des Arrays abgeschlossen ist:

zpool status

Schlussfolgerung

Wenn Sie diese Anweisungen befolgen, können Sie eine ausgefallene Festplatte im ZFS-Root erfolgreich ersetzen, ohne die Integrität Ihrer Daten zu gefährden. Es ist wichtig, Vorsichtsmaßnahmen zu treffen und die Sicherungs- und Überprüfungsschritte durchzuführen, um einen möglichen Datenverlust zu vermeiden und einen reibungslosen Betrieb zu gewährleisten.