KVMの仮想サーバをVMwareに移行する

サーバ

KVMで仮想サーバを稼働していて、VMwareに移行する手順を記載します。通常は、VMwareを使用していて、ソフト代が高いから、フリーのKVMに乗り換えるパターンが多いかと思います。そのため、VM→KVMの事例はググるとたくさん出てきますが、その逆はあまりないので、実際に試した結果を残しておきます。

動作環境

移行元のKVMは、CentOS8 stream で稼働しています。
移行先のVMwareは、バージョン7の環境になります。
移行する仮想OSは、AlmaLinux8になります。

基本的には、同じネットワーク環境へ移設する想定ですので、IPアドレス等の変更はなく、KVM環境で動作していた内容で、そのままVMware環境で動作させることを想定しています。

KVM環境での作業

まず、イメージのバックアップを実施します。バックアップ領域へ、現イメージファイルをコピーして、そのバックアップしたファイルを変換しました。この時、元のイメージはあえて動かしながら実施しています。まぁサービスを実施していないため特に外部からのアクセスはなしですが。

まず、以下の内容のとおり、イメージのバックアップを実施します。

# cd /guestos/backup/vm_ikou_test/

# cp /guestos/var/lib/libvirt/images/almalinux8.img ./
# chown qemu:qemu almalinux8.img

次に、バックアップしたイメージ( almalinux8.img )をVMの形式へ変換(vm_alma.tmp.vmdk)します。あえて tmp が付いたファイル名にしているのは、後ほどさらに変換が必要なためです。

# qemu-img convert -f qcow2 almalinux8.img -O vmdk vm_alma.tmp.vmdk

ここで実行したコマンドは数秒です。(もっとかかると思っていたけど)
変換後のファイルの内容は、以下のような感じでした。微妙にサイズが変わってます。

# ls -l
合計 11231820
-rw-------. 1 qemu qemu 5785714688  5月 25 10:30 almalinux8.img
-rw-------. 1 root root 5720178688  5月 25 10:34 vm_alma.tmp.vmdk

イメージファイルの移設

変換したイメージファイル(vm_alma.tmp.vmdk)を、VMware環境に持っていきます。

私の環境は、KVMとVMwareのホストが別ネットワークで稼働していましたので、一度自分のPCにSCPでイメージファイルをコピーしました。その後、vCenter 経由で、ESXiサーバにイメージをコピーしています。こちらはご使用の環境に応じて対応してください。

ここでは、ESXiサーバのローカルストレージに、kvm_ikoku_test というフォルダを作成し、そちらに配置しております。

VMware側での作業

SSHでホストサーバへ接続します。
Teratermでうまくログインできなかったのですが、ユーザー名に「root」と入力して、認証方式の「キーボードインタラクティブ認証を使う」を選択すると、ログインできました。

ログインができたら、ディレクトリを移動して、イメージ変換コマンド(vmkfstools)を実行します。

# cd /vmfs/volumes/datastore1/kvm_ikou_test/
# vmkfstools -i vm_alma.tmp.vmdk -d thin vm_alma.vmdk

変換が終了したら、vCenterから「新規仮想サーバ」を追加します。

この時のポイントは、「ハードウェアのカスタマイズ」の部分で新規デバイスを追加して、既存のハードディスクから、上記で変換したイメージを選択します。またデフォルトで追加されているハードディスクは削除しておきます。

このままでは起動してこないので、almalinuxのisoイメージをマウントし起動します。

DVDブートで起動後、”Troubleshooting” を選択し、レスキューモードで起動します。シェルが起動したら、以下のコマンドを実行します。

### OS上での操作へ移行
$ chroot /mnt/sysimage /bin/bash

### カーネルの再作成
$ dracut --regenerate-all --force

$exit 
$reboot

vCenterよりDVDのマウントを解除し、OSを起動します。

もし、青い画面(Boot Manager)が出て、OSが起動しない場合は、仮想マシンオプションの設定から、ファームウェアを「BIOS」に変更してみてください。(下記図参照)

ファームウェアをBIOSに変更

OSが起動してきましたら、ネットワーク(NIC)が初期化されてしまっているので、設定を実施してネットワークに接続できることを確認します。

今回はここまでです。最後までお読みいただきありがとうございました。