KVMでVMにHDD追加
たまーにやるけどやる度に調べてるようなことってホント無駄ですよね。
というわけでメモ。
KVMでVMのHDD容量増やす方法はいくつかあって、
例えば
- HDD自体を拡張
- HDDを追加してLVMで一つにまとめる
辺りでしょうか。
一つ目のはfdiskでパーティションやらなんやらがめんどそうなので
いつも二つ目の方法でやってます。
が、そんなに頻度が高いわけでもなく、普段使わないコマンドばかりなので
すぐに忘れちゃうんですよね(´・ω・`)
HDDイメージの作成
まずは追加するHDDイメージを作成します。
# qemu-img create -f qcow2 /var/lib/libvirt/images/extend.qcow2 150G
VM定義ファイルにHDDイメージを定義
/etc/libvirt/qumu/以下辺りにあるXMLファイルに記述
<devices> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/var/lib/libvirt/images/vm.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> /* 以下を追加 */ <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/var/lib/libvirt/images/extend.qcow2'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> /* ココマデ */
VMを再定義して起動
# virsh define /etc/libvirt/qemu/vm.xml # virsh start vm # virsh console vm
ここで再定義できない、起動できない場合は、上記の定義ファイルで
- target dev=の値が被っている
- address ~ slot=の値が被ってる
辺りがアヤシイですかね。
LVMでPV(物理ボリュームを作成)
# pvcreate /dev/vdb
ボリュームグループ vg00 に追加
# vgextend vg00 /dev/vdb
論理ボリュームを拡張 (MBで指定)
# lvextend -l +100%FREE /dev/mapper/vg00-lv00
以下でもいいらしいんですができたことないのでなんとも。
# lvextend -L +150000M -n /dev/mapper/vg00-lv00
リサイズ
# resize2fs /dev/mapper/vg00-lv00
確認
# df -h
ここで増えてたらOKです。