ZFS-Prüfsummenfehler löschen?

ZFS-Prüfsummenfehler löschen?

TLDR; Mein ZFS-Spiegelpool hat einige Prüfsummenfehler. Ich habe den Controller ausgetauscht, weil ich dachte, das sei die wahrscheinlichste Ursache, aber die Fehler lassen sich nicht beheben. Pool Clear setzt sie vorübergehend zurück, aber sie kommen wieder, wenn ich das nächste Mal einen Scrub ausführe. Wie kann ich sie endgültig beheben?

Die ganze Geschichte: Ich habe seit einiger Zeit einen ZFS-Mirror-0 auf Ubuntu 20.04.2 LTS eingerichtet und ausgeführt. Als eines der Laufwerke den Geist aufgab, nutzte ich den Ausfall, um beide Laufwerke durch größere zu ersetzen und eine SATA-III-PCI-Karte für die neuen Laufwerke hinzuzufügen (die alten waren an den integrierten SATA-II-Controller angeschlossen, da ich keine SATA-III-Anschlüsse mehr zur Verfügung hatte). Nachdem ZFS einige Wochen lang auf den neuen Laufwerken und dem neuen Controller lief, beschwerte es sich über Prüfsummenfehler auf beiden neuen Laufwerken und versetzte das Array infolgedessen in einen „degradierten“ Zustand.

Einige Nachforschungen führten mich zu dem Schluss, dass es sich wahrscheinlich eher um ein Problem mit dem Controller als mit den Laufwerken selbst handelte, da beide Laufwerke genau dieselbe Anzahl von Prüfsummenfehlern zeigten. Also zog ich den neuen Controller heraus und setzte die Laufwerke vorerst wieder auf den integrierten SATA-II-Controller. Ich wollte die Controllerkarte ersetzen, sobald ich überprüft hatte, dass das das Problem ist. Dann löschte ich die beiden Dateien, die zpool status -vpermanente Fehler aufwiesen, setzte zpool clear datadie Fehler zurück und führte einen Scrub aus.

Leider traten die Fehler nach dem Scrub erneut auf, nur dass jetzt -vkeine Datei mehr angezeigt wurde, sondern nur die Adresse (Inode, glaube ich), vermutlich für eine der Dateien, die ich zuvor gelöscht hatte. Ich versuchte es erneut, mit demselben Ergebnis. Jedes Mal, wenn ich einen Scrub ausführe, kommt das folgende Ergebnis zurück:

root@watchman:~# zpool status -v
  pool: data
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: scrub repaired 16K in 0 days 09:10:20 with 1 errors on Sat Jul 24 15:48:21 2021
config:

    NAME                                 STATE     READ WRITE CKSUM
    data                                 DEGRADED     0     0     0
      mirror-0                           DEGRADED     0     0     0
        ata-ST8000VE000-2P6101_WSD1M5NW  DEGRADED     0     0    15  too many errors
        ata-ST8000VE000-2P6101_WSD1HEJX  DEGRADED     0     0    15  too many errors

errors: Permanent errors have been detected in the following files:

        data:<0x380508>

Soweit ich das beurteilen kann, handelt es sich hier um dasselbe Problem, das vermutlich aufgrund des fehlerhaften Controllers bereits bestand, aber ich kann es nicht beheben. Wie kann ich meinen Spiegel wieder voll funktionsfähig machen?

UPDATE: Ich habe die Idee, die Fehler zu beheben, schließlich aufgegeben und stattdessen von vorne begonnen. Ich habe einen neuen Pool erstellt und dabei eines der Laufwerke aus dem vorhandenen Spiegel gestohlen. Dann habe ich ausgeführt, rsyncum alle Daten vom alten Pool in den neuen zu kopieren. Dabei sind zwar ein paar Fehler aufgetreten (zfs hat nicht gelogen, was die Datenfehler angeht), aber nichts Bedeutsames oder Beunruhigendes, und durch das Ausschließen der fehlerhaften Dateien konnte rsync erfolgreich abgeschlossen werden. Dann habe ich das zweite Laufwerk zum neuen Pool hinzugefügt, und nach einem Resilver sieht jetzt alles gut aus, und ein Scrub auf dem neuen Pool wurde ohne Fehler abgeschlossen.

Vorausgesetzt, dass in der nächsten Woche oder so weiterhin alles gut aussieht, kann ich wohl davon ausgehen, dass die SATA III-Karte die Ursache des Problems war, und sie durch eine bessere Marke/Option ersetzen :)

Antwort1

Von Zeit zu Zeit habe ich auch einige Prüfsummenfehler auf einem 0-Mirror, die meistens nach einem Neustart auftreten, und der Status des ZFS-Pools wird herabgestuft.

zpool status <poolname>

Bildbeschreibung hier eingeben

Um dies zu beheben und die Fehler zu bereinigen, führe ich Folgendes aus:

zpool clear <poolname>

verwandte Informationen