リソース マネージャー (ARM) 環境で既存の VM を既存の可用性セットに追加する方法[管理ディスク編]

nmikuni

こんにちは、Azure サポートチームの三國です。

本日は、ARM 環境にて可用性セットに参加していない既存の VM (管理ディスク)を、既存の可用性セットに追加する手順をご案内します。

非管理ディスクの場合は以下のドキュメントをご参照ください。

リソース マネージャー (ARM) 環境で既存の VM を既存の可用性セットに追加する方法

https://blogs.technet.microsoft.com/jpaztech/2016/06/08/addavasetvmarm/

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

制限事項


リソース マネージャー (ARM) 環境の場合、既存の VM を新規の可用性セットに追加する為には、以下の制限がございます。

注意事項


  1. 可用性セットも管理ディスクである必要がある
  2. ポータルからも実施することができる

作業の流れ


本記事では、例として以下の環境にて、サンプルの仮想マシン 名称 : [SetVmB] を既存の可用性セット 名称 : [setavaset] に追加するシナリオで、手順をご紹介させていただきます。

 

朗報です。管理ディスクでは、以下の作業をすべてポータルよりGUI操作でできるようになりました。以下の手順で進めていきます。

  1. 既存のリソースの情報を取得
  2. 既存の可用性セットの情報を取得
  3. 既存の VM を停止、削除
  4. 管理ディスクよりVM を作成
  5. VMの設定を再定義、既存の可用性セットに追加
  6. 可用性セットへの追加を確認

手順


(1) 既存のリソースの情報を取得

以下のように、引き継ぎたい情報を確認します。

-仮想マシンのサイズ

-仮想ネットワーク、サブネット名、ネットワークセキュリティグループ名

-ディスク名

-起動診断に用いるストレージアカウント名

 

(2) 既存の可用性セットの情報を取得

仮想マシンを追加したい可用性セット名を確認します。なお、管理ディスクで作成されている必要があるのでそれも確認しておきましょう。

 

(3) 既存の VM を停止、削除

-仮想マシンを削除します

(オプション) ネットワークインターフェイスの削除

パブリックIPアドレスを引き継ぎたい場合はネットワークインターフェイスを削除し、パブリックIPアドレスを開放します。なお、ネットワークインターフェイスは引き継げません。

 

(4) 管理ディスクよりVM を作成

-ディスクを選択し、仮想マシンの作成を開始します

 

(5) VMの設定を再定義、既存の可用性セットに追加

可用性セットを設定し、その他の設定を行います。ネットワークインターフェイスを削除していればパブリックIPアドレスも引き継げます

 

(6) 可用性セットへの追加を確認

以上が、ポータルを用いた手順となります

(補足) PowerShellを用いた手順


本手順は、PowerShellで行うことも可能でございます。

以下の Azure PowerShell スクリプトをテキスト エディターにコピーし、.ps1 形式にて保存し、実行します。特に PowerShell ファイル上でのパラメーターの変更や設定などはございませんので、以下のスクリプトをそのままコピーしてご実行いただけます。(仮想マシンや可用性セット名などは途中選択肢としてあらわれ、ポップアップ内で選択する形で指定します。)

#Login

Login-AzureRmAccount

#Select Azure Subscription

$subscriptionId = (Get-AzureRmSubscription | Out-GridView -Title "Select an Azure Subscription ..." -PassThru).SubscriptionId

Select-AzureRmSubscription -SubscriptionId $subscriptionId

#Select Azure Resource Group in which existing VNET is provisioned

$rgName = (Get-AzureRmResourceGroup | Out-GridView -Title "Select an Azure Resource Group ..." -PassThru).ResourceGroupName

#Select VM to re-provision

$vmName = (Get-AzureRmVm -ResourceGroupName $rgName).Name | Out-GridView -Title "Select a VM ..." -PassThru

$vm = Get-AzureRmVm -ResourceGroupName $rgName -Name $vmName

$location = $vm.Location

#Get Azure availability set

$asname = (Get-AzureRmAvailabilitySet -ResourceGroupName $rgName).Name | Out-GridView -Title "Select a AvailabilitySet ..." -PassThru

#Stop and Deprovision existing Azure VM, retaining Disks

$vm | Stop-AzureRmVm -Force

$vm | Remove-AzureRmVm -Force

#Set VM config to include Availability Set

$as = Get-AzureRmAvailabilitySet -Name $asName -ResourceGroupName $rgName

$asRef = New-Object Microsoft.Azure.Management.Compute.Models.SubResource

$asRef.Id = $as.Id

$vm.AvailabilitySetReference = $asRef.Id # To remove VM from Availability Set, set to $null

#Clean-up VM config to reflect deployment from attached disks

$vm.StorageProfile.OSDisk.CreateOption = "Attach"

$vm.StorageProfile.DataDisks | ForEach-Object { $_.CreateOption = "Attach" }

$vm.StorageProfile.ImageReference = $null

$vm.OSProfile = $null

#Re-provision VM from attached disks

$vm | New-AzureRmVm -ResourceGroupName $rgName -Location $location

 

sub

 

rg

 

VM

 

set

 

 

 

 

 

 

 

 

 

 

以上が、 既存の VM を既存の可用性セットに追加する手順となります。