Zpool verschlechtert sich beim Anschließen eines Laufwerks

Zpool verschlechtert sich beim Anschließen eines Laufwerks

Um zu testen, welche Auswirkungen das Hinzufügen eines ZFS-Protokollgeräts zu einem ZFS-Array hätte, habe ich beschlossen, einen Zpool zu erstellen und einige Benchmarks durchzuführen, bevor ich dann eine SSD anschloss, die als ZIL fungiert.

Leider wird mein Pool immer dann beeinträchtigt, wenn ich die SSD nach der Erstellung des Zpools anschließe oder die SSD nach der Erstellung des Pools entferne (alles, was dazu führt, dass sich die Laufwerksbuchstaben nach der Erstellung des Pools ändern) und dann neu starte, wie durch Ausführen von gezeigt werden kannsudo zpool status

  pool: zpool1
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
    invalid.  Sufficient replicas exist for the pool to continue
    functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: none requested
config:

    NAME                     STATE     READ WRITE CKSUM
    zpool1                   DEGRADED     0     0     0
      mirror-0               DEGRADED     0     0     0
        sda                  ONLINE       0     0     0
        1875547483567261808  UNAVAIL      0     0     0  was /dev/sdc1

Ich vermute, das Problem rührt daher, dass ich den Pool mit den Laufwerksbuchstaben folgendermaßen erstellt habe:

sudo zpool create -f zpool1 mirror /dev/sdb /dev/sdc

Fragen

Zum Glück ist das nur ein Test und es besteht kein Risiko, dass Daten verloren gehen. Aber sollte das in der Praxis passieren, wie kann ich das Problem am besten beheben? Offensichtlich existiert das Laufwerk noch und ist einsatzbereit.

Gibt es eine bessere Möglichkeit, den Zpool zu erstellen, ohne die Laufwerksbuchstaben zu verwenden, /dev/sdaum dieses Problem in Zukunft zu vermeiden? Ich stelle fest, dassIn der Ubuntu-Dokumentation heißt esum einen Zpool auf die gleiche Weise zu erstellen wie ich.

Zusatzinformation

  • Betriebssystem: Ubuntu 16.04 Server 4.10
  • zfsutils-linuxZFS aus dem Installationspaket installiert

Antwort1

Nach der Hilfe von Dexter_Kane auf derTechnikforum der Stufe 1/dev/disk/by-id/..., die Antwort besteht darin , beim Erstellen der Pools stattdessen Pfade zu verwenden .

Z.B

sudo zpool create zpool1 mirror \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H

Umbau und Sanierung vorhandener Pools

Die gute Nachricht ist, dass Sie ein vorhandenes ZFS-RAID-Array so „konvertieren“ können, dass es diese Bezeichnungen verwendet. Dadurch wird dies in Zukunft verhindert und Ihr degradiertes Array wird sogar repariert, wenn diese Situation bei Ihnen bereits eingetreten ist.

sudo zpool export [pool name]
sudo zpool import -d /dev/disk/by-id [pool name]

Sie müssen lediglich sicherstellen, dass die Datensätze des Pools nicht verwendet werden. Führen Sie die Befehle beispielsweise nicht aus, während Sie sich im Pool befinden, und stellen Sie sicher, dass sie nicht über NFS usw. freigegeben werden.

Nach der Konvertierung sudo zpool statussollte die Ausgabe etwa wie folgt aussehen:

  pool: zpool1
 state: ONLINE
  scan: none requested
config:

        NAME                                          STATE     READ WRITE CKSUM
        zpool1                                        ONLINE       0     0     0
          mirror-0                                    ONLINE       0     0     0
            ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7  ONLINE       0     0     0
            ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H  ONLINE       0     0     0

Durchgeführte Tests

Ich habe Folgendes getestet:

  • Durch die Verwendung von ID-Pfaden konnte das Problem verhindert werden.
  • Nachdem ich einige Daten geschrieben hatte, während sich der Pool in einem beeinträchtigten Zustand befand, konnte ich nach dem Export/Import weiterhin alle Dateien lesen und es sudo zpool statuswurden keine Fehler gemeldet.

verwandte Informationen