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


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

制限事項


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

  • 既存の VM を停止 / 削除して、再度 VM を展開する必要があります。
  • クラシック環境 (ASM: Azure Service Management) と異なり、PowerShell を使用する必要があります。

 

注意事項


  • 以下にご案内するスクリプトを実行頂きますと、VM が一度削除され、以下手順の中で作成する可用性セット内に VM が再展開されます。
    VHD のデータが削除されるわけではございませんが、手順の中に VM の削除の作業が伴いますので、検証環境にて十分お試しいただきますようお願い致します。
  • VM 名や VHD ファイルなどが変更されることはございません。
  • 2016/6/7 時点では、以下の手順で VM を展開した場合、ポータル上の VM のコンピュータ名が [ – ] と表示されますが、VM の挙動に影響はありません。(これは、既存の VHD を元に VM を展開した際に発生しますが、今後改善される予定となっております。)
  • 拡張機能が一律、無効状態と認識されている可能性があります。事前の構成を把握していただき、適宜有効・無効を切り替えていただければと存じます。既に有効な拡張機能を、上から有効化しても問題はありません。

 

作業の流れ


以下の作業はすべて 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 を既存の可用性セットに追加する方法については、以下をご参照ください。

 

 


Comments (0)

Skip to main content