我正在使用Citrix XenServer安装的Xen主机。 他已经在主机上安装了很多CentOS 5.2客户端。 我不知道如何检查这些客人知道他们是PVtypes或HVMtypes?
一个简单的说明,实际上有三种模式,而不是两种,当涉及到使用的驱动程序:
对于一个Xen客户/ DomU你可以做一个非常基本的uname和lsmod用grep列出正在使用的模块:
uname -a lsmod | grep xen
如果uname -a列出内含string“xen”的内核,那么你有一个修改过的内核,它可能是一个PV来宾,你会看到来自lsmod命令的输出来确认它。 如果你在lsmod上有grep的输出,但没有修改内核的信号,那你就是PV-HVM。 没有任何迹象,这是一个直接的HVM。
注意:一般情况下,对于安装了光伏工具的虚拟机,可以做的更多,所以这可以是一个非常明显的指针,但是你可以伪造光伏工具的存在以允许暂停/恢复等,所以你不能依赖。
有一个更好的select来分析来宾域内的uname -a输出。 您应该在虚拟机pipe理程序本身中检查VMconfiguration文件。
使用当前用于独立Xen安装的XenLight工具包,可以通过运行xl list --long命令来实现:
# 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", ... }, ... } } ]
请注意c_info部分中的type项 – 如果它等于"pv" ,则表示半虚拟。
对于使用传统的xmpipe理工具堆的较旧的独立Xen安装,情况类似:
# xm list --long My-Virtual-Machine (domain (domid 42) (name My-Virtual-Machine) (image (linux (kernel ...) ... ) ) ... )
注意(image)部分的(linux)元素 – 它对应于builderconfiguration指令,其中“linux”代表“paravirtual”(而不是实际的内核),而“hvm”代表“完全虚拟化”。
使用XenServer或XCP 设备,您可以使用xe vm-list params=all命令或类似的东西。
可能有(或已经)从libvirt工具堆中获取这些信息的方法,但我不知道。
请注意,从Xen 4.5开始,x86-64上的半虚拟化模式有两种风格:
要检查主机是否启用了PVH,可以使用xl info (虽然这个方法并不比检查grub.cfg好 ):
# xl info | grep xen_commandline xen_commandline : pvh=1 loglvl=all guest_loglvl=all console=com1,vga ^^^^^
要检查特定的guest pvh=1是否以PVH模式(configuration文件中的pvh=1 )运行,请再次参考xl list -l :
"c_info":{ "name": "My-Virtual-Machine", "type": "pv", "pvh": "True", ... },
但是,从pipe理的angular度来看,PVH不应该和PV有什么不同。