LVM再考
LVMとは
- 複数のディスクにまたがるファイルシステムを作ったり出来るようにするもの
- 構造としては、物理ボリューム(PV)を物理エクステント(PE)という単位に分割して、物理エクステントの組み合わせで論理ボリューム(LV)を構成するようになっている。
- 物理ボリュームの追加・削除や論理ボリュームのサイズ変更は後から可能
- ついでにストライピングやミラーリングも出来たりする
ZFS?
ZFSでもファイルシステムのサイズは可変だし、プールにパーティションを追加できるじゃない。
ZFSがあればLVMは要らない…………
そんな風に考えていた時期が私にもありました
あるシナリオ(1)
- 今、300GBのHDD(sda)と500GBのHDD(sdb)と2TBのHDD(sdc)がある。
- 300GBと2TBの間、500GBと2TBの間でミラーリングして連結すれば、ミラーリングされた800GBの領域が出来るはず。
- ZFSを使ってミラーリングされた800GBの領域を作りましょう。
あるシナリオ(2)
sdaとsdbは一つのパーティションにして、sdcには300GBと500GBのパーティションを作成すればいいよね。
# zpool create ztank mirror /dev/sda1 /dev/sdc1 mirror /dev/sdb1 /dev/sdc2
本当にそれで良いのか?
あるシナリオ(3)
- zpoolは複数のディスクをaddすると問答無用でストライピングするらしい。
- つまりsdc1とsdc2でストライピングすることに……
- シーケンシャルアクセスもランダムアクセスになってるぞこれ
ZFSの他の問題点
- さらに、ZFSは一旦追加したパーティションを縮小・削除できない(交換は出来るが)。
- なお、attachと間違えてaddするとpoolごと作り直し。
要するにZFSは基本的に台数を減らせない設計