Атлас глобальных конфигурационных переменных Apache CloudStack, задаваемых на уровне хоста KVM

В статье описаны не все параметры, а только те, которые обычно требуется изменять при конфигурировании новых облаков CloudStack, использующих гипервизор KVM. Параметры для хоста KVM применяются при конфигурировании хоста и после каждой перезагрузки агента cloudstack-agent.

Версия CloudStack: 4.11.1

Поменять параметры можно в конфигурационном файле на узле виртуализации: /etc/cloudstack/agent/agent.properties

Многие параметры описаны в документации Apache CloudStack. Полный список параметров с комментариями можно посмотреть в Git-репозитории CloudStack. Поскольку не все параметры задокументированы, то их часть можно посмотреть в исходном коде. Описанные далее параметры рекомендуется указывать уже после успешного добавления хоста к облаку, но до выделения виртуальных машин.

vm.migrate.downtime

  • Предлагаемое значение: 10000
  • Максимальное время недоступности, которое можно допустить при миграции виртуальной машины. В данном случае предлагается использовать 10 секунд. Этот параметр влияет на осуществимость миграции с помощью libvirt. Чем больше допустимое время недоступности, тем вероятнее, что сильно загруженные виртуальные машины смогут мигрировать. Рекомендуется не уменьшать этот параметр ниже того уровня, который для Вас приемлем.

vm.migrate.pauseafter

  • Предлагаемое значение: 60000
  • Параметр определяет через какое время миграции libvirt выполнит для VM (suspend) и мигрирует в замороженном состоянии. Этот параметр важен для нагруженных машин, которые так интенсивно работают с памятью, что libvirt не может их мигрировать. Если установите в слишком высокое значение, то некоторые машины могут мигрировать очень долго. Обычно на каналах 10G и шире большинство машин должны мигрировать за 10-20 секунд, поэтому 60 секунд выглядят оправданными. В случае использования канало 1Gbit/s мы рекомендуем данное время уменьшать, поскольку это повышает вероятность миграции и уменьшает ее время.

host.overcommit.mem.mb

  • Предлагаемое значение: 0
  • Данный параметр может использоваться при применении механизмов сжатия памяти, таких как KSM, zSwap, zRAM, а так же быстрых устройств подкачки. Если ваша эвристика показывает, например, что при памяти узла 128 GB и использовании механизмов сжатия и подкачки, виртуальные машины комфортно чувствуют себя при выделении памяти в 160 GB, то можно указать, host.overcommit.mem.mb = 32768, что будет соответствовать 32 GB дополнительной доступной памяти.

host.reserved.mem.mb

  • Предлагаемое значение: 1024
  • Уровень резервирования памяти хоста для невыделения. Полезный параметр, если на узле используется какое-то иное программное обеспечение, которое требует памяти. К примеру, если на узле совместно с гипервизором установлены демоны Ceph, то этот параметр необходимо установить в значение равное необходимому резерву памяти + 1 GB для агента CloudStack. В случае использования данного параметра host.overcommit.mem.mb должен быть установлен в 0.

guest.cpu.mode

  • Предлагаемое значение: host-passthrough
  • виртуальные машины видят модель CPU такой, какая она есть. Данный параметр стоит менять только в том случае, если в кластере используются CPU разных поколений. В этом случае, при миграции необходимо, чтобы модели были одинаковые, а с host-passthrough они будут разными, соответственно, миграция работать не будет. Если же поколение CPU одно, пусть и разные CPU, то можно ставить host-passthrough.

vm.watchdog.action

  • Предлагаемое значение: reset
  • Если watchdog виртуальной машины обнаружил, что виртуальная машина зависла, то она будет перезагружена. Еще можно поставить “none” (по-умолчанию) и “poweroff”.

vm.watchdog.model

  • Предлагаемое значение: i6300esb
  • Какую модель вотчдог использовать. Это значение является рекомендуемым.

Другие параметры агента KVM CloudStack имеют “хорошие” значения, заданные по-умолчанию и, обычно, не требуют изменения.