KVM : ライブマイグレーション2025/10/29 |
|
仮想マシンのライブマイグレーション機能の利用です。
ある KVM ホスト上で稼動している仮想マシンを、稼動させたまま別の KVM ホストに移動できます。
前提として、2 台の KVM ホストサーバー、および、 仮想マシンイメージを格納するストレージサーバーの、計 3 台のサーバーが必要となります。
+----------------------+
| [ 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] |
仮想マシンイメージ格納用のストレージサーバーを構築しておきます。 |
| [2] |
2 台の KVM ホストサーバーを準備し、両サーバーで同じディレクトリに NFS 共有ディレクトリをマウントしておきます。 |
| [3] | KVM ホストで SELinux を有効にしている場合 且つ 当例のように NFS 共有ディレクトリを利用する場合はブール値の変更が必要です。 |
|
kvm01:~ # setsebool -P virt_use_nfs on
|
| [4] | KVM ホストで Firewalld を有効にしている場合、必要なポートの許可が必要です。 |
|
kvm01:~ # firewall-cmd --add-service={libvirt,libvirt-tls} kvm01:~ # firewall-cmd --add-port=49152-49215/tcp kvm01:~ # firewall-cmd --runtime-to-permanent |
| [5] | いずれか一方の KVM ホストで任意の仮想マシンを作成し、他方の KVM ホストへライブマイグレーションを実行します。 成功すると、以下のように他方の KVM ホストサーバーに仮想マシンがマイグレートされます。 双方の KVM ホストで root ユーザーで SSH 接続するため、事前に SSH 鍵ペアを作成して設定しておくとよいでしょう。 |
|
# 事前にマイグレーションしたい仮想マシンの設定を調整 kvm01:~ # virsh edit opensuse16
<disk type='file' device='disk'>
# 追記:キャッシュモードを [none] に変更
<driver name='qemu' type='qcow2' cache='none' discard='unmap'/>
<source file='/var/kvm/images/opensuse16.img'/>
kvm01:~ # virsh start opensuse16 kvm01:~ # virsh list Id Name State ---------------------------- 5 opensuse16 running
kvm01:~ #
kvm01:~ # virsh migrate --live opensuse16 qemu+ssh://kvm02.srv.world/system virsh list Id Name State -------------------- # 稼働中の仮想マシンは移動した
### マイグレーション先の KVM ホスト ### kvm02:~ # virsh list Id Name State ---------------------------- 2 opensuse16 running # 元に戻す場合は同じように 相手先 KVM ホストのホスト名 または IP アドレスを指定してマイグレーションを実行 kvm02:~ # virsh migrate --live opensuse16 qemu+ssh://kvm01.srv.world/system virsh list Id Name State -------------------- |
| Sponsored Link |
|
|