2014/11/19

仮想マシン イメージ(テンプレート)を、異なるリージョンにコピー PowerShell編


異なるリージョン(region)にコピー(copy)。
ひとつの仮想マシン イメージは、その仮想マシン イメージが置いてあるリージョン内でしか使えない。

よって、たとえば、日本(東)リージョンに置いてある仮想マシン イメージを、日本(西)リージョンでも使いたい場合は、コピーする必要がある。

いくつか方法があるが、まずはPowerShell。""の中を書き換えて使う。
===
# 送信元情報
$srcContainer = "xxxx" # "vhds"とか
$srcBlob = "VMImageOriginal.vhd"
$srcStorageAccount = "SampleEastStorage"
$srcStorageKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

$srcContext = New-AzureStorageContext  –StorageAccountName $srcStorageAccount `
                                       -StorageAccountKey $srcStorageKey

# 送信先情報
$destContainer = "xxxx" # "vhds"とか
$destBlob = "VMImageForWest.vhd"
$destStorageAccount = "SampleWestStorage"
$destStorageKey = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"

$destContext = New-AzureStorageContext –StorageAccountName $destStorageAccount `
                                       -StorageAccountKey $destStorageKey

# もし、送信先にコンテナが既にあるなら、下の1行をコメントアウト
New-AzureStorageContainer -Name $destContainer -Context $destContext

$Result = Start-AzureStorageBlobCopy -SrcContainer $srcContainer `
                                     -SrcBlob $srcBlob `
                                     -SrcContext $srcContext `
                                     -DestContainer $destContainer `
                                     -DestBlob $destBlob `
                                     -DestContext $destContext
===

かかる時間はblobの容量次第。
PS C:\>$result | Get-AzureStorageBlobCopyState
で進捗確認。

その他、Azure Storage toolsを使ってコピーする方法も。
http://www.cloud-config.jp/27471



最後に、コピー先でコピーしたVHDをIaaSの仮想マシン イメージとして登録する。
Azure Management Portalで、[仮想マシン]を選択。
[イメージ]をクリック
[作成]をクリック

[名前]を適切に入れて・・・
[VHDのURL]で、コピーしてきたVHDを選択。
[仮想マシンでSysprepを実行しました。]にチェック。
で、実行。

#移行

仮想マシン イメージ(テンプレート)を、異なるリージョンにコピー Azure CLI編