Oracle VirtualBox 是一个非常受欢迎的虚拟机管理程序,很多人都用它来学习各种技术并使用虚拟化技术涉足。VirtualBox 是一个免费提供的虚拟机管理程序,它提供了许多出色的选项,包括广泛的兼容主机操作系统以及运行许多不同来宾操作系统的能力。

VMware ESXi是VMware开发的企业级类型 I(type-1)Hypervisor,用于硬件虚拟化。作为类型 I(type-1)Hypervisor,ESXi不是安装在操作系统上的软件应用程序,而是直接安装在硬件上并且集成了重要的操作系统组件,如内核[3]。VMware ESXi原名ESX,2010年ESX4.1版本发布后,VMware将ESX更名为ESXi[4]。

让我们来看看使用VMware ESXi 和VirtualBox相互嵌套虚拟化。您可以在 ESXi 内使用嵌套的 VirtualBox 或在 VirtualBox 内使用 ESXi。或者,virtualbox内嵌套virtualbox 首先,我们来看看如何在VirtualBox 中启用嵌套虚拟化。

在 VirtualBox 中启用嵌套虚拟化

如果您对 Oracle VirtualBox 不太熟悉,尤其是如果您主要接触过VMware vSphere或 Microsoft Hyper-V,那么您可能不太熟悉或从未在 VirtualBox 中配置过嵌套虚拟化。

备注测试环境是宿主机是win10 安装的virtualbox版本是6.1.26目前的最新版本

使用 VirtualBox,您可以使用 VirtualBox GUI 或使用命令行启用嵌套虚拟化。对于可能使用 Intel 处理器的大多数人,您需要从 VirtualBox 命令行启用嵌套虚拟化设置。

gui设置如图,选中要嵌套的虚拟机、点击设置

启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_嵌套

 

还可以用命令行工具启动

VirtualBox 中包含一个特殊工具,可以启用嵌套的虚拟化标志。这是vboxmanage实用程序。使用 vboxmanage,您可以轻松地在 VirtualBox VM 上启用嵌套虚拟化。



下面,我们使用vboxmanage list vm命令列出在 VirtualBox 中运行的 VM。然后,您使用以下命令:

<span style="color:#3f3b36">vboxmanage modifyvm "<你的虚拟机名称>" --nested-hw-virt on</span>


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_嵌套_02

使用 virtualbox 命令行启用嵌套虚拟化


如前所述,您无法使用 GUI 为 Intel CPU 启用嵌套虚拟化。正如您在下面看到的,如果您运行的是 Intel CPU,该选项将显示为灰色。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_启用了嵌套硬件的辅助虚拟化_03

使用 virtualbox gui 启用嵌套虚拟化


现在为 VirtualBox VM 启用了嵌套虚拟化,您可以运行一个嵌套操作系统,该操作系统在下面虚拟化工作负载。

下面介绍如何在虚拟出的centos系统里面安装virtualbox。

下载virtuabox的yum  repo文件

cd /etc/yum.repos.d/
wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo

yum update

  

yum provides virtualbox

  查看当前版本

yum install VirtualBox-6.1-6.1.26_145957_el7-1.x86_64 -y

安装完成后,执行

rcvboxdrv setup

如果提示错误,需要安装内核开发包。

yum install gcc make

 yum install kernel-devel

安装后继续执行

rcvboxdrv setup

可以用

rcvboxdrv status 查看状态。

至此已经完成virtualbox的安装,如果centos没有安装图形界面使用xmanager启动virtualbox的gui的话,还需要先设置xmanager,主要是解决启动的图形界面键盘无效的问题。

启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_嵌套_04

 在centos系统里面设置环境变量

exprot DISPLAY=ip:0.0

export QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb

执行 virtuabox 就可以远程启动gui了。

后面就可以在图形界面下创建虚拟机。

 

VirtualBox 嵌套 VMware ESXi 主机

