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, поэтому вы никак не сможете воспроизвести это без написания кода, делающего то же самое.