Festplatte im Pool ersetzen (durch eine größere)
Die zu ersetzende HDD identifizieren mit zpool status
und ls -la /dev/disk/by-id
root@microserver-gen8:~# zpool status
pool: lager
state: ONLINE
[...]
config:
NAME STATE READ WRITE CKSUM
lager ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
sde2 <-- wird ersetzt ONLINE 0 0 0
sdc2 ONLINE 0 0 0
sdd2 ONLINE 0 0 0
sdf2 ONLINE 0 0 0
root@microserver-gen8:~# ls -la /dev/disk/by-id
[....]
lrwxrwxrwx 1 root root 9 Aug 30 22:40 scsi-SATA_ST8000DM004-2CX1_XYZXYZXY -> ../../sde
^- Dieser Teil ist in aller Regel die Serien-Nr. der Festplatte!
Diese Merken / notieren
Anschließend die identifizierte Festplatte aus dem Pool nehmen
sudo zpool offline lager /dev/sde2
Bei einem erneuten Blick auf zpool status
wird nun der Pool als DEGRADED angezeigt. Nun kann der Server heruntergefahren werden und die Festplatte gegen die neue getauscht werden.
Vor dem Einbau der neuen Festplatte die Serien-Nr. der neuen Platte notieren oder ein Foto des Labels machen!
Server wieder starten und anschließend die neue Festplatte mit einem erneuten ls -la /dev/disk/by-id
identifizieren
ls -la /dev/disk/by-id
[...]
lrwxrwxrwx 1 root root 9 Aug 30 22:40 scsi-SATA_WDC_WD40EFRX-68N_WD-XYZXYZXYZXYZ -> ../../sde
Die neue Festplatte wurde vom System erkannt. Zur Vorbereitung der Aufnahme in den Pool muss noch die Partitionstabelle neu geschrieben werden, dazu verwenden wir das Tool parted
und schreiben die Tabelle im GPT Format neu auf die Festplatte. Eine eventuell auftauchende Warnung welche vor Datenverlust bei Ausführen dieses Befehls warnt wird mit yes bestätigt
root@microserver-gen8:~# sudo parted /dev/disk/by-id/scsi-SATA_WDC_WD40EFRX-68N_WD-XYZXYZXYZXYZ
GNU Parted 2.3
Using /dev/sde
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel GPT
(parted) q
Information: You may need to update /etc/fstab.
Nun kann die neue Festplatte in den Pool aufgenommen werden bzw. der Austausch der Platten angewiesen werden
root@microserver-gen8:~# sudo zpool replace lager /dev/sde2 /dev/disk/by-id/scsi-SATA_WDC_WD40EFRX-68N_WD-XYZXYZXYZXYZ
Nach einem kurzen Moment wurde der Befehl ausgeführt und man kann den Erfolg mit zpool status
überprüfen. Der Pool wird nun im Hintergrund resilverd und steht während dieser Zeit nur eingeschränkt zur Verfügung
root@microserver-gen8:~# zpool status
pool: lager
state: DEGRADED
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 Wed Aug 30 22:45:48 2023
1.72T scanned at 1.01G/s, 145G issued at 85.3M/s, 14.0T total
35.3G resilvered, 1.02% done, 1 days 23:12:44 to go
config:
NAME STATE READ WRITE CKSUM
lager DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
replacing-0 DEGRADED 0 0 0
sde2 OFFLINE 0 0 0
scsi-SATA_WDC_WD40EFRX-68N_WD-XYZXYZXYZXYZ ONLINE 0 0 0 (resilvering)
sdc2 ONLINE 0 0 0
sdd2 ONLINE 0 0 0
sdf2 ONLINE 0 0 0
errors: No known data errors
Dieser Vorgang kann je nach Größe des Pools mehrer Stunden bis Tage dauern! Während dieser Zeit sollte man den Pool nicht verwenden und den Vorgang in Ruhe arbeiten lassen