Ubuntu 26.04

KVM : Live Migration2026/04/29

 

This is the example to use Live Migration feature for Virtual Machines.

It requires 2 KVM host server and also a storage server like follows.
Configure DNS or hosts to resolve names or IP addresses normally, first.

                      +----------------------+
                      |   [  NFS Servver  ]  |
                      |     nfs.srv.world    |
                      |                      |
                      +-----------+----------+
                                  |10.0.0.35
                                  |
+----------------------+          |          +----------------------+
|  [   KVM Host #1  ]  |10.0.0.30 | 10.0.0.51|  [  KVM Host #2   ]  |
|                      +----------+----------+                      |
|   kvm01.srv.world    |                     |    kvm02.srv.world   |
+----------------------+                     +----------------------+

[1]

Configure Storage server that virtual machine images are placed.
For Storage server, it's OK to use NFS, iSCSI, GlusterFS and so on.
It uses NFS on this example.

[2]

Configure 2 KVM host server and mount a directory provided from Storage server on the same mount point on both KVM server. It uses [/var/kvm/images] for mount point on this example.

[3] Create and Start a Virtual Machine on a KVM Host and run Live Migration like follows.
For connection between KVM Hosts, they connects to others with SSH, so it had better to set SSH key-pair with root account before running live migration.
# if UFW is enabled, allow ports

root@kvm01:~#
ufw allow 16509/tcp

root@kvm01:~#
ufw allow 16514/tcp

root@kvm01:~#
ufw allow 49152:49215/tcp

Rule added
Rule added (v6)

# edit the setting of a VM you'd like to run live migration

root@kvm01:~#
virsh edit ubuntu2604
 <disk type='file' device='disk'>
      # add : change cache mode to [none]
      <driver name='qemu' type='qcow2' discard='unmap' cache='none'/>
      <source file='/var/kvm/images/ubuntu2604.img'/>

root@kvm01:~#
virsh start ubuntu2604

root@kvm01:~#
virsh list

 Id   Name         State
----------------------------
 1    ubuntu2604   running

root@kvm01:~#
virsh migrate --live ubuntu2604 qemu+ssh://10.0.0.51/system

root@kvm01:~#
virsh list

 Id   Name       State
--------------------------
# VM migrated
### on another KVM Host ###

root@kvm02:~#
virsh list

 Id   Name         State
----------------------------
 1    ubuntu2604   running

# back to the KVM Host again like follows

root@kvm02:~#
virsh migrate --live ubuntu2604 qemu+ssh://10.0.0.30/system

root@kvm02:~#
virsh list

 Id   Name       State
--------------------------

Matched Content