LVMにはミラーリングやストライピングといった機能がある。
って最近知った。
とりあえずデータが飛びかけた今回の障害から復旧するにあたって、LVMで構築したパーティションをミラーリングしようと思っていて調べていて気づいた。
以前と同じようにmdadmを使ったソフトウェアRAIDでミラーリングしようと思っていたけど、LVM自前のミラーリング機能を使った方が楽そうなのでこっちにした。
とりあえず、ミラーリングなのでディスクは最低2本いる。
で、同一ボリュームである必要があるようだ。
ということで、
# pvcreate /dev/sda1 /dev/sdb1 # vgcreate vg1 /dev/sda1 /dev/sdb1
みたいな感じで。
で、ミラーリングするのは至極簡単なようだ。
普通に論理ボリュームを作成するのと同じような感じで、-m 1とかつければいいみたい。
# lvcreate -L 30G -n lv1 -m 1 --alloc anywhere vg1
みたいな。
–alloc anywhere ってのが謎だが、これがないとLVMのミラーリングはディスクを3個必要になるらしい。基本は。
というのは、一つはログ用で用いるようだ。
で、このログを配置する先を、一つのディスクを利用しないで適当なファイルに書き出すようにするのがこのオプションらしい。
っていうのも、allocオプションの詳しい話がman lvcreateじゃ出てこないからよくわからん。
単純にこのオプションを使わずに、–mirrorlogオプションを使った方が平和かもしれない。
–mirrorlogオプションでは、以下のようになる。
で、論理ボリュームをミラーリングにしたりするのは、作成時だけじゃなくてすでに稼働している状態からでも簡単に行える。
lvconvertで似たような感じで指定すればいい。
mountしている状態でも、オンラインミラーリング化なんてことも問題なくできた。
# lvconvert -m 1 --alloc anywhere /dev/ms09/ms09
これで、普通の論理ボリュームがミラーリングされたボリュームに化けた。
このLVMの柔軟性はすばらしいというほかない。

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 