Was passiert, wenn ich ZFS zwinge, ein Ersatzlaufwerk ohne gültige Replikate zu trennen?

9

Ich habe einen ZFS-Pool aus 6 RAIDZs. Einer der RAIDZ wird beeinträchtigt, da zwei Festplatten in der einzelnen RAIDZ so nahe beieinander liegen, dass ZFS den ersten Fehler nicht beheben konnte, bevor die zweite Festplatte ausfiel. Hier ist die Ausgabe von "zpool status" kurz nach dem Neustart:

  pool: pod2
 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://www.sun.com/msg/ZFS-8000-8A
 scrub: resilver in progress for 0h6m, 0.05% done, 237h17m to go
config:

        NAME                                                 STATE     READ WRITE CKSUM
        pod2                                                 DEGRADED     0     0 29.3K
          raidz1-0                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F165XG    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1660X    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1678R    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1689F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16AW9    ONLINE       0     0     0
          raidz1-1                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C6E    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C9F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16FCD    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16JDQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17M6V    ONLINE       0     0     0
          raidz1-2                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MSZ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MXE    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XKB    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XMW    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17ZHY    ONLINE       0     0     0
          raidz1-3                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BM4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BRF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18XLP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09880    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F098BE    ONLINE       0     0     0
          raidz1-4                                           DEGRADED     0     0 58.7K
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B0M    ONLINE       0     0     0
            spare-1                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BEN  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01  ONLINE       0     0     0  837K resilvered
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6LC    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWD1    ONLINE       0     0     0
            spare-4                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C8G  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE  ONLINE       0     0     0  830K resilvered
          raidz1-5                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-1CH_Z1F2KNQP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BML0    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPV4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ78    ONLINE       0     0     0
          raidz1-6                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ9G    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQDF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQFQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CW1A    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BV7M    ONLINE       0     0     0
        spares
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49MB1      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001SS2      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001R0F      AVAIL   

errors: 37062187 data errors, use '-v' for a list

Als die erste Festplatte ausfiel, ersetzte ich sie durch ein Ersatzlaufwerk und sie begann sich zu stabilisieren. Bevor der Resilver fertiggestellt wurde, ist eine zweite Festplatte ausgefallen, daher habe ich die zweite Festplatte durch eine andere ersetzt. Seitdem beginnt es zu stabilisieren, erledigt ungefähr 50% und beginnt dann, Speicher zu verschlingen, bis es alles auffrisst und das Betriebssystem zum Absturz bringt.

Ein Upgrade des Arbeitsspeichers auf dem Server ist derzeit keine einfache Option, und mir ist nicht klar, ob dies eine Lösung garantieren würde. Ich verstehe, dass es zu diesem Zeitpunkt zu Datenverlusten kommen wird, aber wenn ich den Inhalt dieses einen RAIDZ opfern kann, um den Rest des Pools zu erhalten, ist dies ein durchaus akzeptables Ergebnis. Ich bin gerade dabei, den Inhalt dieses Servers auf einem anderen Server zu sichern, aber das Problem mit dem Speicherverbrauch erzwingt etwa alle 48 Stunden einen Neustart (oder Absturz), wodurch meine rsync-Sicherung unterbrochen wird und ein Neustart des rsync einige Zeit in Anspruch nimmt (dies kann) Fortsetzen, sobald herausgefunden wurde, wo es aufgehört hat, aber das dauert sehr lange.

Ich denke, dass ZFS, das versucht, zwei Ersatzersatzvorgänge zu verarbeiten, die Ursache für das Problem des Speicherverbrauchs ist. Daher möchte ich eines der Ersatzlaufwerke entfernen, damit ZFS nacheinander arbeiten kann. Wenn ich jedoch versuche, eines der Ersatzteile zu trennen, erhalte ich die Meldung "/ dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01 kann nicht getrennt werden: Keine gültigen Replikate". Vielleicht kann ich die Option -f verwenden, um die Operation zu erzwingen, aber mir ist nicht klar, was das Ergebnis davon sein wird, also wollte ich sehen, ob jemand irgendwelche Eingaben hat, bevor ich fortfahre.

Wenn ich das System in einen stabilen Zustand versetzen kann, in dem es lange genug betriebsbereit bleiben kann, damit die Sicherung abgeschlossen werden kann, plane ich, es zur Überholung herunterzufahren, aber unter den aktuellen Bedingungen steckt es in einer Art Wiederherstellungsschleife.

Jasongullickson
quelle
Du hast das markiert zfs-fuse. Ist das wirklich ZFS-Sicherung? Bitte geben Sie die Betriebssystemdetails an.
ewwhite
Sie wetten ewwhite. Debian 6.0.6
Jasongullickson
Wie viel RAM hat dieses System? Wie oft haben Sie das Array gesäubert?
Chris S
Warum haben Sie FUSE verwendet und keine echte ZFS-Implementierung? Vor allem, weil es hier viel Hardware gibt. Ich denke, dieses Array ist fertig ...
ewwhite
Zum Zeitpunkt der Erstellung des Systems gab es keine native ZFS-Implementierung für Linux.
Jasongullickson

Antworten:

1

Im Moment können Sie die UNAVAIL-Festplatten trennen, ZFS verwendet diese sowieso nicht mehr.

Sie haben zwei ausgefallene Festplatten in einem RAIDZ-1-Setup. Es ist sehr wahrscheinlich, dass Sie einen Datenverlust feststellen und bereit sein sollten, ihn aus dem Backup wiederherzustellen.

Nebenbei bemerkt hat sich RAIDZ in meiner Erfahrung mit OpenSolaris / Solaris11 als sehr schuppig erwiesen. Ich würde davon abraten, es in JEDER Art von Produktionsarbeitslast zu verwenden.

Um das, was ewwhite gesagt hat, zu bekräftigen, ist FUSE nicht die beste Option. Ich würde diese Gelegenheit nutzen, um auf etwas Stabileres zu migrieren (vielleicht FreeBSD 10).

Giovanni Tirloni
quelle