AzureからOCIへWindows VMを移行する手順(完全ガイド)

Multi-Cloud

初めに

Azure Windows VMをOracle Cloud Infrastructure(OCI)へ移行したいと考えている方も少なくないでしょうか。

本記事では、Windows VMを手動でOCIへ移行する方法を、ステップごとにわかりやすく解説します。AzureからVMをエクスポートし、VHD形式のディスクをQCOW2へ変換した後、OCI Object Storageへアップロードしてカスタム・イメージを作成し、OCI上でインスタンスを起動するまでの一連の手順を詳しく紹介します。

マルチクラウド環境を検討している方の参考になれば幸いです。

検証環境
Azure (Japan East), OCI (東京リージョン)
Windows VM バージョン:Windows Server 2019 Datacenter (Gen1)
VM ディスク容量:127 GiB

ステップ
STEP-1~STEP-2はAzure側で実施し、STEP-5~STEP-6はOCI側で実施します。
STEP-3~STEP-4の作業は、クラウド環境でもオンプレミス環境でも実施できます。本例では、Azure上のWindows VM(移行対象とは別のVM)で実施します。
Migrate Azure Windows VM to OCI

作業の目安時間
ディスク容量がデフォルトの127GiBの場合に測定した時間です。

ステップ処理内容時間(min)実施場所コメント
1ドライバーのインストール10Azure
(作業用VM)
事前にアカウントを用意
2VHDファイルのダウンロード50Azure
(作業用VM)
ローカルへ
3イメージフォーマットの変換
(VHD → QCOW2)
30Azure
(作業用VM)
QEMUを利用
4OCI Object Storageへ
イメージをコピー
17Azure
(作業用VM)
Rcloneを利用
5イメージのインポート12OCI
6Computeインスタンスの新規作成12OCI

1. Oracle VirtIOドライバーのインストール (Azure側)

OCIで利用するように、Windows VMにOracle VirtIOドライバーのインストールする必要があります。
詳細は、こちらのオフィシャル記事をご参照ください。

ドライバーのダウンロード
ダウンロードサイト:Oracle Software Delivery Cloud (アカウントが必要です。)
現時点(2022年1月)の最新バージョン: 1.1.7 (67.90 MB)

検索ボックスにoracle linuxを入力し、検索結果一覧からDLP:Oracle Linux 7.9.0.0.0 ( Oracle Linux )をクリックしたら、カートに追加されます。画面右上のContinueボタンをクリックし続行します。
Oracle Software Delivery Cloud (Oracle Linux)

x86 64 bitを選択し、進んでください。
Oracle Software Delivery Cloud (Oracle Linux: x84 64 bit)

"Oracle Standard Terms and Restrictions"を承認した後、下記の画面が表示されます。一番下のV1009702-01.zipをクリックし、ダウンロードを開始します。
Oracle Software Delivery Cloud (V1009702-01.zip)
ダウンロード後、Zipファイルを移行対象のWindows VMにコピーしてください。

ドライバーのインストール
圧縮ファイルを解凍してから、setup.exeを実行してください。
Run setup.exe

Installボタンをクリックし、インストールを開始します。
Begin to install

インストール後、VMの再起動が必要です。
Restart computer

2. Windows VMのエクスポート (Azure側)

VMを停止してください。
Stop Windows VM

Settings → Disks → ディスク名をクリック
Click disk name

Settings → Disk Export → Generate URLをクリック
デフォルトのURLの有効時間は1時間(3600秒)です。ディスク容量が大きい場合、多めに設定してください。
Generate URL

Download the VHD fileをクリックし、ダウンロードを開始します。
Download the VHD file

ファイルをローカルに保存します。(デフォルト名は、abcdです。)
Save file

ディスク容量とネットワーク回線の速度により、ダウンロード時間は異なります。
同じAzureリージョン内のWindows VMにダウンロードした場合、デフォルトの127GiBで約50分かかりました。

3. イメージ・フォーマットの変換 (VHD → QCOW2)

