如何判断我是在 XEN 还是 KVM 服务器上?

如何判断我是在 XEN 还是 KVM 服务器上?

有没有办法知道我使用的是 XEN 还是 KVM Linux 服务器?我问这个问题的原因是,虽然没有任何东西处于最顶端,但我在执行任务后发现平均负载很高,而执行简单任务时会出现挂起/峰值

答案1

如果您有sudo权限,您可以运行以下命令来获取有关 CentOS 所运行的“硬件”的信息:

sudo lshw

例如,我的一台计算机上的前几行输出是:

description: Desktop Computer
product: Virtual Machine
vendor: Microsoft Corporation

微软的虚拟机?我在 Hyper-V 上运行。

答案2

systemd-detect-virt

返回这个 Ubuntu 18.04 KVM 设置

kvm

在我的主机上:

none

也可以看看:https://unix.stackexchange.com/questions/89714/easy-way-to-determine-virtualization-technology

在 Ubuntu 18.04 主机上测试。

答案3

有代码可以检测到这一点:http://ivanlef0u.fr/repo/windoz/rootkit/invisiblethings/redpill.html

您还可以检查 dmesg 和 lspci。

Xen PV 客户机或带有 PV 驱动程序的 Xen 客户机将在 dmesg 中显示与 xen 相关的信息

http://wiki.xen.org/wiki/Xen_Linux_PV_on_HVM_drivers#Verifying_Xen_Linux_PVHVM_drivers_are_using_optimizations

dmesg | egrep -i 'xen|front

答案4

lshw在 *nix 服务器上并不总是可用。是的,您可以安装它,但是我喜欢选择我在盒子上免费获得的东西。我发现大多数情况下dmidecode通常都可以使用。请改用这个:

有趣的是,lshw它从 DMI 表条目和其他来源获取一些信息。但对于此目的,仅使用dmidecode就足够了。

dmidecode -t system|grep 'Manufacturer\|Product'

Dell 服务器上的输出:

Manufacturer: Dell Inc.
Product Name: PowerEdge C5220

Virtualbox VM 上的输出:

Manufacturer: innotek GmbH
Product Name: VirtualBox

KVM/QEMU 上的输出:

Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)

这对于可以解析这些内容以更好地识别服务器的脚本非常有用...但是如果您在基础架构中使用 Chef,则可以检查Virtualization -> systemchef 服务器中的节点属性。

相关内容