在当今的虚拟机监控程序系统上,您可以做许多伟大的事情,这些虚拟机监控程序系统为解决业务问题和技术挑战提供了很好的方法。使用VMware vSphere这样的虚拟机监控程序,你可以做的一件非常棒的事情是,你可以进行配置嵌套的虚拟化.这为在VMware vSphere中测试和运行虚拟机监控程序提供了许多不同的可能性。

在VMware vSphere中运行嵌套虚拟化的一个常见用例是运行Microsoft的Hyper-V hypervisor以进行测试和学习。

在这篇文章中,我们将看看如何在VMware ESXi服务器上配置嵌套Hyper-V vm,并看看如何在实验室或其他环境中使用它。

什么是嵌套虚拟化

在深入了解如何配置VMware vSphere以启用ESXi服务器内部Hyper-V的嵌套虚拟化之前,让我们先看看什么是嵌套虚拟化。当考虑嵌套虚拟化时,我们讨论的是运行一个管理程序内部的管理程序.这意味着你可以在VMware vSphere ESXi之上的虚拟机上运行Type 1 hypervisor,比如VMware vSphere ESXi和Hyper-V。

运行在VMware vSphere ESXi服务器之上的虚拟机中的hypervisor只是将虚拟机硬件视为其物理主机硬件,并在其上运行客户虚拟机。这允许一些非常有趣的场景,当使用您的VMware vSphere环境托管其他管理程序,如Microsoft Hyper-V。

下载的横幅

关于VMware vSphere,一个重要的观点是不支持在vSphere VM中嵌套其他hypervisor(如Hyper-V)的虚拟化场景。不仅仅是VMware vSphere以外的其他hypervisor。甚至不支持在物理ESXi主机环境中嵌套运行ESXi。这是正式支持将ESXi/ESX作为一个嵌套的虚拟化解决方案运行(2009916)。

在其他VMware虚拟化环境产品中运行VMware ESXi时,以下配置在技术上是可行的,但不支持。这包括以下内容。

  • 运行在VMware Workstation或VMware Fusion的VMware ESXi/ESX
  • 在VMware ESXi/ESX下运行的VMware ESXi/ESX
  • 运行在其他第三方虚拟化环境解决方案中的VMware ESXi/ESX

当然,运行Hyper-V属于同一类型的支持免责声明。只有一种情况支持嵌套虚拟化,即嵌套虚拟化vSAN见证设备。

在vSAN Witness设备所支持的用例之外,生产环境不支持嵌套虚拟化。换句话说,如果您在使用嵌套虚拟化时遇到问题,那么您需要自己提供支持。

只要您理解嵌套虚拟化的支持场景,就可以将其用于其他目的。它可以非常有效地用于实验室环境、开发、测试和其他类似的场景。

为什么在VMware内部运行Hyper-V

为什么要在另一个管理程序中运行一个管理程序?更具体地说,为什么要在VMware ESXi虚拟机中运行Hyper-V ?如前所述,这是不支持生产使用的配置。在VMware内部运行Hyper-V提供了许多巨大的优势。让我们看看以下内容:

  • 实验室环境
  • 不需要额外的硬件或网络设备
  • 轻松提供和拆除Hyper-V主机

实验室环境

这可以说是在VMware虚拟机中提供Hyper-V主机的最常见的用例。嵌套虚拟化允许非常容易地配置实验室环境、开发、测试和其他可能的用例。Hyper-V实验室可以用于:

  • 学习
  • 软件测试
  • POC 'ing Hyper-V为您的基础设施的各个部分或作为替换
  • 在基础设施的另一部分模拟Hyper-V环境
  • 补丁测试

在许多中小型环境中,可能只有VMware vSphere环境可用,没有Hyper-V主机。如果管理员想要接触Hyper-V主机来学习和发展他们在VMware ESXi hypervisor之外的技能,在VMware vSphere中发现的嵌套虚拟化能力提供了提供Hyper-V主机的完美方式内部VMware vSphere环境。

不需要额外的硬件或网络设备

有了这种在VMware vSphere中嵌套Hyper-V的能力,就不需要为实验室环境或POC寻找额外的硬件了。这些都可以在vSphere中提供。如果您决定提供Hyper-V集群,vSphere内部强大的虚拟网络功能还允许提供您所需要的所有专门网络。这可能包括动态迁移、存储和集群网络等。使用虚拟交换机端口组,可以轻松模拟使用物理网络设备完成的配置。

