virsh から lvm の volume をコントロールする
ハイパーバイザー上で lvcreate
やら lvremove
やらでもできるんですが、virsh 上でそれをやる時は……という備忘録。
volume を作る
virsh # vol-create-as --pool <pool-name> --name <vol-name> --capacity <size: 1024K, 256M, 8G...> --format raw
ここで指定した vol-name
は、そのまま lvm の lv名になります。
volume のリストを見る
virsh # vol-list --pool <pool-name> [--details]
domain に volume を attach する
virsh # attach-disk --domain <domain> --source <vol-name: /dev/vg001/lv001> --target <dev-name: vda, vdb...> --targetbus virtio --config
--config
を付けているのでこの操作は domain の xml にのみ反映されます。適用するには domain の shutdon と start が必要です。 → kvm ゲストにディスクを割り当てる
--source
の指定のみ、/dev/...
な感じの生のデバイスになっていますが、これ libvirt 上の volume 名で指定とかできるのかどうか……不明です。
domain ごとに attach された volume をリストする
virsh # domblklist --domain <domain> [--inactive] [--details]
attach-disk --config
しただけで現在起動している domain がまだ認識していない volume は --inactive
を付けるとリストされます。
domain に attach された volume を外す
virsh # detach-disk --domain <domain> --target <vol-name: /dev/vg001/lv001> --config
attach-disk
と同様に --config
を付けているので domain の落し上げで反映します。
volume を 消す
virsh # vol-delete <vol-name> --pool <pool-name>
→ kvm ゲストを安全に削除する あたりにもチョイチョイ……