1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-stratovirt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
cpu_hotplug.md 3.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 4 месяцев назад 123faeb

Поддержка StratoVirt для горячего подключения и отключения CPU к работающей виртуальной машине

StratoVirt поддерживает горячее подключение и отключение CPU к работающей ВМ. Эта функция позволяет динамически регулировать ресурсы CPU виртуальной машины. В настоящее время поддерживается только стандартная виртуальная машина с архитектурой x86_64, архитектура NUMA не поддерживается.

Создание виртуальной машины

Сначала создаём виртуальную машину StratoVirt:

$ ./stratovirt \
    -machine q35 \
    -smp [cpus=]<n>,maxcpus=<max_cpus> \
    -m 512 \
    -kernel path/to/kernel \
    -append "console=ttyS0 root=/dev/vda reboot=k panic=1" \
    -drive file=path/to/OVMF_CODE.fd,if=pflash,unit=0,readonly=true \
    -device pcie-root-port,port=0x0,addr=0x1.0x0,bus=pcie.0,id=pcie.1 \
    -drive file=path/to/rootfs,id=rootfs,readonly=true \
    -device virtio-blk-pci,drive=rootfs,bus=pcie.1,addr=0x0.0x0,id=blk-0 \
    -qmp unix:path/to/api/socket,server,nowait \
    -serial stdio
  • cpus: Устанавливает количество процессоров равным n (по умолчанию 1). Все процессоры будут доступны после загрузки виртуальной машины, и их нельзя отключить.
  • maxcpus: Задаёт общее количество процессоров, включая онлайн и офлайн процессоры. Количество офлайн процессоров также является количеством процессоров, поддерживающих горячее подключение. Значение maxcpus должно быть не меньше cpus.

Горячее подключение процессора

После загрузки виртуальной машины подключите процессор с помощью QMP:

$ ncat -U path/to/api/socket
{"QMP":{"version":{"qemu":{"micro":1,"minor":0,"major":5},"package":"StratoVirt-2.4.0"},"capabilities":[]}}
-> {"execute": "device_add","arguments": { "id": "device-id", "driver": "generic-x86-cpu", "cpu-id": cpuid }}
<- {"return":{}}
<- {"event":"CPU_RESIZE","data":{},"timestamp":{"seconds":seconds, "microseconds":microseconds}}
  • id: Идентификатор устройства процессора, который должен быть уникальной строкой.
  • cpu-id: Номер процессора, который может быть целым числом в диапазоне от cpus до maxcpus.

Горячее отключение процессора

Отключите процессор с помощью QMP:

$ ncat -U path/to/api/socket
{"QMP":{"version":{"qemu":{"micro":1,"minor":0,"major":5},"package":"StratoVirt-2.4.0"},"capabilities":[]}}
-> {"execute": "device_del", "arguments": { "id": "device-id"}}
<- {"return":{}}
<- {"event":"CPU_RESIZE","data":{},"timestamp":{"seconds":seconds, "microseconds":microseconds}}

Ограничения

Поддержка горячего подключения и отключения процессоров ограничена типом машины:

  • q35 (на платформе x86_64).

Некоторые устройства и функции пока не поддерживают горячее подключение процессоров:

  • архитектура numa.

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openeuler-stratovirt.git
git@gitlife.ru:oschina-mirror/openeuler-stratovirt.git
oschina-mirror
openeuler-stratovirt
openeuler-stratovirt
master