KVM仮想マシンの仮想ディスクをルートパーティションから移動する方法

libvirtのデフォルトストレージプールは/var/lib/libvirt/imagesに配置されています。個人PCで仮想マシンを運用する場合、ルートパーティションの容量不足が発生することがあります。本稿では既存の仮想ディスクファイルを別の場所に移動する手順を説明します。

  1. 稼働中の仮想マシンを停止
[root@host-server ~]# virsh shutdown vm-server1
[root@host-server ~]# virsh list --all
 Id    名前                          状態
----------------------------------------------------
 -     vm-server1                     シャットオフ
  1. ストレージプール一覧を表示
[root@host-server ~]# virsh pool-list
 名前                 状態      自動起動
-------------------------------------------
 default               active    yes
  1. デフォルトプールの情報を確認
[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
  1. ストレージパスの確認
[root@host-server ~]# virsh pool-dumpxml default | grep -i path
    <path>/var/lib/libvirt/images</path>
  1. 仮想ディスクの確認
[root@host-server ~]# virsh vol-list default
 名前                 パス
------------------------------------------------------------------------------
 vm-disk.qcow2         /var/lib/libvirt/images/vm-disk.qcow2
  1. ストレージプールの停止
[root@host-server ~]# virsh pool-destroy default
プール default は破棄されました
  1. プール設定の編集
[root@host-server ~]# virsh pool-edit default

<path>/var/lib/libvirt/images</path> を新しいパスに変更(例: ホームディレクトリ)

<path>/home/vm-storage</path>
  1. ストレージプールの起動
[root@host-server ~]# virsh pool-start default
プール default は起動しました
  1. 変更後のパス確認
[root@host-server ~]# virsh pool-dumpxml default | grep -i path
<path>/home/vm-storage</path>
  1. ディレクトリ作成とファイル移動
[root@host-server ~]# mkdir -p /home/vm-storage
[root@host-server ~]# mv /var/lib/libvirt/images/vm-disk.qcow2 /home/vm-storage
  1. 仮想マシン設定の編集
[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>
  1. 仮想マシンの起動確認
[root@host-server ~]# virsh start vm-server1
ドメイン vm-server1 は起動しました

タグ: KVM 仮想化 ストレージ管理 libvirt QEMU

5月18日 07:42 投稿