Azure PowerShell kullanarak VM'leri yakın yerleştirme gruplarına dağıtma

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri

VM'leri mümkün olduğunca yakın hale getirmek ve mümkün olan en düşük gecikme süresini elde etmek için, bunları bir yakınlık yerleştirme grubu içinde dağıtmanız gerekir.

Yakınlık yerleştirme grubu, Azure işlem kaynaklarının fiziksel olarak birbirine yakın olduğundan emin olmak için kullanılan mantıksal bir gruplandırmadır. Yakın yerleştirilen gruplar, düşük gecikme süresinin gerekli olduğu iş yükleri için kullanışlıdır.

Yakınlık yerleştirme grubu oluşturma

New-AzProximityPlacementGroup cmdlet'ini kullanarak bir yakınlık yerleştirme grubu oluşturun.

$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

Yakınlık yerleştirme gruplarını listeleme

Get-AzProximityPlacementGroup cmdlet'ini kullanarak tüm yakınlık yerleştirme gruplarını listeleyebilirsiniz.

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

VM oluşturma

Vm'yi oluşturmak için New-AzVM kullanırken yakınlık yerleştirme grubu kimliğine başvurmak için kullanarak -ProximityPlacementGroup $ppg.Id yakınlık yerleştirme grubunda bir VM oluşturun.

$vmName = "myVM"

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

Get-AzProximityPlacementGroup komutunu kullanarak yerleştirme grubunda VM'yi görebilirsiniz.

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

Mevcut vm'yi yakınlık yerleştirme grubuna taşıma

Yakınlık yerleştirme grubuna mevcut bir VM'yi de ekleyebilirsiniz. Önce VM'yi durdurmanız\serbest bırakmanız, ardından VM'yi güncelleştirmeniz ve yeniden başlatmanız gerekir.

$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

Var olan bir VM'yi yakınlık yerleştirme grubundan dışarı taşıma

Vm'yi yakınlık yerleştirme grubundan kaldırmak için önce VM'yi durdurmanız\serbest bırakmanız, ardından VM'yi güncelleştirmeniz ve yeniden başlatmanız gerekir.

$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

Kullanılabilirlik Kümeleri

Yakınlık yerleştirme grubunuzda bir kullanılabilirlik kümesi de oluşturabilirsiniz. Kullanılabilirlik kümesi oluşturmak için New-AzAvailabilitySet cmdlet'iyle aynı -ProximityPlacementGroup parametreyi kullanın; kullanılabilirlik kümesinde oluşturulan tüm VM'ler de aynı yakınlık yerleştirme grubunda oluşturulur.

Yakınlık yerleştirme grubuna mevcut bir kullanılabilirlik kümesini eklemek veya kaldırmak için önce kullanılabilirlik kümesindeki tüm VM'leri durdurmanız gerekir.

Mevcut kullanılabilirlik kümesini yakınlık yerleştirme grubuna taşıma

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

Mevcut kullanılabilirlik kümesini yakınlık yerleştirme grubundan taşıma

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

Ölçek kümeleri

Yakınlık yerleştirme grubunuzda bir ölçek kümesi de oluşturabilirsiniz. Bir ölçek kümesi oluşturmak için New-AzVmss ile aynı -ProximityPlacementGroup parametreyi kullanın; tüm örnekler aynı yakınlık yerleştirme grubunda oluşturulur.

Yakınlık yerleştirme grubuna mevcut bir ölçek kümesini eklemek veya kaldırmak için önce ölçek kümesini durdurmanız gerekir.

Mevcut bir ölçek kümesini yakınlık yerleştirme grubuna taşıma

$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

Var olan bir ölçek kümesini yakınlık yerleştirme grubundan dışarı taşıma

$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

Sonraki adımlar

Yakınlık yerleştirme grupları oluşturmak için Azure CLI'yi de kullanabilirsiniz.