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

OSCHINA-MIRROR/openeuler-stratovirt

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

CPU горячая замена

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

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

Сначала создайте виртуальную машину.

$ ./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). Процессоры, установленные с помощью параметра cpus, будут полностью включены после запуска виртуальной машины, и эти процессоры не поддерживают горячую выемку.
  • 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