Создание группы размещения близкого взаимодействия с помощью PowerShell

Примечание.

Многие шаги, перечисленные в этом документе, применяются к Масштабируемые наборы виртуальных машин с помощью режима единой оркестрации. Мы рекомендуем использовать гибкую оркестрацию для новых рабочих нагрузок. Дополнительные сведения см. в режимах Orchesration для Масштабируемые наборы виртуальных машин в Azure.

Размещение виртуальных машин в одном регионе сокращает физическое расстояние между экземплярами. Поместив их в одну зону доступности, вы также разместите виртуальные машины физически ближе друг к другу. Однако по мере роста объема ресурсов Azure одна зона доступности может охватывать несколько физических центров обработки данных, что может привести к задержке в сети, влияющей на ваше приложение.

Чтобы виртуальные машины располагались максимально близко и взаимодействовали с наименьшей задержкой, следует развертывать их в группе размещения близкого взаимодействия.

Группа размещения близкого взаимодействия — это логическая группировка, используемая для того, чтобы ресурсы вычислений Azure физически размещались близко друг к другу. Группа размещения близкого взаимодействия удобны для рабочих нагрузок, где требуется низкая задержка.

  • Низкая задержка между изолированными виртуальными машинами.
  • Низкая задержка между виртуальными машинами в одном наборе доступности или масштабируемом наборе виртуальных машин.
  • Низкая задержка между изолированными виртуальными машинами, виртуальными машинами в нескольких группах доступности или нескольких масштабируемых наборах. Можно поместить несколько вычислительных ресурсов в одну группу размещения, чтобы объединить многоуровневое приложение.
  • Низкая задержка между несколькими уровнями приложения, использующими оборудование различных типов. Например, серверная часть может работать на экземпляре серии M в группе доступности, а внешний интерфейс — на экземпляре серии D в масштабируемом наборе, которые размещены в одной группе размещения близкого взаимодействия.

Использование групп размещения близкого взаимодействия

Группа размещения близкого взаимодействия — это ресурс в Azure. Необходимо создать этот ресурс, прежде чем использовать с другими ресурсами. После создания его можно использовать с виртуальными машинами, группами доступности или Масштабируемые наборы виртуальных машин. Группа размещения близкого взаимодействия указывается при создании вычислительных ресурсов с помощью идентификатора этой группы.

Можно также переместить существующий ресурс в группу размещения близкого взаимодействия. При перемещении ресурса в группу размещения близкого взаимодействия необходимо сначала остановить (освободить) ресурс, так как он может быть затем повторно развернут в другом центре обработки данных в регионе, соответствующем ограничению совместного размещения.

В случае групп доступности и Масштабируемые наборы виртуальных машин следует задать группу размещения близкого взаимодействия на уровне ресурса, а не на отдельных виртуальных машинах.

Группа размещения близкого взаимодействия является скорее ограничением совместного размещения, чем механизмом закрепления. Она закрепляется за определенным центром обработки данных после развертывания первого ресурса, который ее использует. После того как все ресурсы, использующие группу размещения близкого взаимодействия, будут остановлены (освобождены) или удалены, эта группа больше не будет считаться закрепленной. Поэтому при использовании группы размещения близкого взаимодействия с виртуальными машинами нескольких серий важно заранее указать все требуемые типы в шаблоне, если это возможно, или последовательно выполнять развертывание, что повысит вероятность его успешного завершения. В случае сбоя развертывания перезапустите его, указав размер виртуальной машины, который привел к сбою, в качестве первого развертываемого размера.

Что следует ожидать при использовании групп размещения близкого взаимодействия

Группы размещения близкого взаимодействия обеспечивают совместное размещение в одном центре обработки данных. Но так как группы размещения близкого взаимодействия накладывают дополнительное ограничение развертывания, могут возникать сбои при выделении ресурсов. Существует несколько вариантов использования, когда при использовании групп размещения близкого взаимодействия могут возникать сбои выделения.

  • Когда вы запрашиваете первую виртуальную машину в группе размещения близкого взаимодействия, центр обработки данных выбирается автоматически. В некоторых случаях второй запрос на другой номер SKU виртуальной машины может завершиться ошибкой, если он не существует в этом центре обработки данных. В этом случае возвращается ошибка OverconstrainedAllocationRequest. Чтобы избежать этого, попробуйте изменить порядок развертывания номеров SKU или развернуть оба ресурса с помощью одного шаблона ARM.
  • В случае эластичных рабочих нагрузок, в которых вы добавляете и удаляете экземпляры виртуальных машин, ограничение группы размещения близкого взаимодействия для развертывания может привести к сбою в выполнении запроса, что приводит к ошибке AllocationFailure .
  • Остановка (освобождение) и запуск виртуальных машин по мере необходимости — это еще один способ обеспечить эластичность. Так как емкость не сохраняется после остановки (сделки) виртуальной машины, запуск ее снова может привести к ошибке AllocationFailure .
  • Операции запуска и повторного развертывания виртуальных машин будут по-прежнему учитывать группу размещения близкого взаимодействия после настройки.

