Nutanix AHV環境から外部ESXi環境へのVMディスクイメージのインポート
NutanixのAHV環境から仮想マシンディスクイメージをエクスポートし、Nutanix外で単体稼働している
ESXi環境にインポート検証してみました。
なお、Nutanixとしては公式にサポートしている手順はないそうですが
下記のKBを参考にしました。
KB 3059 AHV | How to migrate user VMs from AHV to Hyper-V/VMware ESXi/KVM
事前準備
まず、CVMへnutanixユーザでsshログインし、移行対象サーバの vmdisk_uuid を確認します。
確認コマンド
acli vm.get <VM name> include_vmdisk_paths=1 | grep -E 'disk_list|vmdisk_nfs_path|vmdisk_size|vmdisk_uuid'
$ acli vm.list | grep cent7-01 cent7-01 e45dc675-0072-4998-b95f-1c80fb159284 $ acli vm.get cent7-01 include_vmdisk_paths=1 | grep -E 'disk_list|vmdisk_nfs_path|vmdisk_size|vmdisk_uuid' disk_list { disk_list { vmdisk_nfs_path: "/default-container-106731/.acropolis/vmdisk/801839ec-00b3-45df-a3de-079d4fe0da59" vmdisk_size: 21474836480 vmdisk_uuid: "801839ec-00b3-45df-a3de-079d4fe0da59" disk_list { vmdisk_nfs_path: "/default-container-106731/.acropolis/vmdisk/ff27ddd1-da10-4e7f-9c12-662d5fae2e19" vmdisk_size: 10737418240 vmdisk_uuid: "ff27ddd1-da10-4e7f-9c12-662d5fae2e19"
ここで表示された、vmdisk_nfs_path の値を控えます。
今回の移行対象の仮想マシンは、2つのディスクを接続しているため2つ表示されています。
移行
ここから移行作業となります。
移行対象の仮想マシンを停止させます。
その後、qemu-img コマンドを使用してvmdkにコンバートします。
qemu-img コマンドはCVMにもあります。
この環境のCVMに入っている qemu-img コマンドのバージョンと、サポートされているフォーマットはこちらです。
また、デフォルトでシックからシンプロビジョニングに変換されるようです。
qemu-img version 2.9.0
Supported formats: blkdebug blkreplay blkverify bochs cloop dmg file ftp ftps host_cdrom host_device http https iscsi iser luks nbd nfs null-aio null-co parallels qcow qcow2 qed quorum raw replication sheepdog vdi vhdx vmdk vpc vvfat
コンバートコマンド
qemu-img convert -O <convert to format> <vdisk_path> <converted_path>
<convert to format> にはコンバートしたい形式を指定し(今回はvmdk)、<vdisk_path> には前述の手順で確認した
対象ディスクパスを記載、<converted_path> には出力先のパスを記載します。
下記はStorage Container直下に出力した際のコマンドです。
移行先のESXiがアクセスできる領域に出力するとスムーズかもしれません。
qemu-img convert -O vmdk nfs://127.0.0.1/default-container-106731/.acropolis/vmdisk/801839ec-00b3-45df-a3de-079d4fe0da59 nfs://127.0.0.1/default-container-106731/disk01.vmdk qemu-img convert -O vmdk nfs://127.0.0.1/default-container-106731/.acropolis/vmdisk/ff27ddd1-da10-4e7f-9c12-662d5fae2e19 nfs://127.0.0.1/default-container-106731/disk02.vmdk
この検証環境では、移行元のNutanixと移行先のESXiで共有できるストレージ環境がないため、
一度ファイルをダウンロードします。
CVMのポート2222にSFTPでアクセスします。
※ポート2222開いていない場合は、CVMにて以下を実行してポートを開放させます。
modify_firewall -o open -i eth0 -p 2222 -a
SFTPツールなどを使用して前述の手順でコンバートしたvmdkファイルをダウンロードします。
続いて先程ダウンロードしたvmdkファイルをESXi環境にアップロードします。
その後、仮想マシンを作成し、ディスクにvmdkファイルを接続して仮想マシンを起動すると無事に起動できました。
問題発生
しかし、スナップショットを取得すると下記のエラーが発生。
ロックされているため、ファイル にアクセスできません
スナップショットの取得中にエラーが発生しました: ファイルのロックに失敗しました。
ディスクの画面を確認すると「タイプ」なども空欄でちょっと表示がおかしい状態。
こちらのサイトを参考にさせていただき、ESXi上からvmkfstools コマンドでシンプロビジョニングのクローンを作成し、
再度仮想ディスクに接続し起動しなおしてみました。
https://acropolis.ninja/export-a-vm-from-nutanix-ahv-to-vmware-esxi/
vmkfstools -i disk01.vmdk disk01-01.vmdk -d thin vmkfstools -i disk02.vmdk disk02-01.vmdk -d thin
スナップショットも問題なく、ディスクの画面にもタイプが表示されるようになりました。
今のところは問題ないようです。
その他、バックアップツールを使用して外部環境に移行することも考えられるかもしれません。