Функционал

Модуль расширяет функционал драйвера 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 и полностью отключаются от системы при перезагрузке.

Передача информации об аппаратном обеспечении виртуальной машины

  1. Для того, чтобы настроить передачу данных об аппаратном обеспечении виртуальной машины, необходимо:

  2. При создании виртуальной машины через Nova Virt Driver информация об аппаратном обеспечении передается в каталог /tmp создаваемой виртуальной машины. Информация представлена в виде двух файлов cpu.info и harware.info:

    • Файл /tmp/cpu.info содержит столбцы:

      Processor number NUMA node Cores
           

      Где:

    • Файл /tmp/harware.info содержит столбцы:

      Device model Device type NUMA node
           

      Где:

      • Device model - это модель устройства;
      • Device type - это тип устройства (например: сетевое, HBA, FC);
      • NUMA node - это порядковый номер NUMA-ноды, которой принадлежит устройство.