Балансировка нагрузки между виртуальными машинами

Область применения: Azure Stack HCI версий 23H2 и 22H2; Windows Server 2022, Windows Server 2019, Windows Server 2016

Примечание

Рекомендуемый способ создания виртуальных машин и управления ими в Azure Stack HCI 23H2 — использование уровня управления Azure Arc. Используйте описанный ниже механизм для управления виртуальными машинами только в том случае, если вам нужны функциональные возможности, недоступные на виртуальных машинах Azure Arc.

Ключевым аспектом развертывания HCI является капитальные затраты (CapEx), необходимые для перехода в рабочую среду. Обычно это повышает избыточность, чтобы избежать недостаточной емкости во время пикового трафика в рабочей среде, но это увеличивает capEx. Такая избыточность часто необходима, так как на некоторых серверах в кластере размещается больше виртуальных машин, в то время как другие серверы используются недостаточно.

Включенная по умолчанию в Azure Stack HCI, Windows Server 2022, Windows Server 2019 и Windows Server 2016, балансировка нагрузки виртуальных машин — это функция, которая позволяет оптимизировать использование серверов в кластерах. Он идентифицирует чрезмерно зафиксированные серверы и выполняет динамическую миграцию виртуальных машин с этих серверов на недостаточно зафиксированные серверы. Соблюдаются политики сбоев, такие как защита от сходства, домены сбоя (сайты) и возможные владельцы.

Балансировка нагрузки виртуальной машины оценивает нагрузку сервера на основе следующих эвристических данных:

  • Текущая нехватка памяти: Память — это наиболее распространенное ограничение ресурсов на узле Hyper-V.
  • Загрузка ЦП в среднем за 5 минут: Устраняет чрезмерную фиксацию любого сервера в кластере.

Как работает балансировка нагрузки виртуальных машин?

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

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

При присоединении нового сервера к кластеру функция балансировки нагрузки виртуальной машины автоматически распределяет емкость между существующими серверами и только что добавленным сервером в следующем порядке:

  1. Нагрузка на память и загрузка ЦП оцениваются на существующих серверах в кластере.
  2. Определяются все серверы, превышающие пороговое значение.
  3. Серверы с наибольшим объемом памяти и загрузкой ЦП определяются для определения приоритета балансировки.
  4. Виртуальные машины переносятся в реальном времени (без простоев) с сервера, который превышает пороговое значение, на только что добавленный сервер в кластере.

Изображение, показывающее добавление нового сервера в кластер

Повторяющаяся балансировка нагрузки

По умолчанию балансировка нагрузки виртуальных машин настроена для периодической балансировки: нагрузка на память и загрузка ЦП на каждом сервере в кластере оцениваются для балансировки каждые 30 минут. Ниже приведены шаги.

  1. Нехватка памяти и загрузка ЦП оцениваются на всех серверах в кластере.
  2. Определяются все серверы, превышающие пороговое значение, и серверы, которые ниже порогового значения.
  3. Серверы с наибольшим объемом памяти и загрузкой ЦП определяются для определения приоритета балансировки.
  4. Виртуальные машины переносятся в режиме реального времени (без простоев) с сервера, который превышает пороговое значение, на другой сервер, который не превышает минимальное пороговое значение.

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

Настройка балансировки нагрузки виртуальных машин с помощью Windows Admin Center

Самый простой способ настроить балансировку нагрузки виртуальных машин — использовать Windows Admin Center.

Настройка балансировки нагрузки виртуальных машин с помощью Windows Admin Center

  1. Подключитесь к кластеру и перейдите в раздел Сервис > Параметры.

  2. В разделе Параметры выберите Балансировка нагрузки виртуальных машин.

  3. В разделе Балансировка виртуальных машин выберите Всегда балансировать нагрузку при присоединении к серверу. Каждые 30 минут серверные соединения будут балансировать нагрузку только при присоединении сервера или Никогда , чтобы отключить функцию балансировки нагрузки виртуальной машины. Значение по умолчанию — Always.

  4. В разделе Агрессивность выберите Низкий для динамической миграции виртуальных машин, если сервер загружен более чем на 80 %, Средний для миграции при загрузке сервера более чем на 70 % или Высокий для среднего значения серверов в кластере и миграция, когда сервер более чем на 5 % выше среднего. Значение по умолчанию — Низкий.

Настройка балансировки нагрузки виртуальных машин с помощью Windows PowerShell

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

(Get-Cluster).AutoBalancerMode = <value>
AutoBalancerMode Поведение
0 Выключено
1 Балансировка нагрузки при присоединении к серверу
2 (по умолчанию) Балансировка нагрузки при присоединении к серверу и каждые 30 минут

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

(Get-Cluster).AutoBalancerLevel = <value>
AutoBalancerLevel Агрессивность Поведение
1 (по умолчанию) Низкий Перемещение при загрузке узла более чем на 80 %
2 Средний Перемещение при загрузке узла более чем на 70 %
3 Высокий Среднее значение серверов в кластере и перемещение, если узел более чем на 5 % выше среднего

Чтобы проверка, как AutoBalancerLevel задаются свойства и AutoBalancerMode , выполните следующую команду в PowerShell:

Get-Cluster | fl AutoBalancer*

Дальнейшие действия

Дополнительные сведения см. также в разделе: