Ein NAS kann weiterhin zugänglich sein, während zpool status beginnt, Lese- oder Prüfziffernfehler anzuzeigen. Bevor Sie zu dem Schluss kommen, dass eine Festplatte tot ist, führen Sie einen Scrub auf dem gesunden Pool durch. Diese Überprüfung liest die Blöcke des Pools und überprüft ihre Prüfziffern.
Auf einem Server, der VMs, Backups oder Freigaben hostet, würde ich ein ruhiges I/O-Fenster wählen. Ein Scrub beansprucht die Festplatten, und ZFS erlaubt es nicht, einen Scrub gleichzeitig mit einem Resilvering auszuführen. Ziel ist es, zu wissen, ob der Pool gesund bleibt, nicht eine Befehlsausführung zu wiederholen, um einen Alarm verschwinden zu lassen.

Vor dem Scrub den Namen des Pools bestätigen
Beginnen Sie damit, den aktuellen Status zu lesen. Erfinden Sie den Namen des Pools nicht aus einer Montage oder einer Festplatte, die in lsblk angezeigt wird. Der Befehl zpool list zeigt die importierten Pools, danach zeigt zpool status -v ihren Zustand und bekannte Fehler an.
sudo zpool list
sudo zpool status -v tank
Ersetzen Sie tank durch den Namen, den Ihre Maschine zurückgibt. In der Ausgabe schauen Sie sich die Zeile scan, den allgemeinen Zustand des Pools und die Zähler READ, WRITE und CKSUM der vdevs an. Die Variante -v kann auch die betroffenen Dateien auflisten, wenn ZFS ihren Pfad kennt.
Ein Pool, der bereits im Resilvering ist, stellt eine hinzugefügte oder ersetzte Festplatte wieder her. Warten Sie, bis dieser Vorgang abgeschlossen ist, bevor Sie einen Scrub anfordern: OpenZFS erlaubt immer nur einen Vorgang dieser Art gleichzeitig. Wenn die Festplatten eine Datenbank oder stark beanspruchte VMs bedienen, verschieben Sie die Überprüfung lieber, als tagsüber eine I/O-Überlastung zu verursachen.
Starten Sie den Scrub während einer ruhigen Periode
Der folgende Befehl startet einen normalen Scrub auf tank:
sudo zpool scrub tank
Der Scrub durchläuft die Daten und überprüft die Prüfziffern. Auf einem Spiegel, einem RAIDZ oder einem dRAID kann ZFS die beschädigten Blöcke reparieren, wenn es eine gültige Kopie hat. Eine isolierte Festplatte oder eine Korrumpierung ohne Replikation bleibt ein Vorfall, der mit einem Backup oder einem Hardwareaustausch zu behandeln ist.
Der Befehl gibt fast sofort zurück. Das ist normal: die Arbeit läuft im Hintergrund weiter. Wenn die Last störend wird, erlaubt OpenZFS, den Scrub zu pausieren und später mit demselben Befehl fortzusetzen.
sudo zpool scrub -p tank
sudo zpool scrub tank
Vermeiden Sie zpool scrub -a für eine erste Kontrolle. Diese Option startet, pausiert oder stoppt den Vorgang auf allen Pools und kann eine Maschine, die mehrere davon hostet, stark belasten.
Fortschritt verfolgen und Fehler lesen
Starten Sie zpool status während des Scrubs erneut:
sudo zpool status tank
sudo zpool status -v tank
Die Zeile scan zeigt den Beginn des Vorgangs, das gescannte Volumen, den Fortschritt, die Bandbreite und eine verbleibende Schätzung an. Ein Fortschritt von über 100 % kann bei einem aktiven Pool erscheinen, da sich die Daten während des Lesens ändern.
Am Ende lesen Sie die Zähler der Festplatten und die detaillierte Liste erneut. Ein sauberes Ergebnis sieht aus wie ein beendeter Scrub mit 0 errors. Reparierte Fehler verdienen dennoch eine Prüfung der Historie der Festplatte, der Kabel und des Controllers. Kernmeldungen sind oft nützlich in diesem Stadium: der Leitfaden dmesg unter Linux zeigt, wie man Warnungen bzgl. Speicher isoliert.
- STEIGEN von READ oder WRITE: Überprüfen Sie die Festplatte, das Kabel und den Controller vor einer neuen umfassenden Operation.
- STEIGEN von CKSUM: Suchen Sie nach einem Fehler beim Transfer oder Lesen, auch wenn ZFS die Blöcke dank einer gesunden Kopie repariert hat.
- Nach dem Scrub aufgelistete Dateien: Stellen Sie diese aus einem überprüften Backup wieder her und ersetzen Sie die betroffene Hardware, wenn die Fehler anhalten.
Nach einem dauerhaften Fehler aus dem einfachen Check aussteigen
Ein Scrub validiert die beobachtbare Integrität des Pools zu einem bestimmten Zeitpunkt. Er ersetzt nicht ein Backup außerhalb des NAS und verwandelt eine instabile Festplatte nicht in eine zuverlässige. Wenn zpool status -v tank weiterhin Fehler auflistet, nachdem der Scan abgeschlossen ist, kopieren Sie zunächst die noch lesbaren Daten an einen gesunden Ort.
Die Dokumentation OpenZFS über zpool scrub stellt klar, dass die Prüfziffernüberprüfungen alle Blöcke durchlaufen und dass automatische Reparaturen eine gültige redundante Kopie erfordern. Für einen Pool ohne Redundanz bleibt die vernünftige Entscheidung, aus einem Backup wiederherzustellen und das defekte Medium zu ersetzen.