Ada*_*m C 10
快速说明,实际上有 3 种模式,当涉及到正在使用的驱动程序时,而不是两种:
对于 Xen 来宾/DomU,您可以执行一个非常基本的操作,uname并lsmod使用 grep 列出正在使用的模块:
uname -a
lsmod | grep xen
Run Code Online (Sandbox Code Playgroud)
如果uname -a列出了一个带有字符串“xen”的内核,那么你有一个修改过的内核,它很可能是一个 PV 来宾,你将看到lsmod命令的输出以确认它。如果您有来自 grep 的输出,lsmod但没有修改内核的迹象,那么您就是 PV-HVM。没有任何迹象,这是一个直接的 HVM。
注意:通常,您可以对安装了 PV 工具的 VM 执行更多操作,因此这可能是一个非常明显的指针,但是您可以伪造PV 工具的存在以允许挂起/恢复等,因此您通常不能依赖它.
Ant*_*nov 10
有一个更好的替代方法来分析uname -a来自来宾域内部的输出。您应该检查管理程序本身中的 VM 配置文件。
使用当前用于独立 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",
...
},
...
}
}
]
Run Code Online (Sandbox Code Playgroud)
请注意该部分中的type项目 c_info- 如果它等于 "pv",则表示半虚拟化。
对于使用传统管理工具堆栈的较旧的独立 Xen 安装xm,情况类似:
# xm list --long My-Virtual-Machine
(domain
(domid 42)
(name My-Virtual-Machine)
(image
(linux
(kernel ...)
...
)
)
...
)
Run Code Online (Sandbox Code Playgroud)
请注意该(linux)部分中的元素 (image)——它对应于 builder配置指令,其中“linux”表示“半虚拟化”(而不是实际内核),而“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
^^^^^
Run Code Online (Sandbox Code Playgroud)
要检查特定来宾是否在 PVH 模式下运行(pvh=1在配置文件中),请再次查阅xl list -l:
"c_info":{
"name": "My-Virtual-Machine",
"type": "pv",
"pvh": "True",
...
},
Run Code Online (Sandbox Code Playgroud)
但是,从管理的角度来看,PVH 应该与 PV 没有任何不同。
| 归档时间: |
|
| 查看次数: |
21721 次 |
| 最近记录: |