Einige permanent errors
wurden heute in meinem Pool gemeldet.
pool: seagate3tb
state: ONLINE
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: none requested
config:
NAME STATE READ WRITE CKSUM
seagate3tb ONLINE 0 0 28
sda ONLINE 0 0 56
errors: Permanent errors have been detected in the following files:
/mnt/seagate3tb/Install.iso
/mnt/seagate3tb/some-other-file1.txt
/mnt/seagate3tb/some-other-file2.txt
Bearbeiten: Ich bin mir sicher, ob diese CKSUM
Werte korrekt sind. Ich habe Daten redigiert und diese möglicherweise versehentlich entstellt. Sie können 0 gewesen sein. Leider kann ich keine abschließende Antwort in meinen Notizen finden und die Fehler sind jetzt behoben, daher bin ich nicht sicher, aber alles andere ist korrekt / spiegelt wider, was zpool gemeldet hat.
/mnt/seagate3tb/Install.iso
ist eine Beispieldatei mit einem dauerhaften Fehler.
Hier bin ich verwirrt. Wenn ich meine "permanent fehlerhaften" Dateien mit Install.iso
einer Sicherung derselben Datei auf einem anderen Dateisystem vergleiche, sehen sie identisch aus.
shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328 /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328 /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
Die Dateien scheinen identisch zu sein. Außerdem funktioniert die Datei einwandfrei. Wenn ich es in einer Anwendung verwende, verhält es sich so, wie ich es erwartet hätte.
Wie es in den Dokumenten heißt :
Datenkorruptionsfehler sind immer schwerwiegend.
Aufgrund meiner rudimentären Dateiüberprüfungen bin ich mir jedoch nicht sicher, ob ich die Definition von verstehe fatal
.
Status: Auf einem oder mehreren Geräten ist ein Fehler aufgetreten, der zu einer Beschädigung der Daten geführt hat. Anwendungen können betroffen sein.
Aktion: Stellen Sie die betreffende Datei nach Möglichkeit wieder her. Andernfalls stellen Sie den gesamten Pool von der Sicherung wieder her.
Vielleicht fehlt mir etwas, aber soweit ich das beurteilen kann, scheint die Datei vollkommen in Ordnung zu sein und muss trotz der Empfehlung von ZFS weder wiederhergestellt noch beschädigt werden.
Ich habe andere Artikel mit dem gleichen Fehler gesehen , habe aber noch keine Antwort auf meine Frage gefunden.
Was ist der dauerhafte Fehler mit der Datei? Gibt es ein Problem auf niedrigerer Ebene mit der Datei, das mir nicht sofort auffällt? Wenn ja, warum würde dies nicht durch shasum
einen Unterschied in der Datei erkannt werden ?
Aus der Sicht eines Laien sehe ich nichts, was auf einen Fehler in dieser Datei hindeutet.
Antworten:
Der Wortlaut von
zpool status
ist etwas irreführend. Ein permanenter Fehler (in diesem Kontext) weist darauf hin, dass ein E / A-Fehler aufgetreten ist und im SPA-Fehlerprotokoll (Storage Pool Allocator) für diesen Pool protokolliert wurde. Dies bedeutet nicht unbedingt, dass die Daten unwiderruflich beschädigt sind.Was Sie tun sollten, ist ein Lauf
zpool scrub
auf dem Pool. Nach Abschluss der Bereinigung wird das SPA-Fehlerprotokoll gedreht und zeigt keine Fehler mehr vor der Bereinigung an. Wenn das Scrub keine Fehler feststellt,zpool status
werden keine "permanenten" Fehler mehr angezeigt.In Bezug auf die Dokumentation heißt es, dass nur "schwerwiegende Fehler" auf diese Weise protokolliert werden. Ein schwerwiegender Fehler ist ein E / A-Fehler, der von ZFS nicht automatisch behoben werden konnte und daher einer Anwendung als fehlgeschlagene E / A angezeigt wurde. Wenn dagegen die E / A sofort erfolgreich wiederholt wurde oder wenn die logische E / A von einem redundanten Gerät erfüllt wurde, wird dies nicht als schwerwiegender Fehler angesehen und daher nicht als Datenverfälschungsfehler protokolliert.
Ein schwerwiegender Fehler bedeutet nicht unbedingt einen dauerhaften Datenverlust, sondern bedeutet lediglich, dass er zu dem Zeitpunkt nicht behoben werden konnte, bevor er an die Anwendung weitergegeben wurde. Beispielsweise kann ein loses Kabel oder ein fehlerhafter Controller vorübergehend schwerwiegende Fehler verursachen, die von ZFS als "permanent" bezeichnet werden. Ob es sich wirklich um ein Problem handelt, hängt von der Art der E / A ab und davon, ob die Anwendung in der Lage ist, E / A-Fehler zu beheben.
EDIT: Stimmen Sie voll und ganz mit @bahamat überein, dass Sie so schnell wie möglich in Redundanz investieren sollten.
quelle
zpool scrub
haben genau das getan, was Sie @ tom-shaw vorgeschlagen haben, und Ihre Erklärung ist absolut sinnvoll. Nach dem Scrub werden auf diesem Array keine "dauerhaften Fehler" mehr angezeigt. Ich habe nicht über schwerwiegende Fehler im Zusammenhang mit einem fehlgeschlagenen Lesevorgang nachgedacht. Ich denke, es muss nur ein vorübergehender E / A-Fehler bei einem Lesevorgang gewesen sein, wie Sie vorschlagen. Ich stimme auch voll und ganz der Notwendigkeit von Redundanz zu.Ein permanenter Fehler bedeutet, dass in der Datei ein Prüfsummenfehler aufgetreten ist und nicht genügend Replikate zum Reparieren vorhanden waren. Dies bedeutet, dass mindestens ein Lesevorgang aufgrund eines E / A-Fehlers beschädigte Daten zurückgegeben hat. Wenn was auch immer den Lesevorgang erhalten hat, dann schreiben Sie das zurück in die gleiche Festplattendatei, die Sie jetzt für eine irreparable Datenbeschädigung halten würden.
Wenn Sie sich Ihre Pool-Konfiguration ansehen, haben Sie anscheinend keine Redundanz. Das ist sehr gefährlich. Sie erhalten keine der Selbstheilungs Vorteile von ZFS, aber es wird die Lage sein , Ihnen zu sagen , wenn es zur Beschädigung von Daten hat. Normalerweise korrigiert ZFS fehlerhafte Lesevorgänge automatisch und unbemerkt, in Ihrem Fall jedoch nicht. Es sieht auch so aus, als ob Sie bereits ausgeführt wurden,
zpool clear
da dieCKSUM
Anzahl0
für beide Laufwerke gilt.Leider gibt es ohne Replikate wirklich keine Möglichkeit, es zu wissen.
quelle
zpool clear
auch die Fehlermeldung selbst gelöscht, zählt nicht nur der Fehler? Es ist seltsam, dass die Meldung weiterhin angezeigt wird, aber keine Fehler angezeigt werden.CKSUM counts
möglicherweise den Controller, das Kabel oder eine gemeinsam genutzte Hardware zwischen den beiden Festplatten anzeigen. Es ist auch möglich, dass beide Festplatten ausfallen. In jedem Fall unterstreicht dies die Notwendigkeit, so schnell wie möglich Redundanz hinzuzufügen und die angegebenen Dateien auf Beschädigung zu untersuchen.