libvirtのデフォルトストレージプールは/var/lib/libvirt/imagesに配置されています。個人PCで仮想マシンを運用する場合、ルートパーティションの容量不足が発生することがあります。本稿では既存の仮想ディスクファイルを別の場所に移動する手順を説明します。
- 稼働中の仮想マシンを停止
[root@host-server ~]# virsh shutdown vm-server1
[root@host-server ~]# virsh list --all
Id 名前 状態
----------------------------------------------------
- vm-server1 シャットオフ
- ストレージプール一覧を表示
[root@host-server ~]# virsh pool-list
名前 状態 自動起動
-------------------------------------------
default active yes
- デフォルトプールの情報を確認
[root@host-server ~]# virsh pool-info default
名前: default
UUID: 3599dd8a-edef-4c00-9ff5-6d880f1ecb8b
状態: running
永続化: yes
自動起動: yes
容量: 17.50 GiB
割当量: 7.67 GiB
空き容量: 9.82 GiB
- ストレージパスの確認
[root@host-server ~]# virsh pool-dumpxml default | grep -i path
<path>/var/lib/libvirt/images</path>
- 仮想ディスクの確認
[root@host-server ~]# virsh vol-list default
名前 パス
------------------------------------------------------------------------------
vm-disk.qcow2 /var/lib/libvirt/images/vm-disk.qcow2
- ストレージプールの停止
[root@host-server ~]# virsh pool-destroy default
プール default は破棄されました
- プール設定の編集
[root@host-server ~]# virsh pool-edit default
<path>/var/lib/libvirt/images</path> を新しいパスに変更(例: ホームディレクトリ)
<path>/home/vm-storage</path>
- ストレージプールの起動
[root@host-server ~]# virsh pool-start default
プール default は起動しました
- 変更後のパス確認
[root@host-server ~]# virsh pool-dumpxml default | grep -i path
<path>/home/vm-storage</path>
- ディレクトリ作成とファイル移動
[root@host-server ~]# mkdir -p /home/vm-storage
[root@host-server ~]# mv /var/lib/libvirt/images/vm-disk.qcow2 /home/vm-storage
- 仮想マシン設定の編集
[root@host-server ~]# virsh edit vm-server1
ディスクパスの更新:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/vm-storage/vm-disk.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'>
</disk>
- 仮想マシンの起動確認
[root@host-server ~]# virsh start vm-server1
ドメイン vm-server1 は起動しました