Извлечение libvirt-команд для гипервизоров

Извлечение libvirt-команд для гипервизоров

Libvirt классный, но мне нужно портировать VM из его конфигурации на голый QEMU или Xen. Чтобы воспроизвести настройку, мне нужны команды, отправленные на определенные гипервизоры, чтобы воспроизвести VM в целевой системе.

Итак, мне в основном нужна интерпретация xml-конфигурации libvirt для Xen и QEMU. Лучшим способом будет поиск команд в самом Libvirt. Этот шаг необходимо выполнить, потому что в противном случае невозможно будет запустить даже одну машину.

Теоретически оценка XML-конфигураций может меняться между разными версиями Libvirt. Поэтому отслеживание ошибки из-за этого может быть сложным, и ее невозможно воспроизвести в научных сценах.

Обходным решением было бы запросить конфигурацию у работающего экземпляра QEMU или Xen. Но я не уверен, как это сделать.

Есть ли у вас какие-либо идеи?

РЕДАКТИРОВАТЬ:Я не собираюсь извлекать все настройки сети, которые libvirt предоставляет в фоновом режиме. Только simpel machine. Так что есть, например, опция оптимизации клиента libvirt для определенной ОС. Я хотел бы узнать, какое влияние она оказывает на базовую команду для QEMU или Xen.

Я ищу только параметры командной строки

# commands of creating machines withe the Hypervisors:
qemu-system-... [kvm / cpu / basics]
xl create [Myconfigfile.conf]

*[desired arguments]

решение1

Ответ полностью зависит от того, как работает рассматриваемый гипервизор, поэтому нет единого способа добиться этого. Для QEMU libvirt просто порождает двоичный файл QEMU с определенным набором аргументов. Вы можете увидеть их, запустив команду virsh domxml-to-nativeили посмотрев на /var/log/libvirt/qemu/$GUESTNAME.log. Обратите внимание, что управление гостем QEMU — это гораздо больше, чем просто запуск QEMU — libvirt также настраивает cgroups, правила брандмауэра, SELinux/AppArmor и передает предварительно открытые файловые дескрипторы для некоторых вещей. Так что воспроизведение этого за пределами libvirt — это большая работа, и я бы не рекомендовал пытаться это делать. Для гипервизора Xen libvirt вызывает различные библиотечные API, поэтому вы никак не сможете воспроизвести это без написания кода, делающего то же самое.

Связанный контент