检测Linux虚拟化平台类型的方法

要想找出 Linux 系统运行在虚拟化平台中还是硬件服务器上,有多种方式可供大家选择,这主要取决于你的 hypervisorcontainer 环境。不同的虚拟化或容器技术会在其实例中引入不同的识别指纹,如:处理器厂商、特殊的 /proc 文件或虚拟网卡名称等。 另外通过 dmesg 显示启动序列,也可以找出 LinuxVPS 所使用虚拟化平台类型的一些线索。

下面我们将介绍几个命令行工具,让大家可以非常容易地检测到 Linux 所使用的虚拟化平台类型。

方法一:dmidecode

要检测 Linux 底层的虚拟化类型首选的就是 dmidecode 命令,它最初设计来显示系统 BIOS 和硬件组件的相关信息。使用如下命令便可以检测相关虚拟化信息:

dmidecode -s system-manufacturer

如果网站运行在 Microsoft Azure 平台上,所以检测出来是微软的 Hyper-V。如果你的系统运行在物理服务器上,输入的将是硬件制造商的实际名称(如 Dell Inc.)。如果你的 Linux 是运行在虚拟化平台中,则会显示所使用的虚拟化技术相关名称,如 「Microsoft Corporation」「QEMU」「Xen」「VirtualBox」「VMware, Inc」等等。

注意:该方法不适用于基于容器的虚拟化技术。

方法二:systemd

对于使用 systemd 的 Linux 系统,可以使用 systemd-detect-virt 命令来进行检测,该命令目前可以同时检测到基于 hypervisor 的虚拟化技术(例如 KVM、QEMU、VMware、Xen、Oracle VM、VirtualBox、UML)和基于容器的虚拟化技术(例如 LXC、Docker、OpenVZ)。

systemd-detect-virt

注意:在物理服务器上使用该命令会输出「none」。

方法三:virt-what

我们介绍的最后一种检测 Linux 所使用虚拟化类型的方法是 virt-what 命令,virt-what 实际上是一个 Shell 脚本。它通过各种启发式方法来识别虚拟化环境类型,可以检测出 QEMU/KVM、VMware、Hyper-V、VirtualBox、OpenVZ/Virtuozzo、Xen、LXC、IBM PowerVM 以及 Parallels 等平台类型。

在使用之前,大家需要先通过 apt-getyum 安装 virt-what,再执行如下命令进行检测:

yum install -y virt-what
或者
apt-get install -y virt-what

virt-what

建议购买VPS前首选的是KVM技术,此类型虚拟机可以替换内核开启BBR等;而openvz是无法替换内核的,超售情况也比较严重。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
CDNLinux网络

自建CDN并配置CC防护- cdnfly

2023-4-3 16:00:40

LinuxWindows网络

通过Iperf3测试与VPS的真实速度

2023-4-5 22:47:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索