Rychlá poznámka, ve skutečnosti existují 3 režimy, ne dva, pokud jde o používané ovladače:
- HVM:neupravené jádro a ovladače využívající softwarově emulovaná zařízení
- PV-HVM:neupravené jádro s paravirtualizovanými (specifickými pro Xen) diskovými a síťovými ovladači
- PV:upravené jádro a ovladače
Pro Xen guest/DomU můžete udělat velmi základní uname
a lsmod
s grep pro seznam používaných modulů:
uname -a
lsmod | grep xen
Pokud uname -a
vypíše jádro s řetězcem "xen", pak máte upravené jádro a je to pravděpodobně PV host a uvidíte výstup z lsmod
příkaz k potvrzení. Pokud máte výstup z grep na lsmod
ale žádné známky upraveného jádra, pak jste PV-HVM. Bez jakékoli známky obou, je to přímý HVM.
Poznámka:Obecně můžete udělat více s virtuálními počítači, které mají nainstalované nástroje PV, takže to může být docela zřejmý ukazatel, ale můžete předstírat přítomnost nástrojů PV, abyste umožnili pozastavení/obnovení atd., takže se na to obecně nemůžete spolehnout. .
Existuje lepší alternativa k analýze uname -a
výstup z domény hosta. Měli byste raději zkontrolovat profil virtuálního počítače v samotném hypervizoru.
XL
S aktuálním Sada nástrojů XenLight pro samostatné instalace Xen, toho lze dosáhnout spuštěním xl list --long
příkaz:
# 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",
...
},
...
}
}
]
Všimněte si type
položka v c_info
sekce — pokud se rovná "pv"
, to znamená paravirtuální.
XM
Se starším samostatná instalace Xen pomocí tradičního xm
management toolstack, věci byly podobné:
# xm list --long My-Virtual-Machine
(domain
(domid 42)
(name My-Virtual-Machine)
(image
(linux
(kernel ...)
...
)
)
...
)
Všimněte si (linux)
prvek v (image)
sekce — odpovídá builder
konfigurační direktiva, kde „linux“ znamená „paravirtuální“ (spíše než skutečné jádro), zatímco „hvm“ znamená „plná virtualizace“.
XE
S XenServerem nebo XCP zařízením můžete použít xe vm-list params=all
příkaz nebo něco podobného.
virsh
Může existovat (nebo existoval) nějaký způsob, jak získat tyto informace z libvirt toolstack, ale mně neznámý.
Všimněte si, že počínaje Xen 4.5 má paravirtuální režim na x86-64 dvě varianty:
- klasická paravirtualizace (PV), který spoléhá na hostující systémy, které mají být přepsány z použití kruhu 0 směrem k kruhu 1; protože AMD zahodilo ring 1 a ring 2 v x86-64, Xen se musel vrátit k softwarové správě, která je ještě pomalejší než HVM;
- hardwarově podporovaná paravirtualizace (PVH), — nezaměňovat s plně virtualizovanými s paravirtuálními ovladači (PV-on-HVM), — který se spoléhá na hardwarovou asistenci při zpracování privilegovaných instrukcí a tabulek stránek paměti, ale pro vše ostatní používá tradiční PV techniky, takže není emulován žádný hardware a je dosaženo téměř nativního výkonu, jak tomu bylo v dobrém stavu staré x86–32krát.
Chcete-li zkontrolovat, zda hostitel běží s povoleným PVH, můžete použít xl info
(ačkoli tato metoda není o nic lepší než kontrola grub.cfg ):
# xl info | grep xen_commandline
xen_commandline : pvh=1 loglvl=all guest_loglvl=all console=com1,vga
^^^^^
Chcete-li zkontrolovat, zda konkrétní host běží v režimu PVH (pvh=1
v konfiguračním souboru), znovu vyhledejte xl list -l
:
"c_info":{
"name": "My-Virtual-Machine",
"type": "pv",
"pvh": "True",
...
},
Z pohledu administrativy by se však PVH neměla lišit od PV.