Плановое обслуживание и группы размещения близкого взаимодействия

События планового обслуживания, например списание оборудования в центре обработки данных Azure, потенциально могут влиять на согласование ресурсов в группах размещения близкого взаимодействия. Ресурсы могут быть перемещены в другой центр обработки данных, что нарушает ожидание коллокации и задержки, связанные с группой размещения близкого взаимодействия.

Проверка состояния согласования

Вы можете выполнить следующие действия, чтобы проверить состояние согласования для групп размещения близкого взаимодействия.

  • Состояние совместного размещения группы размещения близкого взаимодействия можно просмотреть с помощью портала, интерфейса командной строки и PowerShell.

    • При использовании PowerShell состояние совместного размещения можно получить с помощью командлета Get-AzProximityPlacementGroup, добавив в него необязательный параметр -ColocationStatus.

    • При использовании CLI состояние совместного размещения можно получить с помощью команды az ppg show, добавив в нее необязательный параметр --include-colocation-status.

  • Для каждой группы размещения близкого взаимодействия в свойстве Статус совместного размещения содержится сводка состояния согласования сгруппированных ресурсов.

    • Aligned (Согласована): ресурс соответствует задержке для группы размещения близкого взаимодействия.

    • Unknown (Неизвестно): освобожден по крайней мере один ресурс виртуальной машины. После успешного запуска для состояния отобразится значение Согласовано.

    • Not aligned (Не согласована): по меньшей мере один ресурс не согласован с группой размещения близкого взаимодействия. Конкретные ресурсы, которые не были согласованы, будут также указаны отдельно в разделе членства.

  • Для групп доступности можно просмотреть сведения о согласовании отдельных виртуальных машин на странице обзора группы доступности.

  • Для масштабируемых наборов сведения о согласовании отдельных экземпляров можно просмотреть на вкладке Экземпляры страницы Обзор масштабируемого набора.

Повторное согласование ресурсов

Если группа размещения близкого взаимодействия находится в состоянии Not Aligned (Не согласована), можно остановить (освободить), а затем перезапустить затронутые ресурсы. Если виртуальная машина находится в группе доступности или масштабируемом наборе, сначала необходимо остановить (освободить) все виртуальные машины в этой группе доступности или масштабируемом наборе, прежде чем перезапустить ее.

Если из-за ограничений развертывания возникает сбой выделения, может потребоваться остановить\deallocate все ресурсы в группе размещения затронутых близкого взаимодействия (включая выровненные ресурсы), а затем перезапустить их для восстановления выравнивания.

Рекомендации

  • Чтобы обеспечить минимальную задержку, используйте для групп размещения близкого взаимодействия ускорение сети. Дополнительные сведения см. в статьях Создание виртуальной машины Linux с ускоренной сетью и Создание виртуальной машины Windows с ускоренной сетью.
  • Развертывайте все размеры виртуальных машин в одном шаблоне. Чтобы избежать размещения на оборудовании, которое не поддерживает все требуемые номера SKU и размеры виртуальных машин, добавьте все уровни приложения в один шаблон, чтобы они были развернуты одновременно.
  • Если вы выполняете скрипт развертывания с помощью PowerShell, CLI или пакета SDK, может возникнуть ошибка OverconstrainedAllocationRequestвыделения. В этом случае следует остановить (освободить) все имеющиеся виртуальные машины, а также изменить последовательность в сценарии развертывания, чтобы она начиналась с номеров SKU или размеров виртуальных машин, из-за которых произошел сбой.
  • При повторном использовании существующей группы размещения, из которой были удалены виртуальные машины, дождитесь полного завершения удаления, прежде чем добавлять в нее виртуальные машины.
  • Если задержка является приоритетной, поместите виртуальные машины в группу размещения близкого взаимодействия, а все решение разместите в зоне доступности. Но если приоритетной является устойчивость, распределите экземпляры между несколькими зонами доступности (одна группа размещения близкого взаимодействия не может охватывать несколько зон).

Создание группы размещения близкого взаимодействия

Создайте группу размещения близкого взаимодействия с помощью командлета New-AzProximityPlacementGroup.

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

Get-AzProximityPlacementGroup

Создание масштабируемого набора в группе размещения близкого взаимодействия

Важно!

Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub

Создайте масштаб в группе размещения близкого взаимодействия с помощью -ProximityPlacementGroup $ppg.Id для ссылки на идентификатор группы размещения близкого взаимодействия при использовании New-AzVMSS для создания масштабируемого набора.

$scalesetName = "myVM"

New-AzVmss `
  -ResourceGroupName $resourceGroup `
  -Location $location `
  -OrchestrationMode "Uniform" `
  -VMScaleSetName $scalesetName `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -ProximityPlacementGroup $ppg.Id

Экземпляр можно просмотреть в группе размещения с помощью Get-AzProximityPlacementGroup.

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

Следующие шаги

Можно также использовать Azure CLI для создания групп размещения близкого взаимодействия.