ZFS(raidz1)のHDDを換装

数日前に、raidz1(2TB6台の5D+1P)のドライブが1台認識されなくなったので、アキバで交換用のHDDを購入。
HDD交換時には毎度コマンドを調べ直してるので、いい加減自分用にまとめる。


まずは状態を確認。

nas4free:~# zpool status
pool: vpool1
state: DEGRADED
status: One or more devices has been removed by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: resilvered 1.24T in 8h0m with 0 errors on Mon Nov 24 09:50:19 2014
config:

NAME STATE READ WRITE CKSUM
vpool1 DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ada6 ONLINE 0 0 0
ada7 ONLINE 0 0 0
ada10 ONLINE 0 0 0
ada5 ONLINE 0 0 0
8265837586004526430 REMOVED 0 0 0 was /dev/ada9
ada8 ONLINE 0 0 0

errors: No known data errors

pool: vpool2
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
vpool2 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada0 ONLINE 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0

errors: No known data errors

vpool1 の ada9 が死んでいる。

ada9をraidzから切り離す。

nas4free:~# zpool offline vpool1 ada9
nas4free:~# zpool status vpool1
pool: vpool1
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: resilvered 1.24T in 8h0m with 0 errors on Mon Nov 24 09:50:19 2014
config:

NAME STATE READ WRITE CKSUM
vpool1 DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ada6 ONLINE 0 0 0
ada7 ONLINE 0 0 0
ada10 ONLINE 0 0 0
ada5 ONLINE 0 0 0
8265837586004526430 OFFLINE 0 0 0 was /dev/ada9
ada8 ONLINE 0 0 0

errors: No known data errors

ここで、NASの電源を落とし、HDDを新品に交換。

交換後にNASを起動しなおし、新しいHDDがada9になっていることを確認する。
(これはWebGUIの ディスク|マネージメント のページから、[コンフィグ消去とディスクのインポート]で確認)

問題なければ、raidzのリカバリーを回復。

nas4free:~# zpool replace vpool1 ada9
nas4free:~# zpool status vpool1
pool: vpool1
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 Sun Jan 31 20:10:59 2016
57.6M scanned out of 6.67T at 1.48M/s, (scan is slow, no estimated time)
9.48M resilvered, 0.00% done
config:

NAME STATE READ WRITE CKSUM
vpool1 DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ada6 ONLINE 0 0 0
ada7 ONLINE 0 0 0
ada10 ONLINE 0 0 0
ada5 ONLINE 0 0 0
replacing-4 OFFLINE 0 0 0
8265837586004526430 OFFLINE 0 0 0 was /dev/ada9/old
ada9 ONLINE 0 0 0 (resilvering)
ada8 ONLINE 0 0 0

errors: No known data errors

しばらく(今回は10時間弱)待つと、リカバリーが完了。

nas4free:~# zpool status vpool1
pool: vpool1
state: ONLINE
scan: resilvered 1.11T in 6h45m with 0 errors on Mon Feb 1 02:56:17 2016
config:

NAME STATE READ WRITE CKSUM
vpool1 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada6 ONLINE 0 0 0
ada7 ONLINE 0 0 0
ada10 ONLINE 0 0 0
ada5 ONLINE 0 0 0
ada9 ONLINE 0 0 0
ada8 ONLINE 0 0 0

errors: No known data errors

これで一安心。


と言いつつ、ada8, ada10もS.M.A.R.T.でエラー検出があるのでこの際一気に交換。(1台ずつ順番に)
そしてついでだからエラーの出てないドライブもすべて交換し、2TBの5D+1Pから3TBの5D+1Pに交換し、容量拡張予定。


容量拡張は以下のコマンドらしい。

nas4free:~# zpool online -e vpool1