مشاركة عبر


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

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

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

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

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

إنشاء مجموعة موضع تقارب باستخدام الأمر New-AzProximityPlacementGroup cmdlet.

$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 cmdlet.

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