توزيع الأجهزة الظاهرية إلى proximity placement groups باستخدام Azure PowerShell

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ أجهزة Windows الظاهرية

للحصول على الأجهزة الظاهرية أقرب ما يمكن، وتحقيق أقل زمن انتقال ممكن، يجب عليك توزيعها ضمن مجموعة موضع التقارب.

مجموعة موضع التقارب هي مجموعة منطقية تُستخدم للتأكد من أن موارد حساب Azure موجودة فعلياً بالقرب من بعضها البعض. تعد مجموعات موضع التقارب مفيدة لأحمال العمل التي تتطلب زمن انتقال منخفضاً.

إنشاء مجموعة موضع قرب

إنشاء مجموعة موضع تقارب باستخدام الأمر 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

قائمة بمجموعات موضع التقارب

يمكنك سرد كافة مجموعات مواضع التقارب باستخدام Get-AzProximityPlacementGroup cmdlet.

Get-AzProximityPlacementGroup

إنشاء الجهاز الظاهري

قم بإنشاء جهاز ظاهري في مجموعة موضع التقارب باستخدام -ProximityPlacementGroup $ppg.Id للإشارة إلى معرف مجموعة موضع التقارب عند استخدام New-AzVMSS لإنشاء جهاز ظاهري.

$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 cmdlet لإنشاء مجموعة توفر وسيتم أيضاً إنشاء جميع الأجهزة الظاهرية التي تم إنشاؤها في مجموعة التوفر في نفس مجموعة موضع التقارب.

لإضافة مجموعة توفر موجودة إلى مجموعة موضع تقارب أو إزالتها، تحتاج أولاً إلى إيقاف جميع الأجهزة الظاهرية في مجموعة التوفر.

نقل مجموعة توفر موجودة إلى مجموعة مواضع تقارب

$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 لإنشاء مجموعات مواضع التقارب.