Функционал

Модуль расширяет функционал драйвера libvirt для гипервизоров KVM и QEMU. Virt позволяет задавать максимальное количество процессорных ядер и оперативной памяти виртуальной машины. Задавать значения можно одной конкретной машине или сразу группе машин по их типу. При этом подключение дополнительных ресурсов происходит "на лету", то есть без перезагрузки виртуальных машин и в пределах, указанных для типа максимальных значений.

Для задания максимальных значений для типа виртуальной машины необходимо указать следующие параметры в метаданных типа виртуальной машины:

cpu:maximum
mem:maximum

Где:

  • cpu:maximum - значение для максимального количества ядер процессора;
  • mem:maximum - значение для максимального количества оперативной памяти в Кбайтах.

После этого вновь создаваемые виртуальные машины будут наследовать от типа максимально допустимые параметры.

Для задания текущих значений для конкретных виртуальных машин нужно в метаданных указать:

cpu:current
mem:current

Где:

  • cpu:current - значение для текущего количества ядер процессора;
  • mem:current - значение для текущего количества оперативной памяти в Кбайтах.

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

По умолчанию подключенная оперативная память сразу доступна в гостевой системе. Ядра процессора же подключаются в выключенном (offline) состоянии.

Их можно перевести в online состояние командой:

echo 1 > /sys/devices/system/cpu/cpu<номер>/online

Для того, чтобы ядра подключались сразу в состоянии online, необходимо:

  1. В метаданных образа (или снимка виртуальной машины, или др.), с которого запускается гостевая система указать флаг hw_qemu_guest_agent со значением yes. Эта опция создает канал для подключения к пакету qemu-guest-agent на гостевой системе:

    nova image-meta <id-image> set hw_qemu_guest_agent=yes
    
  2. Установите на гостевой системе пакет qemu-guest-agent:

    apt-get install -y qemu-guest-agent
    systemctl enable qemu-guest-agent
    systemctl start qemu-guest-agent
    

При задании количества ядер меньше текущего значения отключенные ядра переходят в состояние offline и полностью отключаются от системы при перезагрузке.