如何分辨VPS属于哪种虚拟化环境

Kevin 教程 1,221 次浏览 3条评论

在受限制的虚拟服务器中运行程序,有时会因为不支持某些功能模块而无法使用。因此很多教程文档建议先确认VPS虚拟化环境,然后再安装配置。如果你在VPS商家处没有得到相关信息,可以使用下面方法检测VPS使用何种虚拟化技术。

使用virt-what程序快速检测

virt-what是一个检测服务器虚拟化环境的shell脚本,支持识别大量虚拟机管理程序。可以从系统软件包管理器里获取,安装命令如下。

操作系统 安装命令
CentOS yum install virt-what
Ubuntu & Debian apt-get install virt-what
Fedora dnf install virt-what
Arch Linux pacman -S virt-what
Gentoo emerge virt-what
备注:如果安装提示无法找到virt-what,先运行更新一遍软件包管理器再尝试

其他Linux发行版系统,可以通过virt-what源代码编译安装(需确保系统有安装合适的编译器)

# 编译安装命令示例
wget -N --no-check-certificate https://people.redhat.com/~rjones/virt-what/files/virt-what-1.18.tar.gz && tar zxf virt-what-1.18.tar.gz && cd virt-what-1.18 && ./configure && make && make install

安装virt-what后,运行virt-what命令即可检测。支持检测的虚拟化类型可以参考下面表格。

检测结果 虚拟环境
kvm 基于硬件结构支持与Linux内核模块的虚拟化
openvz 基于Linux操作系统层的容器式虚拟化
xen 基于硬件的系统级虚拟化,区分Xen-HVM全虚拟和Xen-PV半虚拟,前者需要CPU虚拟化扩展支持,后者应用较广泛,不依赖硬件辅助,但需Linux内核支持
xen-dom0 运行在Xen管理程序之上的初始启动虚拟机,具有特殊权限,能直接访问硬件和与其他虚拟机(DomU)交互
xen-domU DomU是非特权虚拟机简称,与Dom0对应
xen-hvm Xen完全虚拟化类型,宿主机CPU硬件需具备虚拟化功能,虚拟机不需要特殊系统内核
vmware 硬件虚拟化,VMware ESXi管理程序直接运行于物理机,以控制管理虚拟机
vmm 系统级虚拟化,由OpenBSD本地虚拟机管理程序创建运行虚拟机
hyperv Hyper-V是基于管理程序的虚拟化技术,根据分区实现虚拟机隔离
virtualpc 系统级虚拟化,由Microsoft VirtualPC虚拟机软件创建运行虚拟机
virtualbox 硬件虚拟化,在没硬件辅助虚拟化情况下,VirtualBox采用基于软件虚拟化
virtage 硬件辅助虚拟化,Virtage硬件分区系统
qemu 广泛应用的开源计算机模拟器软件,分用户模式与系统模式两种运行模式
uml 用户模式Linux虚拟机,系统应用程序类虚拟化,集成于Linux内核中,虚拟机可以访问主机文件系统和硬件
lxc Linux软件容器虚拟化,利用Linux内核cgroups功能与命名空间为程序提供独立的系统环境
bhyve FreeBSD虚拟机管理程序,可模拟BSD、Linux和Windows虚拟机系统环境
rhev 红帽RHV虚拟化平台,基于KVM虚拟机管理程序技术,额外提供一系列增强功能,为企业级可扩展性和性能而设计
docker 系统层容器式虚拟化技术,通过软件创建隔离程序运行环境,具有启动快、资源开销小的优势
powervm_lx86 IBM Power服务器平台的一项虚拟化技术,通过Lx86二进制转换器可无经修改直接运行Linux/x86程序
parallels 由Parallels桌面或服务器虚拟化软件创建的虚拟机
ovirt 社区版虚拟化平台oVirt Node,使用KVM模块和libvirt管理软件创建和管理虚拟机,具有精简灵活、方便定制特点
lkvm kvmtool是一款轻量级虚拟化工具,不同于KVM依赖QEMU,具有代码精简的特点
aws 亚马逊云服务器环境,采用Nitro虚拟机管理程序(基于KVM),部分实例也可能使用Xen管理程序
linux_vserver-host 系统级虚拟化,Linux-VServer可安全为用户空间分配系统资源,常用于虚拟主机服务,具有安全隔离特点,容器内运行的程序只能访问分配到的内容和设备。这里virt-what表示运行在Linux-VServer主机环境
linux_vserver-guest 与linux_vserver-host对应,程序运行在Linux-VServer虚拟容器内
linux_vserver 为向下兼容旧版本提供的选项,表示未能分辨Linux-VServer主机或容器环境
ldoms Linux for SPARC系统上运行的虚拟环境,由Oracle VM Server平台虚拟化(采用Xen虚拟机管理技术)
ldoms-control 采用yiacSPARC(逻辑域)控制的Oracle VM Server
ldoms-guest 采用yiacSPARC(逻辑域)控制的Oracle VM Server虚拟机
ldoms-root 采用yiacSPARC(逻辑域)控制的Oracle VM Server Root虚拟机
ldoms-io 采用yiacSPARC(逻辑域)控制的Oracle VM Server I/O虚拟机
ibm_power-kvm IBM Power架构服务器上运行的虚拟机,使用KVM虚拟机管理技术
ibm_power-lpar_dedicated
ibm_power-lpar_shared
IBM逻辑分区虚拟机(LPAR),具有专用I/O的IBM LPAR与带有虚拟I/O的IBM LPAR
ibm_systemz IBM Z(或其他S/390)硬件分区系统
ibm_systemz-direct 直接在IBM Z硬件分区系统上运行的Linux,这是一个不寻常配置,检测结果未确认
ibm_systemz-lpar 直接在IBM Z硬件分区系统上的LPAR上运行的Linux
ibm_systemz-zvm 在IBM Z硬件分区系统中的LPAR上运行的z/VM虚拟机
ibm_systemz-kvm 在IBM Z硬件系统上运行的KVM虚拟机
virt 服务器似乎存在某种虚拟化,但virt-what未能检测出具体虚拟化技术

