Libvirt é legal, mas preciso portar uma VM de sua configuração para QEMU ou Xen. Para reproduzir a configuração, preciso que os comandos sejam enviados aos hipervisores específicos para reproduzir a VM no sistema de destino.
Então, basicamente, preciso da interpretação da configuração xml da libvirt para Xen e QEMU. A melhor forma seria procurar os comandos no próprio Libvirt. Tem que ser feito esse passo, pois caso contrário não seria possível ligar nem uma única máquina.
Em teoria, a avaliação das configurações XML pode mudar entre diferentes versões do Libvirt. Portanto, rastrear um erro por causa disso pode ser difícil e também não é reproduzível em cenários científicos.
Uma solução alternativa seria solicitar a configuração da instância QEMU ou Xen em execução. Mas não tenho certeza de como fazer isso.
Você tem alguma ideia?
EDITAR:Não vou recuperar toda a configuração de rede que a libvirt está fornecendo em segundo plano. Apenas a máquina simples. Portanto existe, por exemplo, uma opção para otimizar o cliente libvirt para um sistema operacional específico. Gostaria de saber qual influência isso tem no comando básico do QEMU ou Xen.
Estou procurando apenas as opções de linha de comando
# commands of creating machines withe the Hypervisors:
qemu-system-... [kvm / cpu / basics]
xl create [Myconfigfile.conf]
*[desired arguments]
Responder1
A resposta depende inteiramente de como funciona o hipervisor em questão, portanto não há uma maneira única de conseguir isso. Para QEMU, libvirt simplesmente gera um binário QEMU com um conjunto específico de argumentos. Você pode ver isso executando o virsh domxml-to-native
comando ou olhando /var/log/libvirt/qemu/$GUESTNAME.log
. Observe que há muito mais no gerenciamento de um convidado QEMU do que apenas executar o QEMU - a libvirt também configura cgroups, regras de firewall, SELinux/AppArmor e passa descritores de arquivos pré-abertos para algumas coisas. Portanto, replicar isso fora da libvirt é muito trabalhoso e não recomendamos tentar fazer isso. Para o hipervisor Xen, libvirt chama várias APIs de biblioteca, então não há como replicar isso sem escrever o código da mesma forma.