Ich bin so froh, das ich das nicht mehr als Hauptsystem nutze.
775556c8-e499-44f2-a891-4492295b7235-image.png
Was ist passiert?
root@pve:~# zpool status
pool: ZFS-Pool
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: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: resilvered 841G in 01:52:53 with 0 errors on Sun Oct 17 10:18:42 2021
config:
NAME STATE READ WRITE CKSUM
ZFS-Pool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 ONLINE 0 0 0
8992518921607088473 UNAVAIL 0 0 0 was /dev/sdb1
errors: No known data errors
Ich hatte die Tage den ZFS-Pool für meinen Proxmox mit einer Devicebezeichnung /dev/sdb angelegt. Wie ich schon kurz danach begriffen hatte, keine gute Idee. Ich war aber in der Annahme, das das nicht so häufig passiert, das die Laufwerksbezeichnungen sich verschieben.
Da ich heute das Gehäuse komplett fertig montiert habe, Laufwerke festgemacht usw. , habe ich bewusst kein SATA-Kabel angefasst, ausgesteckt usw. Es hat nichts geholfen, nach einen Neustart des Proxmox waren die Laufwerksbezeichnungen durcheinander.
Ich habe zwei ZFS_Pools, der ZFS-Pool für den Proxmox und einen Pool, der an eine VM durchgereicht wird. Den hatte ich korrekt mit den IDs aus /dev/disk/by-id angelegt. Darum ist der auch noch intakt.
root@debian1:~# zpool status
pool: NAS
state: ONLINE
scan: resilvered 232K in 00:00:01 with 0 errors on Sun Oct 17 16:38:46 2021
config:
NAME STATE READ WRITE CKSUM
NAS ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi1 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi2 ONLINE 0 0 0
errors: No known data errors
Ok, wie bekommen wir das gefixt? Der Fehler schreibt ja genau, was zu machen ist.
ZFS zeigt uns genau die Ursache
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.
und das was man machen soll.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
Ich habe mich dafür entschieden, das hier zu machen.
zpool replace test c0t0d1
Ok, was brauche ich? Die ID der Platte.
root@pve:/dev/disk/by-id# ls -lha
total 0
drwxr-xr-x 2 root root 860 Oct 18 09:03 .
drwxr-xr-x 8 root root 160 Oct 18 09:03 ..
lrwxrwxrwx 1 root root 9 Oct 18 09:03 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52 -> ../../sdc
lrwxrwxrwx 1 root root 10 Oct 18 09:03 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Oct 18 09:03 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52-part9 -> ../../sdc9
lrwxrwxrwx 1 root root 9 Oct 18 09:03 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 -> ../../sda
lrwxrwxrwx 1 root root 10 Oct 18 09:03 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 18 09:03 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26-part9 -> ../../sda9
[..gekürzt..]
zpool status zeigt mir an, welche Platte im Pool intakt ist.
ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26
Ok, dann brauche ich jetzt die andere
ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52
Soweit die Theorie. Nasse Hände? Ein wenig Dann mal los....
zpool replace ZFS-Pool ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52
Ok, geht nicht.
root@pve:/dev/disk/by-id# zpool replace ZFS-Pool ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52
invalid vdev specification
use '-f' to override the following errors:
/dev/disk/by-id/ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52-part1 is part of active pool 'ZFS-Pool'
Hmm, also nachdenken. Das Laufwerk muss raus aus dem Pool, also das hier 8992518921607088473
root@pve:~# zpool detach ZFS-Pool 8992518921607088473
Status danach
root@pve:~# zpool status
pool: ZFS-Pool
state: ONLINE
scan: resilvered 841G in 01:52:53 with 0 errors on Sun Oct 17 10:18:42 2021
config:
NAME STATE READ WRITE CKSUM
ZFS-Pool ONLINE 0 0 0
ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 ONLINE 0 0 0
errors: No known data errors
Gut, jetzt die richtige Platte wieder hinzufügen. Ich hatte erst noch einen Replace probiert, aber er meckert, logisch, über eine nicht vorhandene Platte im Pool. Also, wieder hinzufügen, so wie ich das am Anfang gemacht habe. Aber diesmal mit der richtigen ID.
zpool attach ZFS-Pool ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52
Kam nix, kein Fehler. Juhu! Kontrolle...
root@pve:~# zpool status
pool: ZFS-Pool
state: ONLINE
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 Mon Oct 18 15:32:05 2021
52.7G scanned at 5.85G/s, 324K issued at 36K/s, 1.19T total
0B resilvered, 0.00% done, no estimated completion time
config:
NAME STATE READ WRITE CKSUM
ZFS-Pool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 ONLINE 0 0 0
ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52 ONLINE 0 0 0
errors: No known data errors
Ok, der Pool wird wieder neu gespiegelt oder was auch immer Fertig!!
NIE, NIE einen ZPoll mit Laufwerksbezeichnungen anlegen. Auch wenn das hunderte Webseiten so im Netz zeigen. NIEMALS! Immer die IDs benutzen!!