在VMware中运行VMware?

19
我们有一台物理机器,运行VMware并托管了一个用于SharePoint部署测试的虚拟机。那台机器很老旧,即将死亡,而我的雇主的网络专家强烈推荐托管VM作为过时物理服务器的替代品。我想知道能否在VMware中运行VMware,如果可以,是否会有严重的性能影响。我们不需要这种设置的极端性能,因为它仅用于SharePoint测试,相关的SQL Server位于另一台机器上。我猜想我们不能仅使用主托管VM进行测试,因为我们偶尔需要回滚并且需要更多控制,而从网络人员那里获得支持是不太可能的。有人有这方面的经验吗?
编辑:我知道这种嵌套肯定不是首选项,但是(1)我们希望能够随意使用VMware快照,(2)由于删除了强制安全更新的可能性,网络人员不会允许我们任意回滚到以前的时间点。我猜想运行VMware Workstation的本地桌面计算机可能是最好的选择。如果可行的话,托管选项似乎更具吸引力,因为这样我就不必处理机器维护问题。

21
嘿,老兄,我们听说你喜欢虚拟化。 - Josh Lee
也许是虚拟现实? - user
14个回答

43

在VMware内部运行VMware的技术限制在于,现代CPU中存在虚拟化特性,而VMware、Virtual PC等利用了这些特性。

如果你有两个或更多的hypervisor都试图控制Ring 0,那么就会出现问题。这是我在尝试同时在我的桌面上运行VMware和Virtual PC时遇到的问题——其中一个会出错/崩溃。

如果你的hypervisor可以与“父”hypervisor交互,那么你就没问题了。或者,如果子hypervisor不尝试使用CPU虚拟化特性,或者完全模拟CPU(如QEMU),那么你也应该没问题。

基本上,旧式的hypervisor在旧CPU上使用完全虚拟化(速度慢),虽然能够嵌套,但性能会受到严重影响。现代Hypervisors/CPU使用硬件辅助虚拟化(接近本机性能),很难找到一个设计或能够支持嵌套虚拟机的hypervisor。

最后,我真的建议不要在运行生产VM的物理服务器上运行dev/test VM。有太多的问题和安全隐患——你需要管理dev/test环境,而且听起来你可能没有访问生产环境的权限。同样,你可能不希望运维团队在你的测试环境上胡乱搞。

更新:ESXi 4现在支持虚拟化本身。请参阅此文章获取更多信息。


2
+1 给你流行徽章,享受吧 :) 当然我喜欢你的回答。 - Shay Erlichmen
我记得在Microsoft Azure虚拟机中无法运行VMware。这是因为Azure虚拟机的CPU不支持虚拟化吗? - Ken T
@KenT请查看https://azure.microsoft.com/zh-cn/blog/nested-virtualization-in-azure/以获取有关今天支持的内容的更多信息。 - saschabeaumont

9

我从未在VMware中运行过VMware,但我在VirtualBox中运行VirtualPC没有问题,所以我想没有根本性的原因它不应该工作...

对我来说,更像是你遇到了“网络专家”的不灵活性而不是技术问题。如果你是开发人员或QA,你需要一个测试环境,在这个环境中你可以尝试使用过时(可能存在安全隐患)的操作系统和应用程序版本,而不会危及公司网络的其他部分。


是的,这是关键。我们需要在不危及网络安全的情况下进行调试。 - Chris Farmer

6

我曾经是VMware的员工。

首先,当你说Nested VMware时,我会假设你指的是Nested ESXi。(你也可能指的是Workstation、Fusion或Player)。

Nested ESXi环境不受支持,不应用于生产。这些情况在QA中没有经过测试,不能保证可行性。简而言之,如果你遇到任何问题,VMware将不会为此Nested ESXi设置提供帮助。

话虽如此,是的,你可以这样做,它是可行的。许多人在他们的实验室中使用嵌套式ESXi,但不用于生产。以前需要特殊的配置文件编辑才能使嵌套式ESXi工作。我曾经看到过甚至有3层嵌套的ESXi服务器(ESXi vm在物理ESXi主机上的ESXi vm)。最近有了ESXi虚拟设备,使这个过程更容易。

请看这里: http://www.virtuallyghetto.com/2015/12/deploying-nested-esxi-is-even-easier-now-with-the-esxi-virtual-appliance.html


4
您应该关注主机(Mainframes)-它们从一开始就是虚拟化的:
硬件-运行Hypervisor Type 1-Level 1,其中您有zVM-Type 2 Hypervisor-Level 2,在此之上,您有zOS-您的主要大型操作系统-Level 3 和/或 在这种情况下,您拥有zLinux-Level 3 和/或 在这种情况下,您需要使用zVM来测试下一个版本-Level 3 并/或 在这种情况下,您需要在下一个版本中同时测试zVM加上zOS-Level 4
因此,到第4个层级是相当常见的。请注意,在主机上,您可以同时运行数千个VM,并且大多数开始使用zVM / CMS和zVM / Linux的网站通常都会这样做。

4
我遇到了同样的问题。我在一家大公司工作,我们的整个基础架构都是虚拟的,所以如果你需要一个服务器,你就会得到一个VMware VM。因此,我有几个基于Windows 2003 Server标准版的Guest VM,它们有6GB的内存和200GB的磁盘空间,但我想在它们上面运行Linux和LAMP堆栈。所以我尝试在其中一个上安装VMware Workstation,但是我收到了一个错误消息,说它不能在VM中安装。我还尝试了Microsoft Virtual PC,但是收到了类似的错误消息。我安装了Sun的VirtualBox,安装很顺利,但是我无法让网络在Ubuntu客户机操作系统中正常工作。我的下一步是尝试QEMU,尽管性能可能成为一个问题。

0
JFYI: 我尝试在虚拟机上安装和运行VMware ESXi服务器主机(子ESXi服务器),它可以运行,但是您无法在子ESXi服务器下运行任何虚拟机。

0

你可以这样做。

你可以在另一个vmware esxi的虚拟机中安装vmware esxi。

但性能会非常差。


0

可以的。你可以在VMWare中运行VMWare。虽然它不是官方支持的,但你可以在子ESX中部署虚拟机。我已经检查了像HBA卡透传这样的高级功能,但在子ESX中不可用,因此我无法从阵列提供LUN。 因此,在生产中最好不要使用这个功能。 但是对于培训和实践,这是可以使用的。


0

我可以看到两个解决方案(如果你算上一个 VM 中的 VM,那就太疯狂了,其实有三个)。

  1. 购买新的硬件,专门用于测试(如 sharpoint 等)并足够强大,可以承载多个 VM。在这种情况下,您的团队可以在不影响非测试 VM 的情况下获得更多权限。

  2. 将 SharePoint 测试 VM 移至主 VM 池,并赋予需要访问的人检出/部署/回滚测试资源的能力。这可以通过 VMWare 工具直接进行,也可以通过通过 VMWare API 进行操作的内部项目进行。

这应该是网络/开发/测试之间的共同决定。


我同意在表面上在虚拟机中使用虚拟机听起来很疯狂,但真的吗?我一直无法找到任何性能数据。我确实同意你的第一选择可能是最好的选择。 - Chris Farmer

0

是的,你可以这样做。VMware甚至可以检测到它是否在另一台VMware机器内运行,并警告您VMception会导致更差的性能。相信我,它确实会。尽量在物理机器上获取虚拟机最佳工作版本,以获得尽可能多的性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接