Резерв ресурсов по процентам (admission control) не снижает вероятность перезапуска ВМ

Данная статья является переводом статьи Duncan Epping об использовании резерва ресурсов по процентам. Этот тип резервирования (или Admission control) является любимым у Duncan’а, и я попытаюсь объяснить почему.

Вы все видели настройку HA-кластера, в которой настраивается тип резервирования ресурсов. Лично я предпочитаю резервирование ресурсов по процентам, хотя есть мнение, что это снижает вероятность перезапуска “больших” ВМ. Эти люди считают, что резервирование по слотам (host failures) дает большую вероятность перезапуска “больших” ВМ. Они все неправы 🙂 Давайте я приведу пример, который покажет ошибочность этого мнения.

Пример:

  • 5 хостов
  • 200 ГБ памяти в кластере
  • 20GHz процессоров в кластере

На виртуальных машинах не настроен резерв ресурсов по памяти или процессору.

Резервирование ресурсов кластера по процентам сделает следующее:

  1. Политика вычислит общее количество ресурсов и вычтет из него объем ресурсов, зарезервированных для отказоустойчивости. Если этот процент равен 20%, то вычитается 40 ГБ ОЗУ и 4 ГГц CPU. Останется 160 ГБ ОЗУ и 16ГГц CPU.
  2. Зарезервированные ресурсы для каждой включаемой виртуальной машины, вычитается из цифр, указанных в пункте №1. Если не установлен резерв памяти, то вычитаются накладные расходы на память (memory overhead). Если накладные расходы составляют 200 МБ, то они вычитаются из 160 ГБ, и остается 159,8 ГБ. Для процессора по умолчанию вычитается 32 МГц.
  3. Вы можете включать виртуальные машины, пока количество доступных ресурсов в соответствии с политикой управления ресурсами HA не будет исчерпано. Можно включить много ВМ.

Резервирование ресурсов по слотам (Host failure):

  1. Политика рассчитает количество слотов. Слот формируется из двух компонентов: памяти и процессора. Если резерва на CPU нет, то по умолчанию для процессора используется размер слота в  32 МГц, начиная с vSphere 5.0. Для памяти используется максимальный размер накладных расходов. Например, в нашем сценарии размер накладных расходов колеблется от 64 МБ до 300 МБ. Тогда 300 МБ будет использоваться для размера слота памяти.
  2. Теперь, когда известен размер слота, политика Admission Control найдет хост с наибольшим количеством слотов (имеющиеся ресурсы / размер слота) и вычтет эти слоты из общего количества доступных слотов (если необходимо пережить выход из строя одного хоста). Каждый раз, как включается виртуальная машина, вычитается слот. Если включается виртуальная машина с резервом памяти/процессора, мы возвращаемся к пункту №1 и заново вычисляем размер слота.
  3. Вы можете включать виртуальные машины, пока есть свободные слоты. В общем-то вы тоже можете включить много виртуальных машин.

На виртуальных машинах настроен резерв ресурсов по памяти или процессору.

Резервирование ресурсов по процентам:

  1. Политика вычислит общее количество ресурсов и вычтет из него объем ресурсов, зарезервированных для отказоустойчивости. Если этот процент равен 20%, то вычитается 40 ГБ ОЗУ и 4 ГГц CPU. Останется 160 ГБ ОЗУ и 16ГГц CPU.
  2. Зарезервированные ресурсов для каждой включенной виртуальной машины вычитаются из ресурсов в пункте №1. Если 10 ГБ памяти было зарезервировано, то в результате будут доступны 150 ГБ.
  3. Вы можете включать виртуальные машины, пока не исчерпаете свободные ресурсы. Но наличие резерва на память/процессор может уменьшить количество виртуальных машин, которые вы можете включить.

Резервирование ресурсов по слотам (Host failure):

  1. Политика рассчитает количество слотов. Слот формируется из двух компонентов: памяти и процессора. Для процессора по умолчанию используется значение 32 МГц. Если для какой-то ВМ зарезервировано 10 ГБ ОЗУ, то 10 ГБ будет использоваться как размер слота по памяти
  2. Теперь, когда известен размер слота, политика Admission Control найдет хост с наибольшим количеством слотов (имеющиеся ресурсы / размер слота) и вычтет эти слоты из общего количества доступных слотов (если необходимо пережить выход из строя одного хоста). Каждый раз при включении виртуальной машины вычитается один слот, да-да, тот самый слот размером 10 ГБ памяти, даже если она имеет резерв 2 ГБ. Если у включаемой виртуальной машины имеется больший резерв, чем у слота, мы возвращаемся к пункту №1 и пересчитываем размер слота.
  3. Вы можете включать виртуальные машины, пока есть свободные слоты, но большой объем резервов может значительно ограничить количество включенных ВМ.

Как вы можете видеть, единственный резерв памяти в 10 Гб может негативно повлиять на то, сколько виртуальных машин вы можете включить в вашем кластере. Для данного случая – всего 16 ВМ.

Чем же плох вариант с политикой резервирования ресурсов по процентам? Тем, что при выходе одного из хостов из строя мы не можем гарантировать, что на любом другом хосте будет не зарезервировано 10 Гб ОЗУ. Но этот случай нельзя назвать частым, да и количество ВМ должно быть далеко за сотню.

Вывод

Теоретически возможна ситуация, когда несколько виртуальных машин не смогут включиться при сбое, если у вас выбрана политика резервирования ресурсов по процентам. Но HA уже принял это резервирование и использует DRS при возникновении такой ситуации.

Следует также отметить, что политика резервирования по слотам (Host Failure) вообще заставляет отказаться от резервирования ресурсов многих администраторов VMware vSphere.

One thought on “Резерв ресурсов по процентам (admission control) не снижает вероятность перезапуска ВМ”

  1. Сделал у себя такую настройку. А то реально задрало, что резервирование ресурсов под HA отключено. При этом используется слотов в пять раз больше, чем есть в наличии…

Leave a Reply

Your email address will not be published. Required fields are marked *