ZFSでストレージプールにHDDを追加できても削除はできない
かなり既出っぽいが、自分に対しての備忘録。ZFSでストライピングを使用する場合の注意点。ミラーリングやRAID-Z使用時には問題にならないが、自分のように昔のHDDを有効活用するためにストライピングで使用している人は事前に確認すべき。
現在、自宅のファイルサーバはFreeNAS(0.7RC2)で動いている。ファイルシステムとしてZFSを利用し、3つのHDD(250GB×2、80GB×1)を1つのストレージプール(合計容量580GB)として扱えるようにしている。コマンドでステータスを確認すると、
# zpool status pool: ZFS state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM ZFS ONLINE 0 0 0 ad8 ONLINE 0 0 0 ←250GBのHDD ad10 ONLINE 0 0 0 ←250GBのHDD ad6 ONLINE 0 0 0 ←80GBのHDD errors: No known data errors
という感じで見える。ここで80GBのHDD(ad6)が不要になったのでストレージプールから削除したいが、
# zpool remove ZFS ad6 cannot remove ad6: only inactive hot spares can be removed # zpool detach ZFS ad6 cannot detach ad6: only applicable to mirror and replacing vdevs
となり、実行不可。調べてみると、removeはホットスペアの削除、detachはミラーからの切り離しに使うコマンドであり、ストライピング時のディスク削除は現時点ではできないようだ。ちなみに追加の場合は
# zpool add ZFS ad6
で非常に簡単に追加できる。つまり、ストライピングにおいては、ストレージプールの拡大は自由にできるが、縮小は不可能ということである。追加がこれだけ簡単にできるのだから、削除も同様にできるようにして欲しいところだ。
しかしながら、SunはOracleに買収されたからZFSの存続自体が危うい。とはいえBtrfsはまだ発展途上なので、ZFSには是非とも開発を継続して欲しい。
fujitaka