Развертывание виртуальных машин в группах размещения близкого взаимодействия с помощью Azure PowerShell
Область применения: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows
Чтобы виртуальные машины были максимально близки для получения наименьшей задержки, необходимо развернуть их в группе размещения близкого взаимодействия.
Группа размещения близкого взаимодействия — это логическая группировка, используемая для того, чтобы ресурсы вычислений Azure физически размещались близко друг к другу. Группа размещения близкого взаимодействия удобны для рабочих нагрузок, где требуется низкая задержка.
Создание группы размещения близкого взаимодействия
Создайте группу размещения близкого взаимодействия с помощью командлета New-AzProximityPlacementGroup.
$resourceGroup = "myPPGResourceGroup"
$location = "East US"
$ppgName = "myPPG"
$zone = "1"
$vmSize1 = "Standard_E64s_v4"
$vmSize2 = "Standard_M416ms_v2"
New-AzResourceGroup -Name $resourceGroup -Location $location
$ppg = New-AzProximityPlacementGroup `
-Location $location `
-Name $ppgName `
-ResourceGroupName $resourceGroup `
-ProximityPlacementGroupType Standard `
-Zone $zone `
-IntentVMSizeList $vmSize1, $vmSize2
Перечисление групп размещения близкого взаимодействия
Список всех групп размещения с учетом расположения можно получить с помощью командлета Get-AzProximityPlacementGroup.
Get-AzProximityPlacementGroup -ResourceGroupName $resourceGroup -Name $ppgName
ResourceGroupName : myPPGResourceGroup
ProximityPlacementGroupType : Standard
Id : /subscriptions/[subscriptionId]/resourceGroups/myPPGResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG
Name : myPPG
Type : Microsoft.Compute/proximityPlacementGroups
Location : eastus
Tags : {}
Intent :
VmSizes[0] : Standard_E64s_v4
VmSizes[1] : Standard_M416ms_v2
Zones[0] : 1
создание виртуальной машины;
Создайте виртуальную машину в группе размещения близкого взаимодействия с помощью -ProximityPlacementGroup $ppg.Id
, чтобы указать идентификатор этой группы при вызове New-AzVM для создания виртуальной машины.
$vmName = "myVM"
New-AzVm `
-ResourceGroupName $resourceGroup `
-Name $vmName `
-Location $location `
-ProximityPlacementGroup $ppg.Id
Увидеть эту виртуальную машину в группе размещения можно с помощью Get-AzProximityPlacementGroup.
Get-AzProximityPlacementGroup -ResourceId $ppg.Id |
Format-Table -Property VirtualMachines -Wrap
Перемещение существующей виртуальной машины в группу размещения близкого взаимодействия
Можно также добавить существующую виртуальную машину в группу размещения близкого взаимодействия. Сначала вам нужно остановить или освободить виртуальную машину, а затем обновить ее и снова запустить.
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName -ProximityPlacementGroupId $ppg.Id
Start-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Перемещение существующей виртуальной машины из группы размещения близкого взаимодействия
Чтобы удалить виртуальную машину из группы размещения близкого взаимодействия, нужно остановить или освободить виртуальную машину, а затем обновить ее и снова запустить.
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
$vm.ProximityPlacementGroup = ""
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName
Start-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Группы доступности
В группе размещения близкого взаимодействия также можно создать группу доступности. Используйте тот же параметр -ProximityPlacementGroup
для командлета New-AzAvailabilitySet, чтобы создать группу доступности, и все созданные в ней виртуальные машины также будут помещены в ту же группу размещения близкого взаимодействия.
Чтобы добавить или удалить существующую группу доступности в группе размещения близкого взаимодействия, необходимо сначала остановить все виртуальные машины в ней.
Перемещение существующей группы доступности в группу размещения близкого взаимодействия
$resourceGroup = "myResourceGroup"
$avSetName = "myAvailabilitySet"
$avSet = Get-AzAvailabilitySet -ResourceGroupName $resourceGroup -Name $avSetName
$vmIds = $avSet.VirtualMachinesReferences
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Stop-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Force
}
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPG -Name myPPG
Update-AzAvailabilitySet -AvailabilitySet $avSet -ProximityPlacementGroupId $ppg.Id
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Start-AzVM -ResourceGroupName $resourceGroup -Name $vmName
}
Перемещение существующей группы доступности из группы размещения близкого взаимодействия
$resourceGroup = "myResourceGroup"
$avSetName = "myAvailabilitySet"
$avSet = Get-AzAvailabilitySet -ResourceGroupName $resourceGroup -Name $avSetName
$vmIds = $avSet.VirtualMachinesReferences
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Stop-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Force
}
$avSet.ProximityPlacementGroup = ""
Update-AzAvailabilitySet -AvailabilitySet $avSet
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Start-AzVM -ResourceGroupName $resourceGroup -Name $vmName
}
Масштабируемые наборы
Вы также можете создать масштабируемый набор в группе размещения близкого взаимодействия. Используйте тот же параметр -ProximityPlacementGroup
для командлета New-AzVmss, чтобы создать масштабируемый набор, и все его экземпляры также будут помещены в ту же группу размещения близкого взаимодействия.
Чтобы добавить или удалить существующий масштабируемый набор в группе размещения близкого взаимодействия, сначала необходимо остановить этот масштабируемый набор.
Перемещение существующего масштабируемого набора в группу размещения близкого взаимодействия
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPG -Name myPPG
$vmss = Get-AzVmss -ResourceGroupName myVMSSResourceGroup -VMScaleSetName myScaleSet
Stop-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Update-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName -ProximityPlacementGroupId $ppg.Id
Start-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Перемещение существующего масштабируемого набора из группы размещения близкого взаимодействия
$vmss = Get-AzVmss -ResourceGroupName myVMSSResourceGroup -VMScaleSetName myScaleSet
Stop-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
$vmss.ProximityPlacementGroup = ""
Update-AzVmss -VirtualMachineScaleSet $vmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Start-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Следующие шаги
Можно также использовать Azure CLI для создания групп размещения близкого взаимодействия.