Wie kann ZFS RAIDZ-2 nach drei ausgefallenen Laufwerken wiederhergestellt werden?

Wie kann ZFS RAIDZ-2 nach drei ausgefallenen Laufwerken wiederhergestellt werden?

Ich frage mich, was passiert ist, wie ZFS vollständig wiederhergestellt werden konnte oder ob meine Daten wirklich noch intakt sind.
Als ich gestern Abend nach Hause kam, sah ich dies zu meinem Entsetzen und dann zu meiner Verwirrung.

zpool status
  pool: san
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

errors: No known data errors 

Wie ist es möglich, dass keine Datenfehler auftreten und nicht der gesamte Pool fehlerhaft ist?

Bei einem Laufwerk sdfliegt ein Smartctl-Testfehler gegenüber SMART vor read fail, bei den anderen liegt ein etwas kleineres Problem vor: nicht korrigierbare/ausstehende Sektoren oder UDMA-CRC-Fehler.

Ich habe versucht, jedes fehlerhafte Laufwerk einzeln offline und dann wieder online zu schalten, aber das hat nicht geholfen.

    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  OFFLINE      0     0    63
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

Ich hatte also großes Glück oder war etwas verwirrt, ob meine Daten tatsächlich alle noch da sein könnten. Nach einer Überprüfung auf das defekte Laufwerk habe ich es durch mein einziges Ersatzlaufwerk ersetzt.

    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Tue Jan 21 17:33:15 2020
        467G scanned out of 8.91T at 174M/s, 14h10m to go
        77.6G resilvered, 5.12% done
config:

        NAME                                              STATE     READ WRITE CKSUM
        san                                               DEGRADED     0     0     0
          raidz2-0                                        DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346      ONLINE       0     0     0
            replacing-1                                   DEGRADED     0     0     0
              ata-ST2000DM001-9YN164_W1E07E0G             OFFLINE      0     0    38
              ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0  (resilvering)
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332      DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                     ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344      ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                        DEGRADED     0     0    75  too many errors

Die Neuversilberung wurde erfolgreich abgeschlossen.

$ zpool status
  pool: san
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 1.48T in 12h5m with 0 errors on Wed Jan 22 05:38:48 2020
config:

        NAME                                            STATE     READ WRITE CKSUM
        san                                             DEGRADED     0     0     0
          raidz2-0                                      DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346    ONLINE       0     0     0
            ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332    DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                   ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344    ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                      DEGRADED     0     0    75  too many errors

Ich stehe gerade an einem Scheideweg. Normalerweise setze ich dddie ersten 2 MB des fehlerhaften Laufwerks auf Null und ersetze sie durch sich selbst, was für mich kein Problem ist. Wenn jedoch wirklich Daten fehlen, brauche ich möglicherweise diese letzten beiden Datenträger, um die Daten wiederherzustellen.

Ich habe das sdfjetzt entfernt auf meinem Schreibtisch liegen. Ich denke, ich kann es im schlimmsten Fall zur Genesung verwenden.

In der Zwischenzeit werde ich wohl die ersten paar MB des defekten Laufwerks auf Null setzen und durch sich selbst ersetzen. Dann sollte es wohl klappen. Das Ganze dann für das zweite defekte Laufwerk wiederholen, bis ich ein paar Ersatzteile zur Hand habe.

Frage Was ist passiert, wie konnte der Pool durchhalten oder fehlen mir möglicherweise Daten (was angesichts der Integrität von ZFS und seinen Berichten zweifelhaft ist)

Könnte es an einer glücklichen Reihenfolge der Fehler gelegen haben, z. B. dass nicht das oberste Laufwerk des Stapels ausgefallen ist?

Frage Dies ist nur zu Ihrer Information und hat nichts mit dem Thema zu tun. Was hat dazu geführt, dass alle 3 gleichzeitig ausgefallen sind? Ich denke, es war ein Scrub, der der Auslöser war. Ich habe am Abend zuvor nachgesehen und alle Laufwerke waren online.

Beachten Sie, dass die Verkabelung in der jüngsten Vergangenheit ein Problem war. Im Büro wird es nachts kalt, aber diese Probleme waren nur vorübergehend drive unavailableund keine Prüfsummenfehler. Ich denke, das liegt nicht an der Verkabelung, sondern vielleicht an den alternden Laufwerken, die 5 Jahre alt sind. Aber 3 Ausfälle an einem Tag? Komm schon, das reicht, um vielen von uns Angst zu machen!

Antwort1

RAID-Z2 ist doppelte Parität, Redundanz ähnlich wie RAID 6. Zwei Festplatten könnten komplett ausfallen und Daten könnten durch Parität wiederhergestellt werden. Vorausgesetzt, der Rest des Arrays ist fehlerfrei.

Es traten nicht unbedingt E/A-Fehler auf.DEGRADED bedeutet, dass ZFS weiterhin die Festplatte verwendet, trotz Prüfsummenfehler. Vielleicht wegen ein paar Bit-Flips, aber das Laufwerk funktioniert immer noch.der Linkaus dieser Ausgabe:

Führen Sie „zpool status -x“ aus, um zu ermitteln, in welchem ​​Pool Fehler aufgetreten sind.

Suchen Sie das Gerät mit einer Fehleranzahl ungleich Null für READ, WRITE oder CKSUM. Dies weist darauf hin, dass bei dem Gerät ein Lese-E/A-Fehler, ein Schreib-E/A-Fehler oder ein Prüfsummenvalidierungsfehler aufgetreten ist. Da das Gerät Teil eines Spiegel- oder RAID-Z-Geräts ist, konnte ZFS den Fehler beheben und anschließend die beschädigten Daten reparieren.

Wenn diese Fehler über einen bestimmten Zeitraum bestehen bleiben, kann ZFS feststellen, dass das Gerät fehlerhaft ist, und es als solches kennzeichnen. Diese Fehleranzahl kann jedoch ein Hinweis darauf sein, dass das Gerät unbrauchbar ist, muss es aber nicht.

In Bezug auf den Laufwerkszustand:

vielleicht veraltete Laufwerke, die 5 Jahre alt sind. Aber 3 Ausfälle an einem Tag? Komm schon, das reicht, um vielen von uns Angst zu machen!

Jetzt wichtige Daten testen und wiederherstellen. Von einem anderen Medium, nicht von diesem Array.

Ersetzen Sie Laufwerke, deren Leistung weiterhin beeinträchtigt ist. Auf jeden Fall, wenn der Kernel E/A-Fehler im Syslog meldet. Wenn Sie unter Garantie oder Supportvertrag stehen, nutzen Sie diesen. Wenn die Garantie abgelaufen ist, hat der Hersteller darauf gewettet, dass sie nicht so lange halten, also berücksichtigen Sie das.

verwandte Informationen