Bestimmen Sie, welcher Gast auf XEN ausgeführt wird: HVM- oder PV-Gast
9
Ich arbeite mit einem Xen-Host, auf dem XenServer von Citrix von jemandem installiert wird. Er hat bereits viele CentOS 5.2-Gäste auf dem Host installiert. Ich frage mich, wie ich diese Gäste überprüfen kann, um festzustellen, ob es sich um PV- oder HVM-Typen handelt.
Ein kurzer Hinweis: Es gibt tatsächlich drei Modi, nicht zwei, wenn es um die verwendeten Treiber geht:
HVM: unveränderter Kernel und Treiber, die Software-emulierte Geräte verwenden
PV-HVM: unveränderter Kernel mit paravirtualisierten (Xen-spezifischen) Festplatten- und Netzwerktreibern
PV: modifizierter Kernel und Treiber
Für einen Xen-Gast / DomU können Sie eine sehr einfache unameund lsmodmit einem grep ausführende Liste der verwendeten Module erstellen :
uname -a
lsmod | grep xen
Wenn uname -aein Kernel mit der Zeichenfolge "xen" aufgelistet ist, haben Sie einen geänderten Kernel und es handelt sich wahrscheinlich um einen PV-Gast. Die Ausgabe des lsmodBefehls zur Bestätigung wird angezeigt. Wenn Sie eine Ausgabe von grep on haben, lsmodaber keine Anzeichen für einen modifizierten Kernel haben, sind Sie PV-HVM. Ohne Anzeichen von beidem ist es eine reine HVM.
Hinweis: Im Allgemeinen können Sie mit VMs, auf denen die PV-Tools installiert sind, mehr tun, sodass dies ein offensichtlicher Hinweis sein kann. Sie können jedoch das Vorhandensein der PV-Tools vortäuschen , um das Anhalten / Fortsetzen usw. zu ermöglichen, sodass Sie sich im Allgemeinen nicht darauf verlassen können .
Danke @Adam. Es ist die klarste Antwort, die ich bisher gefunden habe.
Ha Son Hai
10
Es gibt eine bessere Alternative zur Analyse der uname -aAusgabe innerhalb der Gastdomäne. Sie sollten lieber das VM-Profil im Hypervisor selbst überprüfen.
XL
Mit dem aktuellen XenLight-Toolstack für eigenständige Xen-Installationen kann dies durch Ausführen des folgenden xl list --longBefehls erreicht werden:
# xl list
Name ID Mem VCPUs State Time(s)
My-Virtual-Machine 42 1024 1 -b---- 9001.0
# xl list -l 42
or
# xl list --long My-Virtual-Machine
[
{
"domid": 6,
"config": {
"c_info": {
"name": "My-Virtual-Machine",
"uuid": "12345678-abcd-1234-abcd-12345678abcd",
"type": "pv",
...
},
...
}
}
]
Beachten Sie den typePunkt im c_infoAbschnitt - wenn er gleich ist "pv", bedeutet dies paravirtuell.
XM
Bei einer älteren eigenständigen Xen-Installation mit herkömmlichem xmManagement-Toolstack waren die Dinge ähnlich:
Beachten Sie das (linux)Element im (image)Abschnitt - es entspricht der builderKonfigurationsanweisung, wobei "Linux" "paravirtual" (anstelle des eigentlichen Kernels) bedeutet, während "hvm" für "vollständige Virtualisierung" steht.
XE
Mit XenServer oder XCP- Appliance können Sie xe vm-list params=allBefehle oder ähnliches verwenden.
virsh
Es kann (oder gab) eine Möglichkeit geben, diese Informationen aus dem libvirt- Toolstack abzurufen, die mir jedoch unbekannt sind.
Beachten Sie, dass der paravirtuelle Modus unter x86-64 ab Xen 4.5 zwei Varianten hat:
klassische Paravirtualisierung (PV), bei der Gastsysteme von Ring 0 auf Ring 1 umgeschrieben werden müssen ; Da AMD Ring x und Ring 2 in x86-64 weggeworfen hat, musste Xen auf softwarebasiertes Management zurückgreifen, das sogar langsamer als HVM ist.
Hardware-unterstützte Paravirtualisierung (PVH) - nicht zu verwechseln mit vollständig virtualisierter mit paravirtuellen Treibern (PV-on-HVM) -, die auf Hardware-Unterstützung für die Verarbeitung privilegierter Anweisungen und Speicherseitentabellen angewiesen ist, für alles andere jedoch traditionelle PV-Techniken verwendet , so dass keine Hardware emuliert wird und nahezu native Leistung erzielt wird, wie es in guten alten x86-32-Zeiten war.
Um zu überprüfen, ob der Host mit aktiviertem PVH ausgeführt wird, kann Folgendes verwendet werden xl info(obwohl diese Methode nicht besser ist als die Überprüfung von grub.cfg ):
Dies funktioniert unter 4.4.1 nicht, da es keinen xmBefehl gibt, xlder jedoch eine andere Ausgabe hat. Irgendeine Idee, wie man die Informationen zu 4.4.1 XEN erhält. Vielen Dank.
Wakan Tanka
@WakanTanka Ich habe derzeit keinen Zugriff auf einen funktionierenden Xen-Server, aber laut der online gefundenen Beispielausgabe ist der Ansatz im Grunde der gleiche. Siehe die aktualisierte Antwort.
Anton Samsonov
Dies ist ein weitaus besserer Ansatz als die Antwort von @ AdamC, da ich mehrere PV-Ubuntu-Gäste habe, die definitiv PV entsprechen xlund dennoch keine Erwähnung von Xen im Kernelnamen oder in den Kernelmodulen haben.
Gefälschter Name
2
Dies erfordert den Zugriff auf den Hypervisor. Wie kann man wissen, ob er nur Zugriff auf den Gast hat?
Es gibt eine bessere Alternative zur Analyse der
uname -a
Ausgabe innerhalb der Gastdomäne. Sie sollten lieber das VM-Profil im Hypervisor selbst überprüfen.XL
Mit dem aktuellen XenLight-Toolstack für eigenständige Xen-Installationen kann dies durch Ausführen des folgenden
xl list --long
Befehls erreicht werden:Beachten Sie den
type
Punkt imc_info
Abschnitt - wenn er gleich ist"pv"
, bedeutet dies paravirtuell.XM
Bei einer älteren eigenständigen Xen-Installation mit herkömmlichem
xm
Management-Toolstack waren die Dinge ähnlich:Beachten Sie das
(linux)
Element im(image)
Abschnitt - es entspricht derbuilder
Konfigurationsanweisung, wobei "Linux" "paravirtual" (anstelle des eigentlichen Kernels) bedeutet, während "hvm" für "vollständige Virtualisierung" steht.XE
Mit XenServer oder XCP- Appliance können Sie
xe vm-list params=all
Befehle oder ähnliches verwenden.virsh
Es kann (oder gab) eine Möglichkeit geben, diese Informationen aus dem libvirt- Toolstack abzurufen, die mir jedoch unbekannt sind.
Beachten Sie, dass der paravirtuelle Modus unter x86-64 ab Xen 4.5 zwei Varianten hat:
Um zu überprüfen, ob der Host mit aktiviertem PVH ausgeführt wird, kann Folgendes verwendet werden
xl info
(obwohl diese Methode nicht besser ist als die Überprüfung von grub.cfg ):Um zu überprüfen, ob ein bestimmter Gast im PVH-Modus (
pvh=1
in der Konfigurationsdatei) ausgeführt wird, konsultieren Sie erneutxl list -l
:Aus administrativer Sicht sollte sich PVH jedoch nicht von PV unterscheiden.
quelle
xm
Befehl gibt,xl
der jedoch eine andere Ausgabe hat. Irgendeine Idee, wie man die Informationen zu 4.4.1 XEN erhält. Vielen Dank.xl
und dennoch keine Erwähnung von Xen im Kernelnamen oder in den Kernelmodulen haben.