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

OSCHINA-MIRROR/openeuler-stratovirt

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

Управление бэкэндом устройства камеры

cameradev_add Добавить бэкэнд камеры.

Аргументы:

  • id: идентификатор устройства, должен быть уникальным.
  • driver: тип бэкэнда камеры, например, v4l2 или demo.
  • path: путь к файлу бэкэнда камеры, например, /dev/video0.

Примечания: МикроВМ не поддерживается.

Пример:

-> { "execute": "cameradev_add", "arguments": { "id": "cam-0", "driver": "v4l2", "path": "/dev/video0" } }
<- { "return": {} }

cameradev_del Удалить бэкэнд камеры.

Аргументы:

  • id: идентификатор устройства.

Примечания: МикроВМ не поддерживается.

Пример:

-> { "execute": "cameradev_del", "arguments": { "id": "cam-0" } }
<- { "return": {} }

Управление бэкэндами символьных устройств

В настоящее время поддерживается только стандартная ВМ.

chardev-add Добавить бэкэнд символьного устройства.

Аргументы:

  • id: идентификатор символьного устройства, должен быть уникальным.
  • backend: информация о бэкэнде chardev.

Примечания (стандартная ВМ):

  • Идентификатор в chardev-add должен совпадать с идентификатором в netdev_add.

Пример:

-> { "execute": "chardev-add", "arguments": { "id": "chardev_id", "backend": { "type": "socket", "data": { "addr": { "type": "unix", "data": { "path": "/path/to/socket" } }, "server": false } } } }
<- { "return": {} }

chardev-remove Удалить бэкэнд символьного устройства.

Аргументы:

  • id: идентификатор символьного устройства.

Пример:

-> { "execute": "chardev-remove", "arguments": { "id": "chardev_id" } }
<- { "return": {} }

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

StratoVirt поддерживает горячее подключение virtio-blk и virtio-net устройств с QMP. Стандартная ВМ поддерживает горячее подключение vfio и vhost-user сетевых устройств.

device_add Добавить устройство.

Аргументы:

  • id: идентификатор устройства, должен быть уникальным.
  • driver: имя драйвера устройства.
  • addr: адрес, по которому устройство вставляется.
  • host: информация об устройстве PCI в системе, которая содержит домен, номер шины, номер слота и номер функции.
  • bus: шина, на которую вставляется устройство. Только для стандартной ВМ.
  • mac: MAC сетевого устройства.
  • netdev: бэкэнд сетевого устройства.
  • drive: бэкэнд блочного устройства.
  • serial: серийный номер блочного устройства.

Примечания (стандартная ВМ): В настоящее время устройство можно подключить только к устройству pcie-root-port. Поэтому перед запуском ВМ необходимо настроить корневой порт в cmdline.

Конфигурация ядра гостя: CONFIG_HOTPLUG_PCI_PCIE=y. Не рекомендуется подключать/отключать устройства во время запуска, завершения работы или приостановки ВМ, а также когда ВМ находится под большой нагрузкой. В этом случае драйвер в ВМ может не отвечать на запросы, вызывая исключения ВМ.

Пример:

-> { "execute": "device_add", "arguments": { "id": "net-0", "driver": "virtio-net-mmio", "addr": "0x0" } }
<- { "return": {} }

device_del Удалить устройство из гостя.

Аргументы:

  • id: идентификатор устройства.

Примечания: Устройство фактически удаляется, когда вы получаете событие DEVICE_DELETED.

Пример:

-> { "execute": "device_del", "arguments": { "id": "net-0" } } }
<- { "event": "DEVICE_DELETED", "data": { "device": "net-0", "path": "net-0" }, "timestamp": { "seconds": 1614310541, "microseconds": 554250 } }
<- { "return": {} }

Жизненный цикл

С помощью QMP вы можете управлять жизненным циклом ВМ с помощью команд stop, cont и quit, а также проверять состояние ВМ с помощью команды query-status.

stop Остановить выполнение всех гостевых VCPU.

Пример:

-> { "execute": "stop" }
<- { "event": "STOP", "data": {}, "timestamp": { "seconds": 1583908726, "microseconds": 162739 } }
<- { "return": {} }

cont Возобновить выполнение всех гостевых VCPU.

Пример:

-> { "execute": "cont" }
<- { "event": "RESUME", "data": {}, "timestamp": { "seconds": 1583908853, "microseconds": 411394 } }
<- { "return": {} }

system_reset Сбросить выполнение всех гостевых VCPU.

Пример:

-> { "execute": "system_reset" }
<- { "return": {} }
<- { "event": "RESET", "data": { "guest": true }, "timestamp": { "seconds": 1677381086, "microseconds": 432033 } }

