====== ZFSのHDDを交換してプールの容量を増やす ======
RAID-Zを構成してるHDDが古くなってきたので、容量アップも兼ねて交換した。増税だしな!(HDDを買ったのは増税前)
とりあえずプールの構成。
[hoge@Freyja ~]$ zpool status zdata3
pool: zdata3
state: ONLINE
scan: resilvered 1.03T in 8h34m with 0 errors on Thu Apr 10 22:57:30 2014
config:
NAME STATE READ WRITE CKSUM
zdata3 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada2p1 ONLINE 0 0 0
ada1p1 ONLINE 0 0 0
ada0p1 ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
ada8 ONLINE 0 0 0
ada12 ONLINE 0 0 0
ada9 ONLINE 0 0 0
logs
ada5 ONLINE 0 0 0
errors: No known data errors
raidz1-1の方が対象のHDD群。2TBx3本を3TBに交換する。
ZFSはディスクを丸ごと追加&交換が出来るが、それやるとOS起動時に「GPTテーブルがおかしいぜ」と警告ログが出て精神的によろしくないので、パーティションは切っとくのが吉。上記プールではうっかり丸ごと追加してしまってる状態。
交換自体は以下のコマンドをHDD数分叩くだけ。
zpool replace 対象プール 交換元HDD 交換先HDD
SATAの空きポートがなかったため、物理的にHDDを入れ替えといてリビルドという感じで行った。リビルド時間は容量に比例し、うちの環境だと10時間弱といった所。デグレ状態で長時間HDDをブン回す事になるので、これまたあまりよろしくはない。
HDDを交換しただけでは容量は拡張されないので、zpool online -eでZFSにストレージの容量を全部使うように指示する。
[hoge@Freyja ~]$ zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
zdata3 13.6T 10.4T 3.17T 76% 1.00x ONLINE -
[hoge@Freyja ~]$ sudo zpool online -e zdata3 ada8p1
[hoge@Freyja ~]$ zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
zdata3 16.3T 10.4T 5.89T 63% 1.00x ONLINE -
交換したHDDの1つにコマンド発行するだけで大丈夫っぽい。