以下步驟說明如何使用 Azure PowerShell 來更改 VM 的可用性集。 只能在創(chuàng)建 VM 時將 VM 添加到可用性集。 如果要更改可用性集,必須將虛擬機刪除,并重新創(chuàng)建虛擬機。
使用 PowerShell 更改可用性集
從要修改的 VM 中捕獲以下重要詳細信息。
VM 的名稱
PowerShell復制
$vm=Get-AzureRmVM-ResourceGroupName-Name$vm.Name
VM 大小
PowerShell復制
$vm.HardwareProfile.VmSize
網(wǎng)絡主要網(wǎng)絡接口和可選的網(wǎng)絡接口(如果在 VM 上存在)
PowerShell復制
$vm.NetworkProfile.NetworkInterfaces[0].Id
OS 磁盤配置文件
PowerShell復制
$vm.StorageProfile.OsDisk.OsType$vm.StorageProfile.OsDisk.Name$vm.StorageProfile.OsDisk.Vhd.Uri
每個數(shù)據(jù)磁盤的磁盤配置文件
PowerShell復制
$vm.StorageProfile.DataDisks[].Lun$vm.StorageProfile.DataDisks[].Vhd.Uri
已安裝的 VM 擴展
PowerShell復制
$vm.Extensions
刪除 VM 但不刪除任何磁盤或網(wǎng)絡接口。
PowerShell復制
Remove-AzureRmVM-ResourceGroupName-Name
創(chuàng)建可用性集(如果尚不存在)
PowerShell復制
New-AzureRmAvailabilitySet-ResourceGroupName-Name-Location""
使用新可用性集重新創(chuàng)建 VM
PowerShell復制
$vm2=New-AzureRmVMConfig-VMName-VMSize-AvailabilitySetIdSet-AzureRmVMOSDisk-CreateOption"Attach"-VM-VhdUri-Name [-Windows |-Linux]Add-AzureRmVMNetworkInterface-VM-IdNew-AzureRmVM-ResourceGroupName-Location-VM
添加數(shù)據(jù)磁盤和擴展。 有關詳細信息,請參閱將數(shù)據(jù)磁盤附加到 VM和資源管理器模板中的擴展。 可以使用 PowerShell 或 Azure CLI 將數(shù)據(jù)磁盤和擴展添加到 VM。
示例腳本
以下腳本提供一個示例,該示例收集所需的信息、刪除原始 VM,并在新可用性集中重新創(chuàng)建 VM。
PowerShell復制
#set variables$rg="demo-resource-group"$vmName="demo-vm"$newAvailSetName="demo-as"$outFile="C:\temp\outfile.txt"#Get VM Details$OriginalVM=get-azurermvm-ResourceGroupName$rg-Name$vmName#Output VM details to file"VM Name: "|Out-File-FilePath$outFile$OriginalVM.Name |Out-File-FilePath$outFile-Append"Extensions: "|Out-File-FilePath$outFile-Append$OriginalVM.Extensions |Out-File-FilePath$outFile-Append"VMSize: "|Out-File-FilePath$outFile-Append$OriginalVM.HardwareProfile.VmSize |Out-File-FilePath$outFile-Append"NIC: "|Out-File-FilePath$outFile-Append$OriginalVM.NetworkProfile.NetworkInterfaces[0].Id |Out-File-FilePath$outFile-Append"OSType: "|Out-File-FilePath$outFile-Append$OriginalVM.StorageProfile.OsDisk.OsType |Out-File-FilePath$outFile-Append"OS Disk: "|Out-File-FilePath$outFile-Append$OriginalVM.StorageProfile.OsDisk.Vhd.Uri |Out-File-FilePath$outFile-Appendif($OriginalVM.StorageProfile.DataDisks) {"Data Disk(s): "|Out-File-FilePath$outFile-Append$OriginalVM.StorageProfile.DataDisks |Out-File-FilePath$outFile-Append}#Remove the original VMRemove-AzureRmVM-ResourceGroupName$rg-Name$vmName#Create new availability set if it does not exist$availSet=Get-AzureRmAvailabilitySet-ResourceGroupName$rg-Name$newAvailSetName-ErrorActionIgnoreif(-Not$availSet) {$availset=New-AzureRmAvailabilitySet-ResourceGroupName$rg-Name$newAvailSetName-Location$OriginalVM.Location}#Create the basic configuration for the replacement VM$newVM=New-AzureRmVMConfig-VMName$OriginalVM.Name-VMSize$OriginalVM.HardwareProfile.VmSize-AvailabilitySetId$availSet.IdSet-AzureRmVMOSDisk-VM$NewVM-VhdUri$OriginalVM.StorageProfile.OsDisk.Vhd.Uri-Name$OriginalVM.Name-CreateOptionAttach-Windows#Add Data Disksforeach($diskin$OriginalVM.StorageProfile.DataDisks ) {Add-AzureRmVMDataDisk-VM$newVM-Name$disk.Name-VhdUri$disk.Vhd.Uri-Caching$disk.Caching-Lun$disk.Lun-CreateOptionAttach-DiskSizeInGB$disk.DiskSizeGB}#Add NIC(s)foreach($nicin$OriginalVM.NetworkProfile.NetworkInterfaces) {Add-AzureRmVMNetworkInterface-VM$NewVM-Id$nic.Id}#Create the VMNew-AzureRmVM-ResourceGroupName$rg-Location$OriginalVM.Location-VM$NewVM-DisableBginfoExtension
后續(xù)步驟
通過添加附加數(shù)據(jù)磁盤,向 VM 添加附加存儲。立即訪問http://market.azure.cn