在 VirtualBox VM 中嵌套 VMware ESXi。我们需要做的第一件事是为 ESXi 主机创建一个新的 VirtualBox 虚拟机。使用适用于 ESXi 主机的其他 Linux(64 位)版本。



启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_虚拟化_05

在 virtualbox 中创建一个新的 esxi 虚拟机


使用与上述启用嵌套虚拟化相同的过程,您需要在新创建的 ESXi 主机上设置nested-hw-virt标志。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_嵌套_06

在 virtualbox 中为 esxi 主机启用嵌套虚拟化


上传您的 VMware vSphere ESXi 媒体并在 VirtualBox 中加载 ESXi 主机。

在 VMware ESXi 虚拟机中嵌套 VirtualBox



现在让我们考虑另一种方式。如何将 VirtualBox 安装嵌套在 VMware ESXi 虚拟机中?这相当简单,并且需要 VMware ESXi 方面的相同操作——CPU 的硬件虚拟化需要暴露给客户操作系统。

因此,用于安装 VirtualBox 的 VMware ESXi 中的虚拟机需要为 CPU 配置嵌套虚拟化设置。在VirtualBox VM的虚拟硬件配置、CPU 配置下,选中该框:

  • 向来宾操作系统公开硬件辅助虚拟化

启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_虚拟化_07

在 vmware esxi 中为 virtualbox 嵌套虚拟化配置硬件虚拟化设置


如果您不在 VirtualBox 虚拟机的属性上配置硬件虚拟化设置,会发生什么情况?与在 VMware ESXi 中安装 Hyper-V 或嵌套 ESXi 不同,在安装 VirtualBox 期间您不会收到错误消息。安装的行为与启用该设置的虚拟机相同。

但是,当您忘记启用硬件虚拟化时,您会看到一些奇怪的事情。当您在未配置硬件虚拟化标志的嵌套 ESXi VirtualBox 安装上创建虚拟机时,您将只看到 32 位操作系统的选项,而在创建虚拟机中看不到 Windows Server 操作系统。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_centos_08

仅显示 32 位操作系统,不显示服务器操作系统


此外,您将在 VirtualBox 中 CPU 的系统设置屏幕上看到检测到无效设置消息。消息上方的注释详细说明了系统页面的加速部分中启用了硬件虚拟化,尽管主机系统不支持它。这是一个明显的迹象,表明在 VMware vSphere 中没有为 VirtualBox VM 启用硬件虚拟化。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_centos_09

virtualbox 处理器设置中显示无效的系统设置错误


不用说,您将希望启用硬件虚拟化。让我们看看在嵌套在 VMware vSphere ESXi Windows 10 VM中的 VirtualBox 中创建一个 ESXi VM。创建其他 Linux(64 位) VM。在存储下单击小加号以添加光驱。如果您已经列出了一个光驱,您可以选择添加光驱。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_centos_10

将光驱添加到 virtualbox vm


选择光驱


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_linux_11

选择光驱添加esxi iso


浏览您的计算机并选择您从 VMware 下载的 ESXi ISO 文件。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_嵌套_12

选择并选择您下载的 esxi iso 文件


选择ESXi ISO 文件后,您应该准备好启动并开始在 VirtualBox 虚拟机中加载 ESXi。


启用了嵌套硬件的辅助虚拟化 嵌套虚拟化什么意思_虚拟化_13

在 virtualbox 中打开和引导您的 esxi vm


为什么要将 VirtualBox 嵌套在 ESXi 中?

显而易见的问题可能是你为什么要这样做?嗯,简短的回答是做一些很酷的事情!但是,我可以想到一些现实世界的用例,特别是如果您已经拥有 ESXi 实验室。您可能想要使用 VirtualBox,并希望在可以在您的家庭实验室中轻松设置的嵌套环境中执行此操作。可能还有其他用途,例如建立网络实验室和其他类型的有趣用途。