KVM仮想マシンの複製もしくは移動

作成:2021年02月24日

KVM仮想マシンの複製もしくは移動

Server settings documentation!!

ホストOS:Ubuntu20.04
ゲストOS:Debian GNU/Linux 10.7

1)ターゲット仮想マシンの停止

# virsh shutdown <ドメイン名>

2)仮想マシンの関連ファイルのコピー

移動元の仮想化マシンから、移動先仮想化マシンへ必要ファイルをコピーする。

▼必要ファイルのパス
KVM標準構成では必要ファイルのパスは以下のようになる。

① 定義ファイル→/etc/libvirt/qemu/定義ファイル名.xml
② イメージファイル→/var/lib/libvirt/images/イメージファイル名.img

また、イメージファイルの保存先が異なる場合は、以下コマンドで確認する。

▼ストレージプールの確認

# virsh pool-list
 Name      State    Autostart
-------------------------------
 default   active   yes

▼ストレージプール内にあるイメージファイルパス確認

# virsh vol-list default
 Name                     Path
--------------------------------------------------------------------------
 debian10-2021-02.qcow2   /var/lib/libvirt/images/debian10-2021-02.qcow2

▼必要ファイルのコピー
① 定義ファイルパス→/etc/libvirt/qemu/
② イメージファイルパス→/var/lib/libvirt/images/

ファイルコピーは、SCPとかSFTPを使うのがベストだと思われる。
GUIツールでコピーすると楽である。
設定詳細は、ここでは割愛する。
但し、パーミッションに気をつけることが必須である。

3)移動先仮想化ホストへ仮想マシンを登録する

以下コマンドにより仮想マシンを登録する。
virsh define /etc/libvirt/qemu/定義ファイル名.xml

# virsh define /etc/libvirt/qemu/debian10-2021-02.xml

登録の確認は以下コマンドで行う。
登録した仮想マシンが表示されるはずである。

# virsh list --all

 Id   Name               State
----------------------------------
      debian10-2021-02   running

イメージファイルのパスが異なる場合や移動元及び移動先でイメージファイルパスが異なる場合は、上記の登録を行う前に定義ファイルを編集しなければならない。
編集方法を以下に示す。

# vi /etc/libvirt/qemu/debian10-2021-02.xml

<disk type='file' device='disk'> 
  <driver name='qemu' type='qcow2' cache='writeback'/> 
  <source file='/var/lib/libvirt/images/イメージファイル名.img'/> 
  <target dev='vda' bus='virtio'/> 
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> 
</disk>

上記の

<source file='/var/lib/libvirt/images/イメージファイル名.img' />

の部分を自分のイメージパスに合わせて変更する。

4)複製や移動した仮想マシンの動作確認

登録が完了した後、移動した仮想マシンを起動して動作を確認する。

# virsh start debian10-2021-02

ホスト起動時と同時に自動起動させる設定を行う。

# virsh autostart debian10-2021-02

virt-managerへ登録するときは、再起動をかけないと登録できないので注意が必要である