轻松提供和拆除Hyper-V主机

这种优势并不局限于嵌套虚拟化,而是一般的VMware vSphere虚拟化。VMware有非常丰富的自动化工具集,包括PowerCLI。这使得您可以根据需要轻松地启动和销毁虚拟机。整个实验室结构可以自动配置和解除配置。这使得嵌套虚拟化更加有用,因为它具有自动化基础设施的简单功能。

对VMware ESXi服务器嵌套Hyper-V虚拟机的要求

一旦你决定使用嵌套虚拟化,你能简单地在vSphere ESXi中创建一个新的VM并开始加载Hyper-V VM吗?好吧,不完全是这样,但是,当您考虑到为了使嵌套虚拟化真正工作所需的巨大复杂性时,这个过程仍然非常容易使用。对于在VMware ESXi服务器上运行嵌套Hyper-V虚拟机的要求,实际上有两个主要方面需要考虑。这包括:

  • 向客户操作系统公开硬件辅助的虚拟化
  • 启用MAC地址伪造传输

让我们看看每一个,以及它们在VMware ESXi服务器上运行嵌套Hyper-V虚拟机的重要性。

将硬件辅助虚拟化暴露给Guest操作系统

你会发现第一个要求是绝对必需的。它是您用于存放Hyper-V安装的单个虚拟机设置下面的一个设置。编辑设置在嵌套的Hyper-V VM上,展开CPU在旁边放一个复选框向客户操作系统公开硬件辅助虚拟化。

在VMware中为Hyper-V虚拟机启用硬件辅助虚拟化

在VMware中为Hyper-V虚拟机启用硬件辅助虚拟化

如果您不为Hyper-V虚拟机的VMware中的硬件辅助虚拟化启用此标志,会发生什么?你不会看到任何错误简单安装你的Windows Server操作系统,因为这将工作为安装任何其他VM。但是,当你要安装hyper - v的作用,如果没有为虚拟机启用此设置,则会看到一个错误。注意下面的错误," Hyper-V cannot be installed: The processor does not have required virtualization capabilities "

作为附注,这个标志需要设置为Hyper-V核心安装或安装在Windows Server中的Hyper-V角色与桌面体验安装。在VMware vSphere内部任何嵌套安装Hyper-V角色时都需要此功能。

VMware虚拟机没有设置硬件虚拟化标志,安装Hyper-V角色时出错

VMware虚拟机没有设置硬件虚拟化标志,安装Hyper-V角色时出错

还可以使用少量PowerCLI代码设置此标志,这允许轻松地在指定的VM上设置该标志。

美元vmName = ' MyHyperVVM '

$vm = Get-VM -Name

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec

美元的规范。真正nestedHVEnabled = $

(vm.ExtensionData.ReconfigVM美元规范)

启用混杂模式和MAC地址伪造传输

最有可能的情况是,如果你在VMware vSphere中配置Hyper-V嵌套安装,你不仅希望能够安装一个具有Hyper-V角色的服务器,而且还希望能够在你正在运行的嵌套Hyper-V服务器上运行一个嵌套Hyper-V VM。

您可能不关心是否具有到Hyper-V VM的网络连接能力,但是,您可能希望能够建立到运行在VMware虚拟机中嵌套Hyper-V主机之上的嵌套虚拟机的实际网络连接。

如果您想拥有此功能,可能需要在嵌套Hyper-V主机连接的VMware vSwitch上进行一些网络配置设置。

你可能需要这样做,因为自从VMware vSphere 6.7发布以来,VMware vSwitch技术和嵌套虚拟化有了新的进步。在VMware vSphere ESXi 6.7发布之前,VMware并没有像实际物理交换机那样在vSwitch上实现MAC学习。无论是vSphere Standard Switch还是vSphere Distributed Switch,都是如此。

由于这是vSphere 6.7之前的VMware vSwitch的情况,当虚拟交换机收到的数据包没有与嵌套的hypervisor主机vmnic的pNIC MAC地址匹配(嵌套的ESXi主机),数据包将被丢弃。

要绕过这个限制,需要在vSwitch上启用两个设置,混合模式伪造的传输

在VMware vSwitch上配置混杂模式和伪造传输

