データセンター リージョン間の仮想マシンの移動方法

本トピックでは、多くお問合せいただくこのトピックについて手順のご紹介をいたします。

Microsoft Azure 仮想マシン (IaaS) では Azure データセンタを跨ぐ移動をサポートしていないため、利用しているデータセンタを変更する為には、手動で移動させる必要があります。具体的には、VHD ファイルを残す方法で仮想マシンを削除し、VHD ファイルを移動させ、VHD ファイルから新規で仮想マシンを作成する方法です。

なお、移動対象はクラウドサービスにシングルで構成しているシンプルな仮想マシンでデータ ディスクがアタッチされている環境を想定しています。

目次

まず初めに、手順の項目を以下で説明します。

1. ディスクの構成を確認する

2. 仮想マシンを停止させる

3. 仮想マシンにアタッチしている OS ディスクならびにデータ ディスクの VHD ファイルを移動先のストレージ アカウントへコピーする

4. 仮想マシンを "特殊化" でバックアップを取る

5. 仮想マシンのエンドポイントの設定をメモする

6. 仮想マシンをクラウド サービスごと削除する

7. 移動先のデータセンタで新規でクラウド サービスを作成する

8. 移動した VHD ファイルをもとに、ディスクを作成する

9. ディスクより仮想マシンを新規で作成する

手順

1. ディスクの構成を確認する

今回の作業では、VHD ファイル移動し、対象 VHD ファイルよりディスクを作成し、そのディスクを仮想マシンにアタッチします。その際には、Logical Unit Number (LUN) を、オリジナルの仮想マシンと同じように構成する必要があるので、現在の VHD ファイル、ディスク名、LUN の対応状況を、事前にAzure PowerShell で取得しメモします。情報取得のコマンドは以下の通りです。

PS C:\> Get-AzureVM -ServiceName <クラウド サービス名> -Name <仮想マシン名> | Get-AzureDataDisk

参考までに、私の環境で実行した例は以下で紹介します。VHD ファイルならびにパス、ディスク名、LUN が確認できます。

-------------

PS C:\> Get-AzureVM -ServiceName ShinjiSDisk -Name ShinjiSDisk | Get-AzureDataDisk

VERBOSE: 10:55:59 AM - Completed Operation: Get Deployment

HostCaching : None

DiskLabel : ShinjiSDisk0

DiskName : ShinjiSDisk0

Lun : 0

LogicalDiskSizeInGB : 100

MediaLink : https://portalvhdsqq2****vcyy2.blob.core.windows.net/vhds/ShinjiSDisk-ShinjiSDisk-1004-1.vhd

SourceMediaLink :

IOType : Standard

ExtensionData :

HostCaching : None

DiskLabel : ShinjiSDisk1

DiskName : ShinjiSDisk1

Lun : 1

LogicalDiskSizeInGB : 100

MediaLink : https://portalvhdsqq2****vvcyy2.blob.core.windows.net/vhds/ShinjiSDisk-ShinjiSDisk-1004-2.vhd

SourceMediaLink :

IOType : Standard

ExtensionData :

HostCaching : None

DiskLabel : ShinjiSDisk2

DiskName : ShinjiSDisk2

Lun : 2

LogicalDiskSizeInGB : 100

MediaLink : https://portalvhdsqq2****vvcyy2.blob.core.windows.net/vhds/ShinjiSDisk-ShinjiSDisk-1004-3.vhd

SourceMediaLink :

IOType : Standard

ExtensionData :

-------------

2. 仮想マシンを停止させる

VHD ファイルの移動時に VHD ファイルへの書き込みが発生すると、VHD ファイルの不整合により復旧に失敗する可能性があります。その為、対象の仮想マシンについては事前に停止をしておいてください。以下に停止の手順を記載いたします。

1) 管理ポータルへログインし、左ペインより "仮想マシン" を選択します。

2) 中央ペインの仮想マシンのリストより、今回移動を計画している仮想マシンを選択します。

3) 対象仮想マシンの "ダッシュボード" タブの下部より "シャットダウン" を選択します。

4) 仮想マシンが停止した事を確認します。

3. 仮想マシンにアタッチしている OS ディスクならびにデータ ディスクの VHD ファイルを移動先のストレージ アカウントへコピーする

次に、対象仮想マシンで使用している VHD ファイルを、移動先のデータセンタに紐づくストレージ アカウントへ保存します。

VHD ファイルの移動には AzCopy が便利です。以下に AzCopy の使用方法をご説明した Web サイトならびに今回利用するコマンドをご紹介します。

- AzCopy コマンド ライン ユーティリティの概要

https://azure.microsoft.com/ja-jp/documentation/articles/storage-use-azcopy/

--------

AzCopy /Source:<VHD ファイルが保存されている移動元のコンテナへのパス> /Dest:<VHD ファイルを保存する移動先のコンテナへのパス> /SourceKey:key1 /DestKey:key2 /Pattern:<VHD ファイル名>

--------

データセンタが異なるストレージアカウント間での Blob ファイルのコピーは上記のコマンドで行います。なお、コピーの際にはデータセンタからのアウトバンド通信が発生しますので、ネットワーク使用料が課金されます。

以下コマンド例です。

--------

> AzCopy /Source:https://portalvhd****6vdzvvcyy2.blob.core.windows.net/vhds /Dest:https://portalvhdszb****n0qvfdj.blob.core.windows.net/testvhds /SourceKey:<キー> /DestKey:<キー> /Pattern:ShinjiSDisk-ShinjiSDisk-2015-10-0.vhd

