CentOS 7
Sponsored Link

KVM : ストレージマイグレーション2018/05/19

 
仮想マシンのストレージマイグレーション機能の利用です。
ある KVM ホスト上で稼動している仮想マシンを、稼動させたまま別の KVM ホストに移動できます。 システムメンテナンス等で片方の KVM ホストを停止したい場合に、その上で稼動している仮想マシンを別の KVM ホストに移動させ、仮想マシンを常に稼働させたまま 片側のシステムのメンテナンスをするといったことが可能になります。
通常のライブマイグレーションと異なる点は、ライブマイグレーションでは 2台の KVM ホストサーバーで利用する仮想マシンイメージはストレージサーバー上で共有されているため、仮想マシンの実体そのものは移動しませんが、 ストレージマイグレーションでは、仮想マシンイメージを格納するストレージサーバーは必要とせず、2台の KVM ホストサーバー間で仮想マシンイメージそのものをマイグレートさせます。
                          Storage Migration
                        <------------------->
                        
+----------------------+                     +----------------------+
|  [   KVM Host #1  ]  |10.0.0.21   10.0.0.22|  [  KVM Host #2   ]  |
|                      +---------------------+                      |
|   kvm01.srv.world    |                     |    kvm02.srv.world   |
+----------------------+                     +----------------------+

[1]
2台の KVM ホストサーバーを準備し、いずれか一方の KVM ホストサーバーで仮想マシンを作成しておきます。
また、DNS や ローカル hosts 等で、両サーバーが正常に名前解決できる必要があります。
[2] KVM ホストで QEMU をアップデートしておきます。
[root@kvm01 ~]#
/usr/libexec/qemu-kvm -version

QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-156.el7), Copyright (c) 2003-2008 Fabrice Bellard
[root@kvm01 ~]#
yum -y install centos-release-qemu-ev
# 通常時は無効

[root@kvm01 ~]#
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-QEMU-EV.repo
# 以下により [qemu-kvm] パッケージは [qemu-kvm-ev] に置き換えられる

[root@kvm01 ~]#
yum --enablerepo=centos-qemu-ev -y install qemu-kvm-ev
[root@kvm01 ~]#
systemctl restart libvirtd

[root@kvm01 ~]#
/usr/libexec/qemu-kvm -version

QEMU emulator version 2.10.0(qemu-kvm-ev-2.10.0-21.el7_5.2.1)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
[3] KVM ホストで Firewalld を有効にしている場合、必要なポートの開放が必要です。
[root@kvm01 ~]#
firewall-cmd --add-service={libvirt,libvirt-tls} --permanent

[root@kvm01 ~]#
firewall-cmd --add-port=49152-49215/tcp --permanent

[root@kvm01 ~]#
firewall-cmd --reload

[4] 仮想マシンを作成した KVM ホスト側で仮想マシンイメージのファイルのサイズを調べ、もう一方の KVM ホスト側で、同じサイズの空ディスクイメージを作成しておきます。
# 仮想マシンイメージのサイズを表示

root@kvm01:~#
ll /var/kvm/images

total 1344456
-rw-------. 1 root root 32217432064 May 19 23:44 centos7.img

### 相手先 KVM ホスト ###

# 作成済み仮想マシンイメージと同サイズの空ディスクイメージ作成

root@kvm02:~#
qemu-img create -f qcow2 /var/kvm/images/centos7.img 32217432064

root@kvm02:~#
ll /var/kvm/images

total 196
-rw-r--r--. 1 root root 197120 May 20 00:19 centos7.img
[5] 以上の準備が整ったら、仮想マシンを起動して、ライブストレージマイグレーションを実行します。
root@kvm01:~#
virsh list

 Id    Name                           State
----------------------------------------------------
 1     centos7                        running

root@kvm01:~#
virsh migrate --live --copy-storage-all centos7 qemu+ssh://10.0.0.22/system

root@10.0.0.22's password:
root@kvm01:~#
virsh list

 Id    Name             State
--------------------------------------
# 稼働中の仮想マシンは移動した
### マイグレーション先の KVM ホスト ###

root@kvm02:~#
virsh list

 Id    Name                           State
----------------------------------------------------
 1     centos7                        running

# 元に戻す場合は通常のライブマイグレーションで OK

root@kvm02:~#
virsh migrate --live centos7 qemu+ssh://10.0.0.21/system

root@10.0.0.21's password:
root@kvm02:~#
virsh list

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

関連コンテンツ