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

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

VM'leri mümkün olan en düşük gecikme süresine ulaşarak mümkün olduğunca yakın hale getirmek için 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ınlık yerleştirme 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 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 yakınlık yerleştirme gruplarının tümü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

New-AzVM kullanarak VM'yi oluştururken 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

Var olan bir VM'yi yakınlık yerleştirme grubuna da 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

Mevcut vm'yi yakınlık yerleştirme grubundan dışarı taşıma

Bir 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. Bir kullanılabilirlik kümesi oluşturmak için New-AzAvailabilitySet cmdlet'i ile 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 ö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

Mevcut ö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.