在VMware vSwitch上配置混杂模式和伪造传输

那么vSphere 6.7和更高版本呢?在vSphere ESX 6.7发布之前,VMware已经开始在虚拟交换机的嵌套虚拟化和MAC学习功能方面进行工作。发布了一个“MAC Learning Fling”,它引入了MAC学习功能,这样你就不必启用混杂模式和伪造传输设置。

该设置是在VMware vSphere 6.7 ESXi发布时实现的。

在ESXi 6.7中,新的MAC学习特性有什么要求?

在使用vSphere 6.7中的新MAC学习功能之前,您需要具备一些要求。它们是:

  • 将vCenter Server和ESXi服务器升级到vSphere 6.7
  • 运行vSphere Distributed Switch (vDS)
  • 将vDS升级到最新版本(6.6)
  • 基于vSphere分布式交换机端口组管理
  • 目前通过vSphere API进行管理

需要注意的是,vSphere 6.7和vds6.6 vSwitch的MAC学习功能默认情况下是不启用的。您必须使用API适当地设置标志。

为了使这个过程更容易,员工解决方案架构的William Lam编写了几个PowerCLI函数,这些函数使得在vSphere环境中检查MAC学习状态和设置MAC学习非常容易。从他的Github库下载William的PowerCLI脚本:

https://github.com/lamw/vghetto-scripts/blob/master/powershell/MacLearn.ps1

的输出示例Get-MacLearn功能检查vSphere分布式交换机端口组如下图所示。备注字段:

  • MacLearning
  • NewAllowPrimiscuous
  • NewForged传送
  • NewMacChanges
  • 限制
  • LimitPolicy

这是vds6.7 vSwitch端口组在默认设置下的样子。

在vSphere 6.7 vDS交换机上检查MAC学习状态

在vSphere 6.7 vDS交换机上检查MAC学习状态

对于嵌套的ESXi安装,以及在vSphere ESXi hypervisor中运行的Hyper-V vm,你需要设置如下设置:

  • MAC学习:真
  • 混杂模式:假
  • 伪造的传输:真
  • MAC的变化:假
  • 限制:4096(您可以设置或保持默认值)
  • 限制策略:Drop(可以设置或保持默认值)

可以使用以下PowerCLI代码设置上述建议:

  • 设置- maclearn -DVPortgroupName @(" dpd - servers ") -EnableMacLearn $true -EnablePromiscuous $false -EnableForgedTransmit $true -EnableMacChange $false

正如我们现在所期望的,正如你在上面所注意到的混合模式设置为.即使启用了MAC学习,伪造的传输仍然设置为真正的

在vSphere 6.7中包含的MAC学习功能通过防止混杂模式的启用,可以避免在vSphere 6.7环境中运行嵌套虚拟机的一些安全影响。

可以备份嵌套环境吗?

即使只有VMware vSphere支持在vSAN见证设备上运行嵌套虚拟化,如果你在VMware vSphere ESXi中运行嵌套Hyper-V虚拟机,你可能想备份你的嵌套环境。这能做到吗?

是的,当然。

使用现代的备份解决方案,比如Vembu BDR套件,允许您不仅备份您的生产VMware vSphere或Microsoft Hyper-V环境,而且还可以备份任何嵌套安装的ESXi或Hyper-V,您可能在环境中。

结束

在VMware ESXi服务器上嵌套Hyper-V虚拟机为您提供了使用Hyper-V的能力,即使您只有一个VMware vSphere环境。如图所示,有许多嵌套虚拟化用例。这包括学习、软件测试、POC和给Hyper-V主机打补丁。

尽管嵌套虚拟化在VMware vSphere中非常强大,但您可能会认为这个过程非常困难。然而,在提供包含Hyper-V安装的VMware vSphere VM时,只需要几个考虑事项。这包括在Hyper-V虚拟机的虚拟CPU上公开硬件辅助虚拟化标志,并实现混杂模式或MAC学习,以便将任何嵌套的Hyper-V虚拟机连接到网络。

总之,在VMware ESXi服务器上嵌套Hyper-V虚拟机是一个非常强大的功能,允许您测试和学习Hyper-V,而不需要运行Hyper-V hypervisor的物理设备。

跟随我们的推特脸谱网为新发布,更新,见解深刻的帖子和更多的Feeds。