KVM : ストレージマイグレーション2025/01/17 |
|
仮想マシンのストレージマイグレーション機能の利用です。 ある KVM ホスト上で稼動している仮想マシンを、稼動させたまま別の KVM ホストに移動できます。 システムメンテナンス等で片方の KVM ホストを停止したい場合に、その上で稼動している仮想マシンを別の KVM ホストに移動させ、仮想マシンを常に稼働させたまま 片側のシステムのメンテナンスをするといったことが可能になります。 通常のライブマイグレーションと異なる点は、ライブマイグレーションでは 2 台の KVM ホストサーバーで利用する仮想マシンイメージはストレージサーバー上で共有されているため、仮想マシンの実体そのものは移動しませんが、 ストレージマイグレーションでは、仮想マシンイメージを格納するストレージサーバーは必要とせず、2 台の KVM ホストサーバー間で仮想マシンイメージそのものをマイグレートさせます。
Storage Migration
<------------------->
+----------------------+ +----------------------+
| [ KVM Host #1 ] |10.0.0.30 10.0.0.51| [ KVM Host #2 ] |
| +---------------------+ |
| kvm01.srv.world | | kvm02.srv.world |
+----------------------+ +----------------------+
|
| [1] |
2 台の KVM ホストサーバーを準備し、いずれか一方の KVM ホストサーバーで仮想マシンを作成しておきます。 |
| [2] | KVM ホストで Firewalld を有効にしている場合、必要なポートの許可が必要です。 |
|
[root@kvm01 ~]# firewall-cmd --add-service={libvirt,libvirt-tls} [root@kvm01 ~]# firewall-cmd --add-port=49152-49215/tcp [root@kvm01 ~]# firewall-cmd --runtime-to-permanent |
| [3] | 仮想マシンを作成した KVM ホスト側で仮想マシンイメージのファイルのサイズを調べ、もう一方の KVM ホスト側で、同じサイズの空ディスクイメージを作成しておきます。 |
|
# 仮想マシンのディスクイメージのサイズ確認 [root@kvm01 ~]# qemu-img info /var/kvm/images/centos10.img
image: /var/kvm/images/centos10.img
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 4.88 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: true
refcount bits: 16
corrupt: false
extended l2: false
Child node '/file':
filename: /var/kvm/images/centos10.img
protocol type: file
file length: 20 GiB (21478375424 bytes)
disk size: 4.88 GiB
Format specific information:
extent size hint: 1048576
### 相手先 KVM ホスト ### # 作成済み仮想マシンイメージと同サイズの空ディスクイメージ作成 [root@kvm02 ~]# qemu-img create -f qcow2 -o preallocation=falloc /var/kvm/images/centos10.img 21474836480 |
| [4] | 以上の準備が整ったら、仮想マシンを起動して、ライブストレージマイグレーションを実行します。 双方の KVM ホストで root ユーザーで SSH 接続するため、事前に SSH 鍵ペアを作成して設定しておくとよいでしょう。 |
|
[root@kvm01 ~]# virsh start centos10 [root@kvm01 ~]# virsh list Id Name State -------------------------- 1 centos10 running
[root@kvm01 ~]#
[root@kvm01 ~]# virsh migrate --live --copy-storage-all centos10 qemu+ssh://kvm02.srv.world/system virsh list Id Name State -------------------- # 稼働中の仮想マシンは移動した
### マイグレーション先の KVM ホスト ### [root@kvm02 ~]# virsh list Id Name State -------------------------- 2 centos10 running |
| Sponsored Link |
|
|