5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AzureからWindows VMをOracle Cloudに移行

Last updated at Posted at 2022-01-29

本ブログは、オラクル・クラウドの個人ブログの1つです。

初めに

利用中のクラウドから、他クラウドにリソースを移行したい時、VMの移行は重要なタスクになります。AzureからWindows VMをOCI(Oracle Cloud Infrastructure)に手動で移行する方法を紹介したいます。少しお役に立てれば幸いです。

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

ステップ

1. Oracle VirtIOドライバーのインストール (Azure側)
2. Windows VMのエクスポート (Azure側)
3. イメージ・フォーマットの変換 (VHD to QCOW2)
4. ディスク・イメージをOCIにアップロードする
5. OCIオブジェクト・ストレージからイメージをインポートする (OCI側)
6. インポートされたイメージでOCIインスタンスを作成 (OCI側)

STEP-1~2はAzure側で実施します。STEP-5~6は、OCI側で実施します。
STEP-3~4までの実施場所は、固定ではないで、クラウド側か或いはローカルどちらでもOKです。
image.png

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

ステップ 処理内容 時間(分) コメント
2 VHDファイルのダウンロード 50 Azure Windows VMで実施
ローカルへ
3 フォーマット変換
VHD → QCOW2
30 Azure Windows VMで実施
QEMUを利用
4 オブジェクト・ストレージへ
イメージをコピー
17 Azure Windows VMで実施
rcloneを利用
5 イメージのインポート 12 OCIで実施
6 インスタンスの新規作成 12 OCIで実施

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ボタンをクリックし続行します。
image.png

x86 64 bitを選択し、進んでください。
image.png

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

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

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

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

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

VMを停止してください。
image.png

Settings -> Disks -> ディスク名をクリック
image.png

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

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

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

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

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

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

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

今回は、Windows(64bit)版を利用します。
image.png

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

変換処理のコマンド: (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にアップロードする

やり方は、いろいろがあります。この例では、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オブジェクト・ストレージからイメージをインポートする (OCI側)

Menu -> Compute -> Custom Images -> Import image
image.png

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

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

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

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

その他の必要な情報を入力し、作成を開始します。
image.png
作成完了まで約12分間かかりました。
image.png

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

ここまで無事にVMの移行作業が終わりました。
image.png

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

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

以上

関連記事
オラクル・クラウドの個人ブログ一覧
AWS EC2インスタンスをOracle Cloudに移行
RcloneでAzure BlobからOCIオブジェクト・ストレージにデータをコピー
テナンシ間 OCI カスタム・イメージの移行


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

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?