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

Arika Okubo

こんにちは。Azure サポートチームの小久保です。

本日は、リソース マネージャー (ARM: Azure Resource Manager) 環境で可用性セットに参加していない既存の VM を新規で作成した可用性セットに追加する方法をご紹介します。

※ 2017/12/7  "注意事項"の内容につきまして、追記いたしました。

制限事項


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

 

注意事項


2017/12/7 追記

$vm.StorageProfile.OSDisk.Name = $vmName

 

作業の流れ


以下の作業はすべて Azure PowerShell で行います。

  1. ログイン
  2. 既存のリソースの情報を取得
  3. 可用性セットの作成
  4. 既存の VM を停止、削除
  5. VM の設定を再定義、新規作成した可用性セットに追加
  6. VM の再展開

 

手順


  1. Azure PowerShell を開き、下記のコマンドを実行してログインします。

Login-AzureRmAccount

ps

 

  1. 既存のリソースの情報を取得します。

# サブスクリプション ID

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

   ※上記コマンド実行後、ポップアップ画面が表示されるため、対象の VM が属しているサブスクリプションを選択します。

subscriptionid

# サブスクリプションの情報

Select-AzureRmSubscription -SubscriptionId $subscriptionId

# リソースグループ

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

   ※上記コマンド実行後、ポップアップ画面が表示されるため、対象の VM が属しているリソースグループを選択します。

 

# 既存の VM の指定 

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

   ※上記コマンド実行後、ポップアップ画面が表示されるため、対象の VM を選択します。

 

# VM のプロパティを取得

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

$location = $vm.Location

 

  1. 可用性セットの作成

# 可用性セットの名前を指定

$asName = Read-Host -Prompt "Enter a new Availability Set name"

   ※上記コマンド実行後、作成する可用性セットの名前を入力します。

 

# 可用性セットを作成

$as = New-AzureRmAvailabilitySet -Name $asName -ResourceGroupName $rgName -Location $location -PlatformUpdateDomainCount "5" -PlatformFaultDomainCount "3"

※ 補足

-PlatformUpdateDomainCount : 可用性セットの更新ドメインの数を設定するパラメーター

                   (1~20 で指定可能。指定しない場合は 5。)

 -PlatformFaultDomainCount  : 障害ドメインの数を設定するパラメーター

                   (1~3 で指定可能。指定しない場合は 3。)

 

  1. 既存の VM を停止、削除

$vm | Stop-AzureRmVm -Force

$vm | Remove-AzureRmVm -Force

 

  1. 作成する VM の設定を定義

# 可用性セットの設定を変更

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

$asRef.Id = $as.Id

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

# 再展開する為に、既存 VM の設定を変更

$vm.StorageProfile.OSDisk.Name = $vmName

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

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

$vm.StorageProfile.ImageReference = $null

$vm.OSProfile = $null

 

  1. VM の再展開

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

 

参考リンク


リソース マネージャー (ARM) 環境で既存の VM を既存の可用性セットに追加する方法については、以下をご参照ください。