Abrufen von Libvirt-Befehlen zu Hypervisoren

Abrufen von Libvirt-Befehlen zu Hypervisoren

Libvirt ist cool, aber ich muss eine VM von ihrer Konfiguration auf QEMU oder Xen portieren. Um das Setup zu reproduzieren, muss ich die Befehle an die spezifischen Hypervisoren senden, um die VM im Zielsystem zu reproduzieren.

Ich benötige also grundsätzlich die Interpretation der libvirt xml-Konfiguration für Xen und QEMU. Am besten sucht man die Befehle in Libvirt selbst. Dieser Schritt muss gemacht werden, da es sonst nicht möglich wäre, auch nur eine einzige Maschine zu starten.

Theoretisch kann sich die Auswertung von XML-Konfigurationen zwischen verschiedenen Libvirt-Versionen ändern. Daher kann es schwierig sein, einen Fehler aus diesem Grund aufzuspüren, und er ist in wissenschaftlichen Szenen nicht reproduzierbar.

Ein Workaround wäre, die laufende QEMU- oder Xen-Instanz nach ihrer Konfiguration zu fragen. Aber ich bin mir nicht sicher, wie ich das machen soll.

Hast du eine Idee?

BEARBEITEN:Ich werde nicht alle Netzwerkeinstellungen abrufen, die libvirt im Hintergrund bereitstellt. Nur die einfache Maschine. Es gibt also beispielsweise eine Option zur Optimierung des libvirt-Clients für ein bestimmtes Betriebssystem. Ich würde gerne wissen, welchen Einfluss dies auf den grundlegenden Befehl an QEMU oder Xen hat.

Ich suche nur nach den Kommandozeilenoptionen

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

*[desired arguments]

Antwort1

Die Antwort hängt ganz davon ab, wie der betreffende Hypervisor funktioniert, es gibt also keinen einheitlichen Weg, dies zu erreichen. Für QEMU erzeugt libvirt einfach eine QEMU-Binärdatei mit einem bestimmten Satz von Argumenten. Sie können diese sehen, indem Sie den virsh domxml-to-nativeBefehl ausführen oder sich ansehen /var/log/libvirt/qemu/$GUESTNAME.log. Beachten Sie, dass die Verwaltung eines QEMU-Gastes viel mehr umfasst, als nur QEMU auszuführen – libvirt richtet auch Cgroups, Firewall-Regeln, SELinux/AppArmor ein und übergibt für einige Dinge vorab geöffnete Dateideskriptoren. Dies außerhalb von libvirt zu replizieren, ist also sehr aufwändig und ich würde davon abraten, dies zu versuchen. Für den Xen-Hypervisor ruft libvirt verschiedene Bibliotheks-APIs auf, es gibt also keine Möglichkeit, dies zu replizieren, ohne Code zu schreiben, der dasselbe tut.

verwandte Informationen