--------

4. 仮想マシンを "特殊化" でバックアップを取る

復旧に失敗したときのために事前に対象仮称マシンのバックアップを取得します。以下に手順を記載します。

1) 管理ポータルへログインし、左ペインより "仮想マシン" を選択します。

2) 中央ペインの仮想マシンのリストより、今回移動を計画している仮想マシンを選択します。

3) 対象仮想マシンの "ダッシュボード" タブの下部より "取り込み" を選択します。

4) 適宜、ラベルの定義しますが、"仮想マシンで Sysprep を実行しました" のチェックは外したままにします。

5) チェックをクリックし、バックアップを取得します。

念のため、正しくバックアップが取得されたか確認します。

1) 管理ポータル下部より [新規] -> [Compute] -> [仮想マシン] -> [ギャラリから] をクリックします。

2) 左下の "マイ イメージ" を選択し、今回作成した仮想マシンのバックアップが存在するか、また、"OS の状態" が "特殊化" で保存されているか確認してください。

今回は、バックアップが正しく作成できているか確認する事が目的でしたので、正しく作成されているようであれば、ウィンドウを閉じてください。

5. 仮想マシンのエンドポイントの設定をメモする

エンドポイントの設定は引き継がれませんので、エンドポイントの設定を確認します。以下に手順を記載します。

1) 管理ポータルへログインし、左ペインより "仮想マシン" を選択します。

2) 中央ペインの仮想マシンのリストより、今回移動を計画している仮想マシンを選択します。

3) 対象仮想マシンの "エンドポイント" タブより設定をメモします。

6. 仮想マシンをクラウド サービスごと削除する

対象仮想マシンの DNS 設定や VIP はクラウド サービスに紐づき登録されていますので、移動に伴い、元のクラウドサービスを削除します。また、今回、対象クラウド サービスには仮想マシンが当該仮想マシンのひとつのみ稼働していますので、同時に仮想マシンも削除します。以下に手順を記載します。

1) 管理ポータルへログインし、左ペインより "クラウド サービス" を選択します。

2) 中央ペインのクラウド サービスのリストより、今回移動を計画している仮想マシンが使用しているクラウド サービスを選択します。

3) ページ下部より削除を選択し、その際に、"クラウド サービスとそのデプロイを削除します" を選択します。

※ 対象のクラウド サービスで複数の仮想マシンが稼働している場合は、そのすべてを削除するオペレーションとなりますので、十分にお気を付けください。

7. 移動先のデータセンタで新規でクラウド サービスを作成する

移動先のデータセンタで新規でクラウドサービスを作成します。以下に手順を記載します。

1) 管理ポータル下部より [新規] -> [Compute] -> [クラウド サービス] -> [カスタム作成] をクリックします。

2) 適宜 URL を設定します。

3) "地域またはアフィニティグループ" にて移動先のデータセンタの地域を設定してください。

4) チェックをクリックし作成します。

8. 移動した VHD ファイルを基に、ディスクを作成する

移動した VHD ファイルをもとに、ディスクを作成します。以下に手順を記載します。

1) 管理ポータルへログインし、左ペインより "仮想マシン" を選択します。

2) タブより "ディスク" を選択し、ページ下部より "作成" をクリックします。

3) 適宜名前を設定し "VHD の URL" より Step3 でコピーした VHD ファイルを指定します。

4) VHD が OS ディスクだったものは、"VHD にはオペレーティング システムが含まれています。" にチェックをいれ、プルダウンメニューから OS の種類を設定します。データディスクの場合は、そのまま完了します。

5) 移動した各 VHD ファイルで実施します。

9. ディスクより仮想マシンを新規で作成する

ディスクより仮想マシンを新規で作成します。以下に手順を記載します。

1) 管理ポータルへログインし下部より [新規] -> [Compute] -> [仮想マシン] -> [ギャラリから] をクリックします。

2) "マイ ディスク" を選択します。

3) Step 8 で作成したディスクを選択します。

4) 適宜設定を進め仮想マシンを新規で作成します。

  ※ クラウド サービスの指定には Step7 で作成したクラウド サービスを選択してください。

  ※ エンドポイントの指定では Step5 でメモした内容を設定してください。

 

仮想マシンが作成できたのちには、データディスクをアタッチします。

データディスクのアタッチには Step1 でメモした LUN を設定する必要がありますので、Azure PowerShell を使用します。

 

5) Azure PowerShell にてデータ ディスクをアタッチします。データ ディスクのアタッチには、Step1 で確認した LUN を設定する必要があります。

※ 追加したデータディスクの数だけ実施してください。

--------

PS> Get-AzureVM -ServerName <クラウド サービス> -Name <仮想マシン名> | Add-AzureDataDisk -Import -DiskName <Step8 で作成したディスクの名前> -LUN <Step1 で確認した数字> | Update-AzureVM

--------

6) 最後に以下のコマンドを実施し、Step1 で確認した内容と同様の構成となっているかご確認ください。

--------

PS> Get-AzureVM -ServiceName <クラウド サービス名> -Name <仮想マシン名> | Get-AzureDataDisk

--------

以上が手順となります。上記にて作成された仮想マシンが正常に稼働しているかご確認をお願い致します。

上記手順は、シンプルな仮想マシンを移動させる方法のうちのひとつで、すべての仮想マシンで利用できるものではありません。環境に差などがある場合もありますので、動作検証を十分に行ったのちに本番環境への適用をお願いします。

-----

Microsoft Azure サポート チーム