Назад | Перейти на главную страницу

Получение команд libvirt в гипервизоры

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