system_powerdown Запрос на отключение питания гостя. Выполнение операции отключения питания.

-> { "execute": "system_powerdown" }
<- { "return": {} }
<- { "event": "POWERDOWN", "data": {}, "timestamp": { "seconds": 1677850193, "microseconds": 617907 } }

Завершение работы.

Эта команда приводит к корректному завершению процесса StratoVirt.

-> { "execute": "quit" }
<- { "return": {} }
<- { "event": "SHUTDOWN", "data": { "guest": false, "reason": "host-qmp-quit" }, "timestamp": { "ds": 1590563776, "microseconds": 519808 } }

Запрос статуса.

Запрашивает статус выполнения всех VCPU.

-> {"execute": "query-status"}
<- {"return": { "running": true,"singlestep": false,"status": "running"}}

Управление устройством Balloon backend.

С помощью команды QMP можно установить целевой размер памяти гостя и получить размер памяти гостя.

Устройство Balloon.

Устанавливает целевой размер памяти гостя.

Аргументы:

  • value — размер памяти.

Пример:

-> { "execute": "balloon", "arguments": { "value": 2147483648 } }
<- { "return": {} }

Запрос устройства Balloon.

Получает размер памяти гостя.

Пример:

-> { "execute": "query-balloon" }
<- { "return": { "actual": 2147483648 } }

Миграция.

Перенос.

Создаёт снимок виртуальной машины в указанный каталог.

Аргументы:

  • uri — путь к шаблону.

Пример:

-> { "execute": "migrate", "arguments": { "uri": "file:path/to/template" } }
<- { "return": {} }

Запрос переноса.

Получает состояние снимка.

Существует 5 состояний во время создания снимка:

None: ресурс не подготовлен полностью. — Setup: ресурс настроен, готов к созданию снимка. — Active: создание снимка. — Completed: создание снимка успешно завершено. — Failed: создание снимка завершилось с ошибкой.

Пример:

-> { "execute": "query-migrate" }
<- { "return": { "status": "completed" } }

Снимок.

Blockdev-snapshot-internal-sync.

Создаёт внутренний снимок диска.

Аргументы:

  • device — действительное блочное устройство.
  • name — имя снимка.

Пример:

-> { "execute": "blockdev-snapshot-internal-sync", "arguments": { "device": "disk0", "name": "snapshot1" } }
<- { "return": {} }

Blockdev-snapshot-delete-internal-sync.

Удаляет внутренний снимок диска.

Аргументы:

  • device — действительное блочное устройство.
  • name — имя снимка.

Пример:

-> { "execute": "blockdev-snapshot-delete-internal-sync", "arguments": { "device": "disk0", "name": "snapshot1" } }
<- { "return": { "id": "1", "name": "snapshot0", "vm-state-size": 0, "date-sec": 1000012, "date-nsec": 10, "vm-clock-sec": 100, vm-clock-nsec": 20, "icount": 220414 } }

Отладка.

Query-vcpu-reg.

Запрос значения регистра vCPU.

Аргументы:

  • addr — адрес регистра.
  • vcpu — идентификатор vCPU.

Примечания:

— виртуальная машина приостанавливается во время запроса, а затем возобновляется. — сейчас поддерживается только aarch64.

Пример:

-> {"execute": "query-vcpu-reg", "arguments": {"addr": "603000000013df1a", "vcpu": 0}}
<- {"return": "348531C5"}

Query-mem-gpa.

Запрос значения гостевого физического адреса.

Аргумент:

  • gpa — гостевой физический адрес.

Пример:

-> {"execute": "query-mem-gpa", "arguments": {"gpa": "13c4d1d00" }}
<- {"return": "B9000001"}

Query-display-image.

Запрос образа дисплея virtiogpu. В настоящее время поддерживается только stdvm и gtk.

Пример:

-> { "execute": "query-display-image" }
<- { "return": { "fileDir": "/tmp/stratovirt-images", "isSuccess": true } }

Trace-get-state.

Запрос состояния трассировки.

Аргументы:

  • name — шаблон для сопоставления имени трассировки.

Пример:

-> { "execute": "trace-get-state", "arguments": { "name": "trace_name" } }
<- { "return": [ { "name": "trace_name", "state": "disabled" } ] }

Trace-set-state.

Установка состояния трассировки.

Аргументы:

  • name — шаблон для сопоставления имени трассировки.
  • enable — включение или отключение трассировки.

Пример:

-> { "execute": "trace-set-state", "arguments": { "name": "trace_name","enable": true } }
<- { "return": {} }

Прочее.

Getfd.

Получение файлового дескриптора через SCM.

Комментарий ( 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