通过查看VPS设备信息判断

除了直接使用程序检测外,还可以借助dmesg命令查看内核消息缓冲区里的诊断信息,从而判断属于哪种虚拟化环境。使用例子如下。

# dmesg | grep -i virtual
[    0.000000] Booting paravirtualized kernel on KVM

上面示范命令使用了grep匹配输出,如果你执行后没有显示有价值信息,可以只运行dmesg或直接查看存储日志文件cat /var/log/dmesg(信息量很大,可更换less /var/log/dmesg命令减少输出)。在输出内容里搜索相关虚拟化信息,例如根据下面信息也可以判断VPS使用KVM虚拟化技术。

[    0.000000] DMI: Red Hat KVM, BIOS 0.5.1 01/01/2007
[    0.000000] Hypervisor detected: KVM

有时使用dmesg可能判断不了,如OpenVZ虚拟机下运行dmesg命令不能返回输出。这时可以根据系统目录判断,通常OpenVZ有vz目录,Xen有xen目录。

# ls -al /proc/vz
veinfo  veinfo_redir  veredir  vestat  vzaquota  vzdata

除了上面方法,使用dmidecode命令查看BIOS等硬件信息也可以辅助判断,通常至少会有一个组件将自己标识为虚拟化。

最后,如果你的VPS商家提供VPS控制面板,如SolusVM,可以直接在控制面板里看到虚拟化类型。

评论列表

  1. #1

    Needed to send you the very little word to finally thank you so much the moment again regarding the spectacular techniques you have shared on this site. This has been simply surprisingly open-handed with you to present unreservedly what most of us would’ve sold for an electronic book to help make some money on their own, precisely seeing that you might well have tried it in the event you wanted. Those tactics in addition worked to become great way to realize that someone else have the same keenness similar to my very own to realize somewhat more with reference to this problem. I know there are some more pleasurable situations up front for people who scan through your website. https://gemerekliler.com/

  2. #2

    I am glad for writing to make you know what a nice encounter my wife’s girl had studying your web site. She mastered several pieces, which include what it’s like to possess an awesome helping nature to let other individuals very easily know precisely some problematic subject matter. You truly exceeded people’s expectations. Thank you for presenting these practical, trusted, informative and in addition fun tips about this topic to Kate. https://azzaroelectric.com/

  3. #3

    A lot of thanks for all your efforts on this site. Gloria loves engaging in investigation and it’s easy to understand why. Almost all know all concerning the dynamic means you give helpful secrets on the web blog and as well encourage contribution from others on that concern plus our daughter is always discovering a lot. Have fun with the remaining portion of the new year. You’re the one conducting a good job. https://risniarisperidone.com/

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。