Bereitstellen von VMs für Näherungsplatzierungsgruppen mit PowerShellDeploy VMs to proximity placement groups using PowerShell

Um den Abstand zwischen den VMs so stark wie möglich zu verringern und somit die geringstmögliche Latenz zu erzielen, sollten Sie sie in einer Näherungsplatzierungsgruppe bereitstellen.To get VMs as close as possible, achieving the lowest possible latency, you should deploy them within a proximity placement group.

Eine Näherungsplatzierungsgruppe ist eine logische Gruppierung, mit der ein möglichst geringer Abstand zwischen Azure-Compute-Ressourcen sichergestellt wird.A proximity placement group is a logical grouping used to make sure that Azure compute resources are physically located close to each other. Näherungsplatzierungsgruppen sind für Workloads hilfreich, die eine geringe Latenz erfordern.Proximity placement groups are useful for workloads where low latency is a requirement.

Erstellen einer NäherungsplatzierungsgruppeCreate a proximity placement group

Erstellen Sie mithilfe des Cmdlets New-AzProximityPlacementGroup eine Näherungsplatzierungsgruppe.Create a proximity placement group using the New-AzProximityPlacementGroup cmdlet.

$resourceGroup = "myPPGResourceGroup"
$location = "East US"
$ppgName = "myPPG"
New-AzResourceGroup -Name $resourceGroup -Location $location
$ppg = New-AzProximityPlacementGroup `
   -Location $location `
   -Name $ppgName `
   -ResourceGroupName $resourceGroup `
   -ProximityPlacementGroupType Standard

Auflisten von NäherungsplatzierungsgruppenList proximity placement groups

Mit dem Cmdlet Get-AzProximityPlacementGroup können Sie alle Näherungsplatzierungsgruppen auflisten.You can list all of the proximity placement groups using the Get-AzProximityPlacementGroup cmdlet.

Get-AzProximityPlacementGroup

Erstellen einer VMCreate a VM

Erstellen Sie mit -ProximityPlacementGroup $ppg.Id eine VM in der Näherungsplatzierungsgruppe, um auf die Näherungsplatzierungsgruppen-ID zu verweisen, wenn Sie mit New-AzVM die VM erstellen.Create a VM in the proximity placement group using -ProximityPlacementGroup $ppg.Id to refer to the proximity placement group ID when you use New-AzVM to create the VM.

$vmName = "myVM"

New-AzVm `
  -ResourceGroupName $resourceGroup `
  -Name $vmName `
  -Location $location `
  -OpenPorts 3389 `
  -ProximityPlacementGroup $ppg.Id

Sie können die VM in der Platzierungsgruppe mit Get-AzProximityPlacementGroup anzeigen.You can see the VM in the placement group using Get-AzProximityPlacementGroup.

Get-AzProximityPlacementGroup -ResourceId $ppg.Id |
    Format-Table -Property VirtualMachines -Wrap

Verschieben einer vorhandenen VM in eine NäherungsplatzierungsgruppeMove an existing VM into a proximity placement group

Sie können auch eine vorhandene VM einer Näherungsplatzierungsgruppe hinzufügen.You can also add an existing VM to a proximity placement group. Sie müssen die VM zuerst beenden bzw. ihre Zuweisung aufheben, die VM dann aktualisieren und sie neu starten.You need to stop\deallocate the VM first, then update the VM and restart.

$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
Restart-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

Verschieben einer vorhandenen VM aus einer NäherungsplatzierungsgruppeMove an existing VM out of a proximity placement group

Um eine VM aus einer Näherungsplatzierungsgruppe zu entfernen, müssen Sie die VM zuerst beenden bzw. ihre Zuweisung aufheben, die VM dann aktualisieren und sie neu starten.To remove a VM from a proximity placement group, you need to stop\deallocate the VM first, then update the VM and restart.

$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
$vm.ProximityPlacementGroupId = ""
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName 
Restart-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

VerfügbarkeitsgruppenAvailability Sets

Sie können auch eine Verfügbarkeitsgruppe in ihrer Näherungsplatzierungsgruppe erstellen.You can also create an availability set in your proximity placement group. Verwenden Sie den gleichen -ProximityPlacementGroup-Parameter mit dem Cmdlet New-AzAvailabilitySet, um eine Verfügbarkeitsgruppe zu erstellen, und alle in der Verfügbarkeitsgruppe erstellten virtuellen Computer werden ebenfalls in derselben Näherungsplatzierungsgruppe erstellt.Use the same -ProximityPlacementGroup parameter with the New-AzAvailabilitySet cmdlet to create an availability set and all of the VMs created in the availability set will also be created in the same proximity placement group.

Um einer vorhandenen Näherungsplatzierungsgruppe eine vorhandene Verfügbarkeitsgruppe hinzuzufügen oder sie aus ihr zu entfernen, müssen Sie zuerst alle VMs in der Verfügbarkeitsgruppe beenden.To add or remove an existing availability set to a proximity placement group, you first need to stop all of the VMs in the availability set.

Verschieben einer vorhandenen Verfügbarkeitsgruppe in eine NäherungsplatzierungsgruppeMove an existing availability set into a proximity placement group

$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 
    } 

Verschieben einer vorhandenen Verfügbarkeitsgruppe aus einer NäherungsplatzierungsgruppeMove an existing availability set out of a proximity placement group

$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 
    } 

SkalierungsgruppenScale sets

Sie können auch eine Skalierungsgruppe in ihrer Näherungsplatzierungsgruppe erstellen.You can also create a scale set in your proximity placement group. Verwenden Sie den gleichen -ProximityPlacementGroup-Parameter mit New-AzVmss, um eine Skalierungsgruppe zu erstellen, und alle Instanzen werden in derselben Näherungsplatzierungsgruppe erstellt.Use the same -ProximityPlacementGroup parameter with New-AzVmss to create a scale set and all of the instances will be created in the same proximity placement group.

Um einer Näherungsplatzierungsgruppe eine vorhandene Skalierungsgruppe hinzuzufügen oder sie aus ihr zu entfernen, müssen Sie die Skalierungsgruppe zuerst beenden.To add or remove an existing scale set to a proximity placement group, you first need to stop the scale set.

Verschieben einer vorhandenen Skalierungsgruppe in eine NäherungsplatzierungsgruppeMove an existing scale set into a proximity placement group

$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
Restart-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName

Verschieben einer vorhandenen Skalierungsgruppe aus einer NäherungsplatzierungsgruppeMove an existing scale set out of a proximity placement group

$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  
Restart-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName

Nächste SchritteNext steps

Sie können auch die Azure CLI zum Erstellen von Näherungsplatzierungsgruppen verwenden.You can also use the Azure CLI to create proximity placement groups.