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

Note

Многие шаги, перечисленные в этом документе, применяются к наборам виртуальных машин с масштабированием в единственный режим оркестрации. Мы рекомендуем использовать гибкую оркестрацию для новых рабочих нагрузок. Дополнительные сведения см. в режиме Оркестрации для масштабируемых наборов виртуальных машин в 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.

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

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

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

Повторное выравнивание ресурсов

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

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

Лучшие практики

  • Для наименьшей задержки используйте группы размещения по близости вместе с ускоренной сетью. Дополнительные сведения см. в статье "Создание виртуальной машины 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

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

Important

Начиная с ноября 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 для создания групп размещения по близости.