如何确定Linux guest虚拟机虚拟化技术

时间:2020-01-09 10:41:27  来源:igfitidea点击:

我有一个运行Ubuntu和CentOS Linux服务器的基于云的虚拟机。
它可能已虚拟化,也可能未虚拟化。
如何确定运行Linux来宾系统的虚拟化技术(VMWARE/KVM/XEN/VirtualBox/Container/lxc/Hyper-V等)?
如何找出CentOS 7 Linux VPS的虚拟化类型?
您需要使用virt-what程序(一个shell脚本)来检测所使用的虚拟化类型(如果我们在裸机上运行,则根本不使用)。
它打印出另外几行,每行都是关于虚拟化的事实。
本教程说明如何确定Linux来宾VM虚拟化技术。

确定Linux来宾VM虚拟化

如前所述,我们需要使用virt-what Linux命令来查找程序是否在虚拟机中运行。
它支持各种虚拟机管理程序。
让我们看看如何在differnet Linux发行版下安装virt-what。

Debian或Ubuntu Linux安装

运行apt命令/apt-get命令在Debian/Ubuntu Linux安装virt-what命令

$ sudo apt-get install virt-what

或者

$ sudo apt install virt-what

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

使用yum命令在Fedora/RHEL/CentOS Linux安装virt-what命令

$ sudo yum install virt-what

Fedora Linux VM安装virt-what,以检测我们是否在虚拟机中运行

执行dnf命令:

$ sudo dnf install virt-what

Suse/OpenSUSE安装

运行zypper命令:

sudo zypper in virt-what

检查您的远程服务器是否在虚拟环境中运行

只需执行以下命令:

$ $ sudo virt-what

另一个输出:

$ $ sudo virt-what
`kvm`

这是另外一个输出:

$ $ sudo virt-what
`lxc`

这是来自AWS的:

$ sudo virt-what

确定虚拟化技术的简便方法

其他可能的值

  • hyperv:这是Microsoft Hyper-V管理程序。
  • parallels:来宾正在Parallels虚拟平台(Parallels Desktop,Parallels Server)中运行。
  • powervm_lx86:该来宾程序在IBM PowerVM Lx86 Linux/x86仿真器中运行。
  • qemu:这是使用软件仿真的QEMU管理程序。
  • virtualpc:访客似乎正在Microsoft VirtualPC上运行。
  • xen-hvm:这是完全虚拟化的Xen来宾(HVM)。
  • uml:这是一个用户模式Linux(UML)来宾。
  • openvz:访客似乎在OpenVZ或Virtuozzo容器中运行。
  • linux_vserver:此过程在Linux VServer容器中运行。
  • ibm_systemz:这是一个IBM SystemZ(或其他S/390)硬件分区系统。

如果未打印任何内容,则可能意味着程序或者在裸机上运行,或者程序正在内部未知或无法检测的虚拟机中运行。

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

将bash与dmidecode命令一起用于循环,如下所示:

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

输出示例:

Red Hat
KVM

确定虚拟化技术的其他命令

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

systemd-detect-virt