Технический справочник. Балансировка нагрузки, планирование и миграция
1. Балансировка нагрузки, планирование и миграция
Отдельные хосты пользуются ограниченными аппаратными ресурсами и подвержены отказам. Чтобы предупредить отказы и нехватку ресурсов, хосты объединяют в кластеры, которые по сути представляют собой группу общих ресурсов. Политика балансировки нагрузки, планирования и миграции регулирует, как среда zVirt будет реагировать на изменение потребности в ресурсах хостов. Менеджер управления может сделать так, чтобы ни один хост в кластере не отвечал за все виртуальные машины в этом кластере. И наоборот, Менеджер управления способен распознать малоиспользуемый хост и перенести с него все виртуальные машины, позволяя администратору отключить этот хост для экономии электроэнергии.
Проверка доступных ресурсов происходит в трех случаях:
-
Запуск виртуальной машины. Ресурсы проверяются, чтобы определить, на каком хосте будет запущена виртуальная машина.
-
Миграция виртуальной машины. Ресурсы проверяются, чтобы определить подходящий целевой хост.
-
По расписанию. Ресурсы проверяются через равные промежутки времени, чтобы определить, соответствует ли загрузка отдельных хостов политике балансировки нагрузки кластера.
Менеджер управления реагирует на изменения в доступных ресурсах, применяя политику балансировки нагрузки для кластера, чтобы запланировать миграцию виртуальных машин с одного хоста в кластере на другой. В следующих разделах будет рассмотрено, как связаны между собой политика балансировки нагрузки, планирование и миграция виртуальных машин.
2. Политика балансировки нагрузки
Политика балансировки нагрузки устанавливается для кластера, который включает в себя один или несколько хостов, у каждого из которых могут быть различные аппаратные параметры и доступная память. Менеджер управления применяет политику балансировки нагрузки, чтобы определить, на каком хосте кластера запускать виртуальную машину. Политика балансировки нагрузки также позволяет Менеджеру управления определять, когда перемещать виртуальные машины с перегруженных хостов на недогруженные.
Процесс балансировки нагрузки выполняется раз в минуту для каждого кластера в центре данных. В результате определяется, какие хосты перегружены, какие недогружены и на какие из них можно перенести виртуальные машины. Все это рассчитывается на основе политики балансировки нагрузки, установленной администратором для конкретного кластера. Варианты политик балансировки нагрузки:
-
Равномерное распределение ВМ (VM_Evenly_Distributed)
-
Равномерное распределение (Evenly_Distributed)
-
Энергосбережение (Power_Saving)
-
Обслуживание кластера (Cluster_Maintenance)
-
Не назначена (None).
2.1. Политика балансировки нагрузки: Равномерное распределение ВМ (VM_Evenly_Distributed)
Эта политика распределяет виртуальные машины равномерно между хостами, исходя из количества виртуальных машин. Наибольшее число виртуальных машин — это максимальное количество виртуальных машин, которое может работать на каждом хосте и превышение которого считается перегрузкой хоста. Политика Равномерного распределения ВМ (VM_Evenly_Distributed) позволяет администратору задать наибольшее число виртуальных машин для хостов. Максимальную разницу (включительно) между количеством виртуальных машин на наиболее загруженном и наименее загруженном хостах тоже может задать администратор. Кластер сбалансирован, если для каждого хоста в кластере количество виртуальных машин не превышает этого порога миграции. Кроме того, администратор определяет количество слотов для виртуальных машин, которые должны быть зарезервированы на хостах SPM. Загрузка на хосте SPM будет ниже, чем на других хостах, т.е. эта переменная определяет, насколько меньше виртуальных машин может работать на хосте SPM по сравнению с другими хостами. Если на каком-либо хосте количество работающих виртуальных машин превышает наибольшее число виртуальных машин, и хотя бы на одном хосте количество виртуальных машин превышает порог миграции, то виртуальные машины по одной перемещаются на тот хост в кластере, который потребляет меньше всего ресурсов ЦП. Виртуальные машины будут переноситься одна за другой до тех пор, пока на каждом хосте в кластере количество виртуальных машин не опустится ниже порога миграции.
2.2. Политика балансировки нагрузки: Равномерное распределение (Evenly_Distributed)
Согласно этой политике для новых виртуальных машин выбираются хосты с наименьшей загрузкой ЦП или наибольшим объемом доступной оперативной памяти. Максимальная загрузка ЦП и наименьший объем доступной памяти, допустимые для хостов в кластере в течение определенного времени, устанавливаются параметрами политики планирования "равномерное распределение". При выходе за эти пределы производительность среды будет снижаться. Политика равномерного распределения позволяет администратору задать эти уровни для работающих виртуальных машин. Если загрузка ЦП или объем доступной памяти на хосте достигли заданного предельного значения и сохраняются на этом уровне дольше установленного времени, то виртуальные машины одна за другой переносятся с этого хоста на тот хост в кластере, у которого наименьшая загрузка ЦП или наибольший объем доступной памяти, в зависимости от того, что из этого потребляется. Ресурсы хоста проверяются каждую минуту, и виртуальные машины переносятся одна за другой до тех пор, пока загрузка ЦП или объем доступной памяти на хосте не вернутся в норму.
2.3. Политика балансировки нагрузки: Энергосбережение (Power_Saving)
Согласно этой политике для новых виртуальных машин выбираются хосты с наименьшей загрузкой ЦП или наибольшим объемом доступной оперативной памяти. Максимальная загрузка ЦП и наименьший объем доступной памяти, допустимые для хостов в кластере в течение определенного времени, устанавливаются параметрами политики планирования "энергосбережение". При выходе за эти пределы производительность среды будет снижаться. Параметры энергосбережения также устанавливают минимальную загрузку ЦП и наибольший объем доступной памяти, допустимые для хостов в кластере в течение определенного времени, прежде чем дальнейшая работа хоста будет признана неэффективным расходованием электроэнергии. Если загрузка ЦП или наименьший объем доступной памяти на хосте достигли предельного значения и сохраняются на этом уровне дольше установленного времени, то виртуальные машины одна за другой переносятся с этого хоста на тот хост, у которого наименьшая загрузка ЦП или наибольший объем доступной памяти, в зависимости от того, что из этого потребляется. Ресурсы хоста проверяются каждую минуту, и виртуальные машины переносятся одна за другой до тех пор, пока загрузка ЦП или объем доступной памяти на хосте не вернутся в норму. Если загрузка ЦП хоста падает ниже заданного минимального уровня или объем доступной памяти хоста поднимается выше заданного максимального уровня, то виртуальные машины будут переноситься с этого хоста на другие хосты в кластере до тех пор, пока на других хостах в кластере загрузка ЦП и объем доступной памяти будут оставаться в пределах нормы. Когда на недогруженном хосте не останется виртуальных машин, Менеджер управления автоматически отключит питание на хосте и перезапустит его снова, когда потребуется балансировка нагрузки или в кластере не будет достаточно свободных хостов.
2.4. Политика балансировки нагрузки: Не назначен (None)
Если политика балансировки нагрузки не выбрана, то виртуальные машины запускаются на хосте в кластере с наименьшей загрузкой ЦП и доступной памятью. Для определения загрузки ЦП используется группа показателей, при этом учитывается количество виртуальных ЦП и процент загрузки ЦП. Такой подход наименее динамичен, поскольку единственный момент выбора хоста — это момент запуска новой виртуальной машины. Виртуальные машины не переносятся автоматически при повышении требований к хосту.
Администратор должен решить, на какой хост лучше переместить определенную виртуальную машину. Виртуальные машины также могут быть ассоциированы с определенным хостом с помощью закрепления. Закрепление не дает виртуальной машине автоматически перемещаться на другие хосты. В средах с интенсивным потреблением ресурсов лучше всего использовать ручную миграцию.
2.5. Политика балансировки нагрузки: Обслуживание кластера (Cluster_Maintenance)
Эта политика ограничивает активность в кластере во время выполнения задач технического обслуживания. Когда задана политика обслуживания кластера:
-
нельзя запускать новые виртуальные машины, кроме виртуальных машин с признаком высокой доступности (пользователи могут создавать виртуальные машины с признаком высокой доступности и запускать их вручную).
-
в случае отказа хоста виртуальные машины с признаком высокой доступности перезапустятся в установленном порядке, и любую виртуальную машину можно будет переместить.
3. Резервирование виртуальных машин с признаком высокой доступности
Политика резервирования виртуальных машин с признаком высокой доступности позволяет Менеджеру управления отслеживать ресурсы кластера для виртуальных машин с признаком высокой доступности. Менеджер управления может помечать отдельные виртуальные машины как обладающие признаком высокой доступности, т.е. в случае отказа хоста эти виртуальные машины будут перезагружены на альтернативном хосте. Эта политика позволяет равномерно распределять виртуальные машины с признаком высокой доступности между хостами в кластере. В случае отказа какого-либо хоста в кластере оставшиеся хосты смогут принять нагрузку виртуальных машин с признаком высокой доступности без ущерба для производительности кластера. Когда включено резервирование виртуальных машин с признаком высокой доступности, Менеджер управления обеспечивает наличие достаточных ресурсов в кластере для виртуальных машин с признаком высокой доступности, чтобы перенести их в случае внезапного отказа их текущего хоста.
4. Планирование
В zVirt под планированием понимается то, как Менеджер управления выбирает в кластере хост для новой или перемещаемой виртуальной машины.
У подходящего хоста должно быть достаточно свободной памяти и ресурсов ЦП, чтобы удовлетворить требования виртуальной машины, которая будет запущена на нем или перемещена на него. Виртуальная машина не запустится на хосте с перегруженным ЦП. По умолчанию ЦП хоста считается перегруженным, если нагрузка на него превышает 80% в течение 5 минут, но эти значения можно изменить с помощью политик планирования. Если подходит несколько хостов, то один из них будет выбран согласно политике балансировки нагрузки для кластера. Например, если действует политика "Равномерное распределение" (Evenly_Distributed), то Менеджер управления выбирает хост с наименьшей загрузкой ЦП. Если действует политика "Энергосбережение" (Power_Saving), то будет выбран хост с наименьшей загрузкой ЦП и попадающий в диапазон между максимальным и минимальным уровнями обслуживания. Статус SPM конкретного хоста также влияет на то, насколько хост подходит для запуска новых или приема перемещаемых виртуальных машин. В качестве приемника предпочтительнее хост без статуса SPM, например, первая виртуальная машина, запущенная в кластере, не будет запускаться на хосте SPM, если роль SPM принадлежит хосту в этом кластере.
Дополнительную информацию см. в разделе Политики планирования руководства администратора.
5. Миграция
Менеджер управления прибегает к миграции, чтобы обеспечить соблюдение политик балансировки нагрузки для кластера. Миграция виртуальных машин происходит в соответствии с политикой балансировки нагрузки для кластера и текущими требованиями к хостам в кластере. Можно также настроить автоматическое выполнение миграции на случай изоляции хоста или его перевода в режим обслуживания. Менеджер управления сначала переносит виртуальные машины с наименьшей загрузкой ЦП. Она рассчитывается в процентах, при этом не учитывается использование ОЗУ или операций ввода-вывода, кроме тех случаев, когда операции ввода-вывода влияют на загрузку ЦП. Если у нескольких виртуальных машин загрузка ЦП одинаковая, то первой будет перенесена та, по которой первой придет ответ на запрос Менеджера управления к базе данных, сделанный для определения использования ЦП виртуальной машины.
По умолчанию при миграции виртуальных машин действуют следующие ограничения:
-
Полоса пропускания при миграции каждой виртуальной машины ограничена 52 МиБ/с.
-
Таймаут миграции составляет 64 секунды на каждый ГБ памяти виртуальной машины.
-
Миграция будет отменена, если ее процесс замрет на 240 секунд.
-
При параллельных исходящих миграциях возможна либо только одна миграция на каждое ядро ЦП на каждый хост, либо две миграции в совокупности – в зависимости от того, что меньше.