HDDs im ZFS Raidz1 mit größeren HHDs ersetzen
So langsam kam ich mit meinem ZFS Raid zraid1 bestehend aus 3 mal 2TB Platten an die Füllgrenze.
k1l@server:~$ sudo zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
data 5,44T 4,85T 604G - 41% 89% 1.00x ONLINE -
Also mussten neue Platten her. Eigentlich wollte ich einfach vedoppeln, also anstatt der 2TB WD Red bisher 3 mal 4TB WD Reds nutzen. Allerdings sind diese sehr preisstabil bei 110 Euro. Ich habe jetzt stattdessen externe HDDs WD MyBook 8TB für 139Euro im Angebot gekauft. Dort sind WD Whitelables drin: WD80EZAZ. Das ist eine Mischung aus WD Red und älterer HGST Produktion. HDDs aus den Gehäusen ausgebaut und einzeln gegen die alten Platten ausgetauscht.
k1l@server:~$ sudo zpool status -v
pool: data
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: resilvered 1,61T in 7h0m with 0 errors on Wed Apr 8 05:03:52 2020
config:
NAME STATE READ WRITE CKSUM
data DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M3SNXEF9 UNAVAIL 0 139 0 corrupted data
ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M1NN1HD9 ONLINE 0 0 0
ata-WDC_WD80EZAZ-11TDBA0_1EHAJG2Z ONLINE 0 0 0
Nach jedem Tausch muss man erst ZFS anweisen, die neue Platte anstatt der ausgebauten Platte einzubinden. Das ist genau so als wenn man eine kaputte Platte ersetzt.
k1l@server:~$ sudo zpool replace data ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M3SNXEF9 ata-WDC_WD80EZAZ-11TDBA0_1EHP91LZ -f
Sobald das resilvering fertig ist, 6-8 Stunden hier, kann man die nächste Platte austauschen.
k1l@server:~$ sudo zpool status -v
pool: data
state: ONLINE
scan: resilvered 1,61T in 6h42m with 0 errors on Wed Apr 8 17:15:24 2020
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-WDC_WD80EZAZ-11TDBA0_1EHP91LZ ONLINE 0 0 0
ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M1NN1HD9 ONLINE 0 0 0
ata-WDC_WD80EZAZ-11TDBA0_1EHAJG2Z ONLINE 0 0 0
Am Ende wird bei ZFSonLinux allerdings trotz zpool set autoexpand=on pool
nicht das Filesystem auf die neue Größe angepasst.
k1l@server:~$ sudo zpool list -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
data 5,44T 4,85T 604G - 41% 89% 1.00x ONLINE -
raidz1 5,44T 4,85T 604G 1,09G 41% 89%
ata-WDC_WD80EZAZ-11TDBA0_1EHP91LZ - - - - - -
ata-WDC_WD80EZAZ-11TDBA0_1EHKSU8Z - - - - - -
ata-WDC_WD80EZAZ-11TDBA0_1EHAJG2Z - - - - - -
Man muss bei Linux erst noch einzeln jede Platte online -e setzen.
k1l@server:~$ sudo zpool online -e data ata-WDC_WD80EZAZ-11TDBA0_1EHP91LZ
k1l@server:~$ sudo zpool online -e data ata-WDC_WD80EZAZ-11TDBA0_1EHKSU8Z
k1l@server:~$ sudo zpool online -e data ata-WDC_WD80EZAZ-11TDBA0_1EHAJG2Z
Fertig ist die Laube:
k1l@server:~$ sudo zpool list -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
data 21,8T 4,85T 17,0T - 10% 22% 1.00x ONLINE -
raidz1 21,8T 4,85T 17,0T - 10% 22%
ata-WDC_WD80EZAZ-11TDBA0_1EHP91LZ - - - - - -
ata-WDC_WD80EZAZ-11TDBA0_1EHKSU8Z - - - - - -
ata-WDC_WD80EZAZ-11TDBA0_1EHAJG2Z - - - - - -