如何检测Linux Guest VM使用的哪种虚拟化技术

网友投稿 705 2023-03-07

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

如何检测Linux Guest VM使用的哪种虚拟化技术

写在前面的话

如果我有一台基于云的虚拟机,并且运行了Ubuntu或CentOS的Linux服务器系统,而这些设备可能是虚拟化的,也可能不是虚拟化的,那我们应该如何去判断这台Linux Guest系统设备使用的是哪种虚拟化技术(VMWARE/ KVM/ XEN/ VirtualBox/ Container/lxc/Hyper-V等等)呢?那我们如何才能识别一台CentOS 7 Linux VPS所使用的虚拟化技术类型呢?

技术分析

我们需要使用virt-what程序(一个Shell脚本)来检测目标设备系统所使用的虚拟化技术类型,它可以打印出每一条关于目标设备虚拟化技术的相关信息。在这篇文章中,我们将介绍如何去判断Linux Guest VM虚拟化技术类型。

判断Linux Guest VM虚拟化技术类型

正如我们刚才说的,我们需要使用virt-what Linux命令来判断一个程序当前是否在一台虚拟机设备上运行。该脚本支持各种虚拟机管理程序,接下来,我们看看如何在不同的Linux发行版系统中安装virt-what。

Debian或Ubuntu Linux安装

首先,运行下列apt命令/apt-get命令:

$ sudo apt-get install virt-what

$ sudo apt-get install virt-what

或者

$ sudo apt install virt-what

$ sudo apt install virt-what

在RHEL/CentOS/Scientific Linux VM中安装virt-what

我们可以使用yum命令完成安装:

$ sudo yum install virt-what

$ sudo yum install virt-what

Fedora Linux VM安装virt-what来检测当前环境是否为虚拟机环境

执行dnf命令:

$ sudo dnf install virt-what

$ sudo dnf install virt-what

Suse/OpenSUSE安装

运行zypper命令:

sudo zypper in virt-what

sudo zypper in virt-what

判断远程服务器是否为虚拟机环境

我们可以直接输入并运行下列命令:

$ $ sudo virt-what    xen    xen-domU

$ $ sudo virt-what xen xen-domU

输出结果

$ $ sudo virt-what    kvm

$ $ sudo virt-what kvm

其他输出结果

$ $ sudo virt-what    lxc

$ $ sudo virt-what lxc

下面给出aws反回结果

$ sudo virt-what    xen    xen-hvm    aws

$ sudo virt-what xen xen-hvm aws

其他可能的值

1、hyperv : 这是微软的Hyper-V管理程序;2、parallels : 访客用户正在Parallels虚拟平台(Parallels Desktop、Parallels Server)中运行;3、powervm_lx86 : 访客用户正在IBM powervm lx86 Linux/x86模拟器中运行;4、qemu : 这是使用软件模拟技术的QEMU管理程序;5、virtualpc : 访客用户正在微软VirualPC上运行;6、xen-hvm : 这是一个Xen Guest完全虚拟化平台(HVM);7、uml : 这是一个用户模式Linux(UML)客户机;8、openvz : 访客用户正在OpenVZ或Virtuozzo容器中运行;9、linux_vserver : 此进程正在Linux VServer容器中运行;10、ibm_systemz : 这是一个IBM SystemZ硬件分区系统;

1、hyperv : 这是微软的Hyper-V管理程序;2、parallels : 访客用户正在Parallels虚拟平台(Parallels Desktop、Parallels Server)中运行;3、powervm_lx86 : 访客用户正在IBM powervm lx86 Linux/x86模拟器中运行;4、qemu : 这是使用软件模拟技术的QEMU管理程序;5、virtualpc : 访客用户正在微软VirualPC上运行;6、xen-hvm : 这是一个Xen Guest完全虚拟化平台(HVM);7、uml : 这是一个用户模式Linux(UML)客户机;8、openvz : 访客用户正在OpenVZ或Virtuozzo容器中运行;9、linux_vserver : 此进程正在Linux VServer容器中运行;10、ibm_systemz : 这是一个IBM SystemZ硬件分区系统;

如果没有任何输出结果,那意味着我们的程序可能是在裸机上运行的,或者程序是在一种我们无法检测到的虚拟机系统中运行的。

检测脚本源代码

下面给出的是脚本的源代码:

如何使用dmidecode命令来寻找相同的信息

配合Bash for循环并使用dmidecode命令判断目标虚拟化技术:

for i in system-manufacturer system-product-name    do       sudo dmidecode -s $i    done

for i in system-manufacturer system-product-name do sudo dmidecode -s $i done

样本输出

Red Hat    KVM

Red Hat KVM

其他用来判断虚拟化技术的命令

我们还可以使用systemd-detect-virt命令来检测虚拟化环境:

systemd-detect-virt

systemd-detect-virt

资源获取

1、virt-what:【点我获取】

2、Bash for循环:【参考文档】

3、yum命令:【参考文档】

4、apt命令:【参考文档】

5、apt-get命令:【参考文档】

上一篇:运维工程师告警分析(运维工程师常见故障)
下一篇:药事管理重大事件(药事管理重大事件2021)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~