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