
Es gab 2 Festplatten im Pool /dev/sde /dev/sdf
Die Festplatte /dev/sde war beschädigt, ich habe sie aus dem Pool ausgeschlossen und durch eine neue Festplatte ersetzt. Das Raid ist degradiert.
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
(sdf
das andere Spiegelbein).
Beachten Sie, wie ich geschrieben habe attach
, während Sie es wahrscheinlich add
in 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“