エクスポートされたファイルのフォーマットはVHDで、OCIでサポートされているQCOW2形式に変換する必要があります。この例では、QEMUというツールを利用します。

ダウンロード・サイト:https://www.qemu.org/download/
サポートOS:Linux, Mac, Windows

今回は、Windows(64bit)版を利用します。
QEMU Binaries for Windows (64 bit)

ダウンロード後、ファイルを実行し、インストールを開始します(詳細を省略)。
インストール後、PATH環境変数にC:\Program Files\qemuを追加してください。
Edit environment variables

変換処理のコマンド: (VHD → QCOW2)
qemu-img.exe convert -f vpc -O qcow2 azure2oci.vhd azure2oci.qcow2

E:\>ren abcd azure2oci.vhd

E:\>qemu-img.exe convert -f vpc -O qcow2 azure2oci.vhd azure2oci.qcow2

E:\>dir
 Volume in drive E is New Volume
 Volume Serial Number is 8CC3-C88D

 Directory of E:\

01/28/2022  06:36 PM    14,846,787,584 azure2oci.qcow2
01/28/2022  05:06 PM   136,367,309,312 azure2oci.vhd
01/27/2022  11:17 PM    <DIR>          rclone-v1.57.0-windows-amd64
               2 File(s) 151,214,096,896 bytes
               1 Dir(s)  385,453,883,392 bytes free

E:\>

変換処理には約30分かかりました。変換されたファイルのサイズは、元のファイルより非常に小さくなりました。

4. ディスク・イメージをOCI Object Storageにアップロード

方法はいくつかあります。この例では、Rcloneという転送ツールを利用します。
インストールとOCIへの接続設定を省略します。(詳細は以下の記事をご参照ください。)
RcloneでAzure BlobからOCIオブジェクト・ストレージにデータをコピーする方法

ローカルから、OCIのバケット(Disk_Image)にファイルをコピーします。(バケットを事前に作成しておいてください。)

E:\>rclone ls oci:Disk_Image

E:\>rclone copy azure2oci.qcow2 oci:Disk_Image

E:\>rclone ls oci:Disk_Image
14846787584 azure2oci.qcow2

E:\>

この例のコピー時間は、約17分間でした。(サイズ14 GBで、Azure VM → OCI Bucket)

5. OCI Object Storageからイメージをインポート (OCI側)

Menu → Compute → Custom Images → Import image
Click import image button

必要な情報を入力し、インポートを開始します。(「準仮想化モード(Paravirtualized mode)」を選択します。)
Enter image information (1)
Enter image information (2)

「Work requests」画面で状態を確認できます。インポート・タスクには約12分間かかりました。
Work request (Succeeded)

6. インポートされたイメージでOCIインスタンスを作成 (OCI側)

Menu → Compute → Instances → Create Instance → Change image
「Image source」で、「Custom images」を選択してから、インポートされたイメージ・ファイルを指定します。
Select imported image

その他の必要な情報を入力し、インスタンスの作成を開始します。
Create compute instance

作成完了まで約12分間かかりました。
Instance is running

RDP経由で新しいインスタンスに接続する
ログイン・ユーザーは移行元VMと同じです。
Enter your credentials

無事にログインでき、これでVMの移行作業は完了です。
Windows desktop

本記事の例では、Azure Windows VM Gen1を利用しています。最新リリースされたVM Gen2(デフォルトの選択肢)を利用する場合、STEP1からSTEP6のインスタンス新規作成まで、エラー発生せず実施できますが、RDPで新インスタンスに接続しようとすると、接続できないこと確認しました。

RDP connection error

VNCコンソール接続で確認しますと、「ディスク起動中の状態に止まっている」のようなメッセージが表示されます。この状態でも、OCIコンソール上の新インスタンスの状態は、「実行中(Running)」と表示されているので、ご注意ください。
VNC console

以上

公式ドキュメント
【Oracle】- KVMで使用するためのOracle VirtIO Drivers for Microsoft Windows
【Azure】 - Download a Windows VHD from Azure

タイトルとURLをコピーしました