おうちサーバのストレージの容量が逼迫してきたのと、そろそろいくつかHDDが死に始めたのでこれを機にHDDを入れ替えることにした。
おうちサーバのメインの方は RAID Z2 なので、HDDが2台死んでもデータは保存されるので、6台あるHDDを、壊れるたびに 1.5TiBから3TiBのものに
入れ替えていって、ただいま最後のHDDがリビルド中なのである。これが終わると約10TiBの大きな保存庫が完成するのである。
オンラインで容量を増やす、とタイトルには書いたが、そのためには Hot Plug できるHDDが必要で、実はおうちサーバはそれができないので、一回一回電源を落としてたりする。まあ、その辺はアレってことで。
あとは、一台づつHDDを新しいものに入れ替えて、 zpool replace するだけである。果てしなく時間がかかるが待っているだけ。これを6台分繰り返せばおしまい。さすが zfs なのだ。
はまりみち:
zpool status でときどきステータスを確認していると、再構築中のプールに書き込みがあると、リビルド完了までの時間が延びるので、なるべく書き込みがないようにしておきたい。
tips:
2台以上交換が終わった時点で、前のHDDに問題がなさそうなら、別のミラープールを作成して、RAID Z2 のプールのファイルを移動させておくと、リビルドが早くなります。使用率90%くらいあった
プールだと、120時間くらいかかっていたのが、使用率30%くらいになると、30時間くらいで終わるのでお勧め。
ということで、あと20時間くらいで終わる予定。
おわった。けど、容量が増えない。なんでかな?
いろいろ検索した結果、autoexpand=yes になってないと自動で増えないことが判明。ぐぬぬ。
手動で増やすのであれば、 zpool online -e すればよい。
ということで、無事増えました。
まとめ:
RAID Z な zfs pool は一台づつ容量の大きな HDD に交換することによって、オンラインのまま拡張することが可能。
autoexpand=yes にしておけば、最後の HDD のリビルドが終わった際に拡張される。
デフォルトでは autoexpand は yes になっていないので、 zpool online -e して手動で拡張可能。
export -> import でも増える。
リビルドにものすごく時間がかかるから、ぶっちゃけあまりお勧めはできないが、HDD不良などで交換する際についでにやったり、予防交換する場合などにはいいかも。
AFTじゃないHDDからAFTなHDDに入れ替える場合は、新たにpool 作り直さないと 4kセクタアクセスに変更することはできない。
ということで、次やるか?と聞かれたらNoですな。
あと、RAID Z2だから余裕もってできたけど、RAID Z1 だったらリビルド中にもう一台逝く可能性もあるので、ちょっと怖くて無理。