virsh から lvm の volume をコントロールする

ハイパーバイザー上で lvcreate やら lvremove やらでもできるんですが、virsh 上でそれをやる時は……という備忘録。

virsh # vol-create-as --pool <pool-name> --name <vol-name> --capacity <size: 1024K, 256M, 8G...> --format raw

ここで指定した vol-name は、そのまま lvm の lv名になります。

virsh # vol-list --pool <pool-name> [--details]
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 名で指定とかできるのかどうか……不明です。

virsh # domblklist --domain <domain> [--inactive] [--details]

attach-disk --config しただけで現在起動している domain がまだ認識していない volume は --inactive を付けるとリストされます。

virsh # detach-disk --domain <domain> --target <vol-name: /dev/vg001/lv001> --config

attach-disk と同様に --config を付けているので domain の落し上げで反映します。

virsh # vol-delete <vol-name> --pool <pool-name>

kvm ゲストを安全に削除する あたりにもチョイチョイ……

https://manimani.cc/lib/plugins/linkback/exe/trackback.php/wiki:kvm:control_lvm_volumes_from_virsh