Libvirt - это круто, но мне нужно перенести виртуальную машину из ее конфигурации на чистый QEMU или Xen. Чтобы воспроизвести настройку, мне нужны команды, отправленные конкретным гипервизорам, чтобы воспроизвести виртуальную машину в целевой системе.
Так что мне в основном нужна интерпретация xml-конфигурации libvirt для Xen и QEMU. Лучше всего искать команды в самом Libvirt. Этот шаг должен быть выполнен, потому что иначе не удалось бы запустить даже одну машину.
Теоретически оценка XML-конфигураций может меняться между разными версиями Libvirt. Так что отследить ошибку из-за этого может быть сложно, также она не может быть воспроизведена в научных сценах.
Обходной путь - запросить у запущенного экземпляра QEMU или Xen их конфигурацию. Но я не знаю, как это сделать.
У тебя есть идеи?
РЕДАКТИРОВАТЬ: Я не собираюсь извлекать все настройки сети, которые libvirt предоставляет в фоновом режиме. Просто простая машина. Итак, например, возможность оптимизации клиента libvirt под конкретную ОС. Я хотел бы знать, какое влияние он оказывает на базовую команду QEMU или Xen.
Я ищу только опции командной строки
# commands of creating machines withe the Hypervisors:
qemu-system-... [kvm / cpu / basics]
xl create [Myconfigfile.conf]
*[desired arguments]
Ответ полностью зависит от того, как работает рассматриваемый гипервизор, поэтому единого способа добиться этого нет. Для QEMU libvirt просто порождает двоичный файл QEMU с определенным набором аргументов. Вы можете увидеть это, запустив virsh domxml-to-native
команда или глядя на /var/log/libvirt/qemu/$GUESTNAME.log
. Обратите внимание, что управление гостевой системой QEMU - это гораздо больше, чем просто запуск QEMU - libvirt также устанавливает контрольные группы, правила брандмауэра, SELinux / AppArmor и передает предварительно открытые файловые дескрипторы для некоторых вещей. Так что репликация этого за пределами libvirt - большая работа, и я бы рекомендовал не пытаться это сделать. Для гипервизора Xen libvirt вызывает различные API-интерфейсы библиотеки, поэтому вы не сможете воспроизвести это, не написав код, который будет делать то же самое.