【Azure VM】Azure の仮想マシンを VMware に移行する【VMware ESXi】

# はじめに

どうも、ATLのヴィリアスです。
先日、 Azure 仮想マシンを VMware に移行しました。

2022年10月現在、 Azure と VMware 間の移行について
「VMware → Azure」の情報はインターネットにたくさん転がっていますが、
**「Azure → VMware」の情報はまったくありません。**(クラウドからオンプレに移行するケースがあまりないのかも)

そのため、今回は「**Azure → VMware**」**の仮想マシン移行手順**を記事にすることにしました。

**※免責事項(必ず、ご一読ください)**
　　本記事の情報により生じた、いかなる損害や損失についても、当社は一切の責任を負いかねます。
　　また、誤情報が入り込んだり、情報が古くなったりすることもありますので、
　　必ずしも正確性を保証するものではありません。ご了承ください。

# 環境

**ハイパーバイザー**: VMware ESXi 6.7.0
**仮想マシンのOS**: Windows Server 2012 R2 Datacenter

# Azure Portal から仮想マシンのディスク (VHD) をダウンロードする

Azure で稼働している仮想マシンの C ドライブ や D ドライブをダウンロードしていきます。

まず、該当の仮想マシンのページへ行きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/b307fef6-2a33-e01b-f61b-bd527bb253ae.png)

仮想マシンを停止します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/275ffabd-7149-99a7-6fff-b9bf631ef435.png)

停止したら、左メニューの [**ディスク**] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/613bbb3d-d591-9aa1-cbd0-cc400f6c1835.png)

**OS** ディスクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/2af67595-9e96-70a2-1ee6-dca2804299e7.png)

[**スナップショットの作成**] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/614889bc-9a6b-b096-e755-c707777c9b3b.png)

:::note warn
仮想マシンのページに「**キャプチャ**」というものがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/e7f685ba-d65b-0a20-39c3-a14dd7eaf857.png)

「スナップショット」に似ていますが、「キャプチャ」をすると
キャプチャ元の仮想マシンが **"一般化" され、使用できなくなります。**

今回は Azure の仮想マシンをそのまま VMware に移行したいため、
「スナップショット」を使っています。

※ "一般化" とは、コンピューター固有の情報を削除し、新たな仮想マシンに適用可能にすること。
(仮想マシンのテンプレートを作成するイメージです。)

:::

[**名前**] は任意の値を入力します。
[**スナップショットの種類**] は**フル**を選択します。
[**ストレージの種類**] は **"Standard HDD"** を選択しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/db3149d0-1bf0-ae01-86d9-575b8a72b0cd.png)

[**確認および作成**] ボタンを押下し、内容が問題なければ [**作成**] ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/57037f42-9809-359b-5ea2-a7fab593ec5e.png)

スナップショットが作成されたら、そのスナップショットのページへ行きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/0d18babf-8155-e0e8-7ac1-903de8599608.png)

左メニューの [**スナップショットのエクスポート**] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/dc60bfce-d977-64f4-3a15-2005020f2745.png)

[**URL の期限が切れるまでの秒数**] については、任意の値を入力します。
目安としては、「**この後のダウンロードにかかる時間 + 7200**」の値がオススメです。
私の環境では、 100GB のディスクのダウンロードに 2~3 時間、 500GB で 8~9 時間かかりました。

ちなみに、 URL の期限が切れてしまうとダウンロードが中断されます。

秒数を入力したら、 [**URL の生成**] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/023cbbe7-113f-7309-3249-ba1eba4945b2.png)

**生成された URL を検索バーに入力**または **"VHD ファイルのダウンロード" のクリック**で VHD をダウンロードできます。
URL は別ページに遷移してしまうと、再表示できないためメモをしておきます。
もし、メモしそびれた場合は [**エクスポートのキャンセル**] をクリックし、再度 URL を生成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/3f8aaa60-641a-b3f6-d79d-532c64dd4475.png)

**ダウンロードが完了するまで待ちます。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/ecfe5169-ad1c-869c-0f40-67e393d2f258.png)

ダウンロードが完了したら、次に VHD を VMDK に変換していきます。

:::note info
**データディスクが存在する場合、忘れず同様にダウンロードします！**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/41e3be8a-d392-cf25-9001-4303321126ab.png)
:::

# VHD を VMDK に変換する

VHD は VMware では使用できません。
そのため、 **VMware で使用できるファイル形式 VMDK に変換する必要があります。**

「**qemu-img**」を使用し、 VHD を VMDK に変換します。

## qemu-img をインストールする

次のサイトにアクセスします。

https://cloudbase.it/qemu-img-windows/

サイト下部に**ダウンロードボタン**があるので、クリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/89c3b862-b7a7-1aa4-1dfc-294768bba513.png)

**ZIPファイルがダウンロードされるので、任意のフォルダにて解凍します。**
私は "C:\Program Files" にて解凍しました。

解凍後のファイル構成はこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/5ca8f6c7-4a2f-6b60-74b2-6a4e48786542.png)

ZIPファイルの解凍後に
環境変数の設定にて「**qemu-img.exe**」が格納されているフォルダへのパスを追加します。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/ae0b1c69-3a8c-caec-0f9b-dd1d4175a1b4.png)

