見出し画像

仮想マシンの仮想基盤 KVM へ移行を試してみました

みなさん、こんにちは。わっくぼです。
今年は3月になって寒くなる事が多く、また、急に暑くなって体調の管理が難しい日々です。

さて、今回は VMware社のESXi が2月で提供終了との事で、Linux の検証用途に ESXi を利用していましたが、次の仮想基盤に何を採用すべきか悩ましいところがあります。

所属しているウイングアーク1stでは、Microsoft社 Windows サーバーの機能である、Hyper-Vを主に利用しています。
前回の note にも公開をしていますが、GPU のパススルーを利用するケースになると、Linux の KVM などを利用するケースが稀にあります。

今回は、KVM の移行について書きたいと思います。

仮想マシンを OS から再構築すれば安定した環境になりますが、移行する時間が掛かるため、V2V (仮想環境から仮想環境)で行います。

移行元は、VMware、Hyper-Vの Linux 仮想マシンを KVM 環境に移行してみたいと思います。

Hyper-V の vhdx 形式

第2世代マシン(UEFI起動)にて、Rocky Linux 8 を移行します。
この仮想マシンの仮想ハードディスクは RockyLinux.vhdx で構築されています。 

Hyper-V環境で稼働している Rocky Linux 8

1.移行する仮想マシンを停止した状態にて、vhdx ファイルを取得します。
2.KVM が稼働している環境に vhdx ファイルを転送します。
3.以下のコマンドを実行し KVM 用の仮想ハードディスクファイル(qcow2ファイル)に変換します。

# qemu-img convert -f vhdx -O qcow2 RockyLinux.vhdx RockyLinux.qcow2

4.仮想マシンのインポートコマンド(virt-install --import)を使用して、移行した仮想ハードディスクを使用した仮想マシンを作成します。

# virt-install --import \
--name RockyLinux \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/RockyLinux.qcow2 \
--network bridge=br0 \
--os-variant rocky8-unknown \
--graphics vnc \
--machine q35 \
--boot uefi \
--autoconsole none

5.Linux の起動が出来たら、仮想ネットワークカードが変わるためネットワークの設定を変更します。
Linux の起動が出来なかった場合は、その他の情報を確認してみてください。

移行後のコンソール画面

以上で完了です。

VMware の vmdk 形式

BIOS 起動の ubuntu server 22.04 を移行します。
この仮想マシンの仮想ハードディスクは ubuntu.vmdk で構築されています。 

VMware 環境で稼働している Ubuntu 22

※1つの仮想ハードディスクが複数のファイルで構成されている場合は、全てのファイルを取得および移行先に転送する必要があります。

1.移行する仮想マシンを停止した状態にて、vmdk ファイルを取得します。
2.KVM が稼働している環境に vmdk ファイルを転送します。
3.以下のコマンドを実行し KVM 用の仮想ハードディスクファイル(qcow2ファイル)に変換します。

# qemu-img convert -f vmdk -O qcow2 ubuntu.vmdk ubuntu.qcow2

4.仮想マシンのインポートコマンド(virt-install --import)を使用して、移行した仮想ハードディスクを使用した仮想マシンを作成します。

# virt-install --import \
--name ubuntu \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu.qcow2 \
--network bridge=br0 \
--os-variant ubuntu22.04 \
--graphics vnc \
--autoconsole none

5.Linux の起動が出来たら、ネットワークカードが変わるためネットワークの設定を変更します。
Linux の起動が出来なかった場合は、その他の情報を確認してみてください。

移行後のコンソール画面

以上で完了です。

最後に

今回は、Linux 環境の仮想環境を移行してみました。
仮想マシンの環境に準仮想化のドライバーが導入されている場合は、移行は一筋縄ではいかないようです。

仮想基盤の移行は、事前の確認が必要になりますので余裕を持ったスケジュールにて作業を進めて頂く事をお勧めします。

その他の情報

仮想ディスクが使用する接続パスが virtio に変わるため、起動時にディスクに接続が出来ず、dracut 緊急シェルモードになることがあります。

緊急シェルモード

レスキューモードで Linux を起動し、initramfs のバックアップを取得後に、initramfs を作り直す手順になります。

Make backup
    # cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak

Build Initramfs
    # dracut -f /boot/initramfs-<kernelVersion>.img  <kernelVersion>

ストレージのインターフェースを sata に変更すると起動する可能性がありますが、パフォーマンス面では initramfs の再構築がお勧めになります。


この記事が気に入ったらサポートをしてみませんか?