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

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

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

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

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

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

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

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

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

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

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

Image showing a new server being added to a cluster

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

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

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

Image showing a live cluster being automatically rebalanced

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

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

Configuring VM load balancing with Windows Admin Center

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

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

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

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

Настройка балансировки нагрузки виртуальных машин с помощью 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*

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

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