jimaoka blog

ライトなインフラエンジニアです

KVMからESXiへのインスタンスマイグレーション

目次

以前までKVMメインで仮想マシンを立てていたのですが、ESXiへ移行するためにマイグレーションを行いました。
けっこうハマる部分が多かったので、手順を記録しておきます。

今回移行を行ったホストはCentOS7だったのですが、特有の手順があるかもしれません。

移行元: KVM on CentOS7
移行先: VMware vSphere Hypervisor 6.5(無償版)

KVMハイパーバイザでイメージファイルの変換

### qemu-imgのインストール
% sudo yum install qemu-img
 
### vmdk形式への変換
% sudo qemu-img convert -f qcow2 /var/lib/libvirt/images/centos.img -O vmdk centos.tmp.vmdk -o compat6

ESXiホスト側での変換

先ほど作成した centos.tmp.vmdk をESXiホストへコピーしておきます。(/vmfs/volumes/datastore1/centos.tmp.vmdk)

$ mkdir /vmfs/volumes/datastore1/centos
$ vmkfstools -i /vmfs/volumes/datastore1/centos.tmp.vmdk  -d thin /vmfs/volumes/datastore1/centos/centos.vmdk
$ rm /vmfs/volumes/datastore1/centos.tmp.vmdk
 
### ddb.adapterType = "idle" -> ddb.adapterType = "lsilogic"
$ vi /vmfs/volumes/datastore1/centos/centos.vmdk
- ddb.adapterType = "idle"
+ ddb.adapterType = "lsilogic"

ESXi上でホストの起動

通常のインスタンス起動と同じ手順で

f:id:jimaoka:20171210173824p:plain

デフォルトで作成されるストレージを削除して

f:id:jimaoka:20171210173949p:plain

"Existing hard disk" より、datastore1/centos/centos.vmdkを選択すればインポートできます。

f:id:jimaoka:20171210173958p:plain

バイス設定のリセット

使用するデバイスが元環境と異なるせいか、このままではOSが起動してこないので、レスキューモードでカーネルの再作成を行います。

CentOS7のインストールディスクをアタッチする

f:id:jimaoka:20171210174552p:plain

f:id:jimaoka:20171210174702p:plain

起動後、"Troubleshooting" を選択

f:id:jimaoka:20171210174853p:plain

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

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

NW設定の修正

VMを立ち上げたあと、NWデバイス名が異なっているからか、NW設定が消えているので修正しておきます。