Балансировка нагрузки между виртуальными машинами
Область применения: 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.
- Загрузка ЦП в среднем за пять минут: Устраняет превышение фиксации любого сервера в кластере.
Как работает балансировка нагрузки виртуальных машин?
Балансировка нагрузки виртуальных машин происходит автоматически при добавлении нового сервера в кластер, а также может быть настроена для периодической повторяющейся балансировки нагрузки.
При добавлении нового сервера в кластер
При присоединении нового сервера к кластеру функция балансировки нагрузки виртуальной машины автоматически распределяет емкость с существующих серверов на добавленный сервер в следующем порядке:
- Нехватка памяти и загрузка ЦП оцениваются на существующих серверах в кластере.
- Определяются все серверы, превышающие пороговое значение.
- Серверы с наибольшим объемом памяти и загрузкой ЦП определяются для определения приоритета балансировки.
- Виртуальные машины переносятся в режиме реального времени (без простоя) с сервера, который превышает пороговое значение для добавленного сервера в кластере.
Повторяющаяся балансировка нагрузки
По умолчанию балансировка нагрузки виртуальных машин настраивается для периодической балансировки: нехватка памяти и загрузка ЦП на каждом сервере в кластере оцениваются для балансировки каждые 30 минут. Ниже приведены шаги.
- Нагрузка на память и загрузка ЦП оцениваются на всех серверах в кластере.
- Определяются все серверы, превышающие пороговое значение, и те, которые ниже порогового значения.
- Серверы с наибольшим объемом памяти и загрузкой ЦП определяются для определения приоритета балансировки.
- Виртуальные машины переносятся в режиме реального времени (без простоя) с сервера, который превышает пороговое значение на другой сервер, который находится под минимальным пороговым значением.
Настройка балансировки нагрузки виртуальной машины с помощью Windows Admin Center
Самый простой способ настроить балансировку нагрузки виртуальных машин — использовать Windows Admin Center.
Подключение в кластер и перейдите в Параметры "Сервис>".
В разделе Параметры выберите балансировку нагрузки виртуальных машин.
В разделе "Балансировка нагрузки виртуальных машин" выберите "Всегда " для балансировки нагрузки при соединении сервера и каждые 30 минут , сервер присоединяется к балансировке нагрузки только при соединениях сервера или никогда не отключает функцию балансировки нагрузки виртуальных машин. Значение по умолчанию — Always.
В разделе "Агрессивность" выберите "Низкий" для динамической миграции виртуальных машин, если сервер загружен более чем на 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*
Дальнейшие действия
Дополнительные сведения см. также: