В статье описаны не все параметры, а только те, которые обычно требуется изменять при конфигурировании новых облаков 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 имеют “хорошие” значения, заданные по-умолчанию и, обычно, не требуют изменения.