## qemu-img のコマンド

コマンドプロンプトにて VHD が格納されているフォルダに移動し、
VMDK に変換するコマンド (```convert```) を実行します。

VHD のサイズが大きいほど、変換にも時間がかかります。
私の環境では 100GB で 20~30 分、 500GB で **6 時間**かかりました。

```
# VHD を VMDK に変換する (convert)
> qemu-img convert -O vmdk <source_file>.vhd <destination_file>.vmdk

# VMDK の情報を出力する (info)
> qemu-img info <source_file>.vmdk

# VMDK が破損していないかをチェックする (check)
> qemu-img check <source_file>.vmdk
```

その他、```info```や```check```などのコマンドもあります。

```check```は、**変換後のファイルを VMware にアップロードする前に
ファイルが破損していないかをチェック**するために使います。

VHD を VMDK に変換できたら、次に VMware にファイルをアップロードしていきます。

:::note warn
もし```check```で VMDK が破損しているのを確認したら、VHD を```convert```で変換し直します。

:::

# VMware に VMDK をアップロードする

仮想マシンの C ドライブや D ドライブとなる VMDK を
VMware にアップロードしていきます。

VMware に**ログイン**します。本記事では VMware ESXi を使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/6d0f7ed8-1615-12b1-4eba-632b13c198a8.png)

左メニューの [**ストレージ**] を展開し、任意のデータストアを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/3a1f1cd2-fcf1-39f0-170d-a333450d3436.png)

:::note warn
データストアが存在しない場合は、新規に作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/aed50b5f-030c-d9f1-00db-38b31131704b.png)
:::

[**データストアブラウザ**] をクリックし、任意の箇所に VMDK をアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/572ee961-b0d9-b788-9419-d7af1dc7a687.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/a6c360bf-6d15-d2f8-865e-593d4a1edd70.png)

VMDK のアップロードが完了するまで、少し時間がかかります。
アップロードが完了したら、いよいよ仮想マシンを作成していきます。

# 仮想マシンを作成する

左メニューの [**仮想マシン**] をクリックし、 [**仮想マシンの作成/登録**] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/238373d8-7ebe-78fb-b9b7-5af8028ee035.png)

## 作成タイプの選択

[**新規仮想マシンの作成**] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/407b8e21-43f5-ffa1-1244-2e8d7ff71453.png)

## 名前とゲスト OS の選択

[**名前**] は任意の値を入力します。
[**互換性**] は "ESXi 6.7 仮想マシン" を選択しました。
[**ゲスト OS ファミリ**]、[**ゲスト OS のバージョン**] は Azure からダウンロードした OS や バージョンに合わせます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/72bca099-5087-1f84-cf0a-18f6af1f569f.png)

## ストレージの選択

ストレージは任意のデータストアを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/ae46a959-9751-90c3-f001-082e05d03d78.png)

## 設定のカスタマイズ

### 仮想ハードウェア

以下の設定値は、記事用のものです。
実際は、作成する仮想マシンに合わせて設定値を変更してください。

| 項目名 | 値 |
|:--|:--|
| CPU  | 2  |
| メモリ  | 4096MB  |
| ハードディスク 1  | 既存の 40GB のハードディスクは削除します。<br>そして、[**ハードディスクの追加**] > [**既存のハードディスク**] から<br>先ほどアップロードした VMDK (**OS ディスク**) を選択します。<br><br>ハードディスク設定の [コントローラの場所] は<br>**"IDE コントローラ 0", "マスター"** を選択します。<br>その他は、既定値で大丈夫です。<br><br>※OS ディスクの他に、データディスクがある場合は<br>上記の手順で同様に追加します。<br>その際、[コントローラの場所] は<br>"IDE コントローラ 0", **"スレーブ"** を選択します。
| SCSI コントローラ 0 | LSI Logic SAS  |
| SATA コントローラ 0 | -  |
| USB コントローラ 1 | USB 2.0  |
| ネットワークアダプタ 1 | VM Network  |
| CD/DVDドライブ 1 | ホストデバイス  |
| ビデオカード | デフォルト設定  |

### 仮想マシンオプション

何も変更しません。既定値で大丈夫です。

## 設定の確認

設定値を再確認します。
問題がなければ [**完了**] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/a5300d5c-eca9-7590-47ce-179195a49f97.png)


すると、すぐに仮想マシンが作成されます。

# 仮想マシンを起動する

仮想マシンが作成できたら、起動していきます。

[**パワーオン**] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/194ce559-404c-ef35-58fc-3e226b8e7e33.png)

**正しく設定できていれば、仮想マシンが起動します！**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/7b253dba-1e5a-9fde-4cfd-f9bbfc34445c.png)

# おわりに

当時、自分が作業していたときは
Azure から VMware に移行する方法がどこにも転がっていなかったので、上手くいくのか不安でした。

ですが、意外にもすんなりと仮想マシンの起動まで行き着けたので、拍子抜けしてしまいました。

もし私以外にも、「クラウドからオンプレに仮想マシンを移行したい！」という方がいたら
ぜひこの記事を参考にしていただければ嬉しいです。