FreeBSDをインストールしてZFSをいじってみた。操作は簡単なんだけど、やっぱり思っていたような機能はないみたい。
http://docs.sun.com/app/docs/doc/819-6260/gavwn?a=viewより
デバイスを置き換えるときは、ミラー構成または RAID-Z 構成内のすべてのデバイスの最小サイズ以上のデバイスを使用する必要があります。置き換えたあとのデバイスが大きい場合、ミラー構成および RAID-Z 構成でないときには、置き換えが完了するとプールのサイズが大きくなります。
つまり120GB+120GB+120GBのストレージプール(RAID-Z)のうちの一つの120GBを250GBに置き換えたところで容量は増えないということだ。
実際にやってみた結果
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT zpool0 334G 800K 334G 0% ONLINE -
120GBのハードディスク3台で編成されるzpool0があって、
# zpool replace zpool0 ad6 ad7
そのうち一つのディスクを250GBに置き換えた。
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT zpool0 334G 803K 334G 0% ONLINE -
大きさは変わっていない。
やっぱりそうだよな、常識的に考えて。oshikojiの狙いは余っているハードディスクを利用して、耐障害性があり後々容量拡張が可能なストレージを作るということだったのだが、ZFSをもってしても不可能だということだ。耐障害性を諦めて単なるJBODとして使えばディスクを交換することで容量は拡張できるが、それだったらLinux LVMを利用すればいいだけの話である。(ZFSにはストライピング機能があるのでアクセスは速くなるかも?)FreeBSDを勉強し直すのも面倒くさいしやっぱりDebianに入れ替えようかなあ。
そうそう、ZFSはoshikojiの使い方に合わなかったというだけで、アイデアは素晴らしいものだ。今後もチェックしておきたい技術だ。