Ich kann die "schlechte" Festplatte nicht aus dem ZFS-Pool entfernen

Ich kann die "schlechte" Festplatte nicht aus dem ZFS-Pool entfernen
  1. Es gab 2 Festplatten im Pool /dev/sde /dev/sdf

  2. Die Festplatte /dev/sde war beschädigt, ich habe sie aus dem Pool ausgeschlossen und durch eine neue Festplatte ersetzt. Das Raid ist degradiert.

  3. Nachdem ich dem Pool eine neue /dev/sde-Festplatte hinzugefügt hatte, erhielt ich die folgende Konfiguration:

 zpool status
  pool: rpool
 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: scrub repaired 0B in 0h25m with 0 errors on Wed Sep  2 18:32:39 2020
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            old     UNAVAIL      0     0     0
            sdf2    ONLINE       0     0     0
          sde2      ONLINE       0     0     0

Beim Ersetzen, Offline-Löschen von „alt“ kommt immer ein Fehler:

zpool replace rpool old

cannot open 'old': no such device in /dev

must be a full path or shorthand device name

In der Datei /etc/zfs/zpool.cache sehe ich Laufwerk /dev/sde2/old

Wie entferne ich die alte Festplatte, ohne den Server neu zu starten und das Array zu löschen (das Array ist /)?


root@v05:/# zpool replace rpool old sde2
invalid vdev specification
use '-f' to override the following errors:
/dev/sde2 is part of active pool 'rpool'

root@v05:/# zpool replace -f rpool old sde2
invalid vdev specification
the following errors must be manually repaired:
/dev/sde2 is part of active pool 'rpool'

sde ist bereits rpool-Mitglied.

Alte Festplatte (/dev/sde/old) muss aus dem Pool entfernt werden.

Kein Fehler beim Hinzufügen der neuen Platte, habe alles genau so gemacht, wie du es geschrieben hast.

Antwort1

Problem gelöst.

zdb

Suchen Sie nach der Identifikation 15497986214547762579 für das Gerät /dev/sde/old und entfernen Sie:

zpool offline -f rpool 15497986214547762579

zpool trennen rpool 15497986214547762579

Antwort2

Wahrscheinlich ist Ihnen beim Hinzufügen der neuen Festplatte ein Fehler unterlaufen: Sie haben ausgegeben zpool add rpool <newdisk>, aber Sie musstenersetzendie ausgefallene Festplatte. Mit anderen Worten, Sie mussten entweder:

  • zpool replace rpool <olddisk> <newdisk>
  • zpool detach rpool <olddisk>; zpool attach rpool sdf( sdfdas andere Spiegelbein).

Beachten Sie, wie ich geschrieben habe attach, während Sie es wahrscheinlich addin Ihrem Zpool-Befehl verwendet haben.

Wie lässt sich das Problem beheben? Mit ZFS 0.7.x haben Sie Pech, da kein Daten-vdev nach dem Hinzufügen entfernt werden kann. MitZFS 0.8.x können Sie es entfernenWenn Sie also ZFS 0.7.x verwenden, müssen Sie als ersten Schritt auf 0.8.x aktualisieren. Anschließend müssen Sie den obigen Befehl ausführen, um die ausgefallene Festplatte zu ersetzen.

Antwort3

Ich habe einen Festplattenaustausch gemäß der Oracle-Dokumentation durchgeführt. Ich habe nun die folgende Befehlsausgabe:

root@v05:/# zpool ersetzt rpool altes sde2 ungültige vdev-Spezifikation. Verwenden Sie „-f“, um die folgenden Fehler zu überschreiben: /dev/sde2 ist Teil des aktiven Pools „rpool“

root@v05:/# zpool replace -f rpool old sde2 ungültige vdev-Spezifikation. Die folgenden Fehler müssen manuell behoben werden: /dev/sde2 ist Teil des aktiven Pools „rpool“

verwandte Informationen