12.5. 他のホストとの仮想マシンディスクイメージの共有
対応している KVM ホスト 間で仮想マシンのライブマイグレーションを実行するには、仮想マシンの共有ストレージが必要です。次の手順では、NFS プロトコルを使用して、ローカルに保存された仮想マシンイメージをソースホストおよび宛先ホストと共有する方法について説明します。
前提条件
- 移行に使用する仮想マシンがシャットダウンしている。
- (必要に応じて) 移行元ホストまたは移行先ホストではないストレージをホストするのにホストシステムを使用できるが、移行元ホストと移行先ホストの両方がネットワーク経由でアクセスできる。これは共有ストレージに最適なソリューションで、Red Hat が推奨しています。
- KVM では対応していないため、NFS ファイルのロック機能を使用しない。
NFS が移行元および移行先ホストにインストールされ、有効になっている。有効でない場合は、以下を行います。
NFS パッケージをインストールします。
# {PackageManagerCommand} install nfs-utils
2049 などの NFS のポートがファイアウォールで開いていることを確認します。
# firewall-cmd --permanent --add-service=nfs # firewall-cmd --permanent --add-service=mountd # firewall-cmd --permanent --add-service=rpc-bind # firewall-cmd --permanent --add-port=2049/tcp # firewall-cmd --permanent --add-port=2049/udp # firewall-cmd --reload
NFS サービスを起動します。
# systemctl start nfs-server
手順
共有ストレージを提供するホストに接続します。この例では、
example-shared-storage
ホストです。# ssh root@example-shared-storage root@example-shared-storage's password: Last login: Mon Sep 24 12:05:36 2019 root~#
ディスクイメージを保持し、移行ホストと共有されるディレクトリーを移行元ホスト上に作成します。
# mkdir /var/lib/libvirt/shared-images
移行元ホストから新規作成されたディレクトリーに仮想マシンのディスクイメージをコピーします。次の例では、仮想マシンのディスクイメージ
example-disk-1
をexample-shared-storage
ホストの/var/lib/libvirt/shared-images/
ディレクトリーにコピーします。# scp /var/lib/libvirt/images/example-disk-1.qcow2 root@example-shared-storage:/var/lib/libvirt/shared-images/example-disk-1.qcow2
ストレージを共有するのに使用するホストで、
/etc/exports
ファイルに共有ディレクトリーを追加します。次の例では、/var/lib/libvirt/shared-images
ディレクトリーをexample-source-machine
ホストおよびexample-destination-machine
ホストと共有します。# /var/lib/libvirt/shared-images example-source-machine(rw,no_root_squash) example-destination-machine(rw,no\_root_squash)
移行元ホストと移行先ホストの両方で、共有ディレクトリーを
/var/lib/libvirt/images
ディレクトリーにマウントします。# mount example-shared-storage:/var/lib/libvirt/shared-images /var/lib/libvirt/images
検証
- 移行元ホストで仮想マシンを起動し、正常に起動するかどうかを確認します。