クラシック環境で作成した 仮想マシン をARM環境へ移行する ~PowerShell編~

クラシック環境で作成した 仮想マシン をARM(リソースマネージャー)環境へ移行する方法が公開されましたので、試してみたいと思います。

※仮想マシンを起動した状態で移行できますが、サービス停止前提で実施した方が良さそうです。


以下、PowerShell で実施

ARMにログイン
Login-AzureRmAccount

移行機能の利用を宣言
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

クラシックにログイン
Add-AzureAccount


【vNetに配置されていない仮想マシンの移行】

$serviceName = “tushigami-MG01″ ※移行対象の仮想マシンを指定
$deployment = Get-AzureDeployment -ServiceName $serviceName
$deploymentName = $deployment.DeploymentName

※移行準備に入ると、クラシック側の仮想マシンは停止(割り当て解除)となります。

仮想マシンをARMへ移行準備 ※ARM側でのvNetを自動作成する場合
Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName -CreateNewVirtualNetwork

仮想マシンをARMへ移行準備 ※ARM側でのvNetを指定する場合
Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName tushigami-group -VirtualNetworkName tushigami-vnet -SubnetName default

移行準備からクラシックへ戻る場合
Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName

ARMへの完全移行 ※クラシックへは戻れません。
Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName


【vNetに配置されている仮想マシンの移行】

vNetと配置されている仮想マシン全台をARMへ移行準備
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName tushigami-vnet-classic

移行準備からクラシックへ戻る場合
Move-AzureVirtualNetwork -Abort -VirtualNetworkName tushigami-vnet-classic

ARMへの完全移行 ※クラシックへは戻れません。
Move-AzureVirtualNetwork -Commit -VirtualNetworkName tushigami-vnet-classic


【ストレージアカウントの移行】※クラシック仮想マシンを含んでいると移行できません。

Move-AzureStorageAccount -Prepare -StorageAccountName tushigamistorage01
Move-AzureStorageAccount -Abort -StorageAccountName tushigamistorage01
Move-AzureStorageAccount -Commit -StorageAccountName tushigamistorage01


移行後は、

・リソースグループは、仮想マシン単位 [仮想マシン名-migrated]で作成される。
・移行後は、クラシック側の仮想マシンは削除される。
・ストレージアカウントはクラシックのまま利用可能、よってパスに変更無し。
・パブリックIPはロードバランサーに紐付いている。

vm016