是否可以在另一个虚拟机中设置一个虚拟机


30

我一直在玩虚拟机latley,想知道是否可以在虚拟机中运行虚拟机?
可能吗?
实用吗?


3
实际原因是您要租用服务器。服务器是物理服务器还是虚拟服务器都无关紧要-这是我的服务器。如果我想在服务器上安装VirtualPC或Virtual Server,那就是我的工作。
伊恩·博伊德

2
这并不是一个实际的原因,因为在VM内安装VM的“实用性”最终将取决于在所选的HW + SW平台中实现此功能的“实用性”。仅仅因为有人“想要”去做并不能使其实用。
Joe Internet,2010年

1
对于任何想知道为什么要这样做的人,这是我的原因,尽管我承认这不是“现实世界”的原因,我真的不能想到其中的一个。我正在为RHCSA考试学习,但是无法访问带有硬件虚拟化的系统。因此,我希望在作为Amazon AWS实例运行的RHEL虚拟机上完成此操作。由于(几乎可以肯定)AWS计算机本身就是虚拟机,因此在其上运行KVM将需要嵌套VM。
斯蒂芬·C

Answers:


27

嵌套VM是在IBM Mainframe硬件上永久完成的工作。该硬件会做很多事情,以使该过程非常高效。您可以将VM嵌套到任意深度,并且效果很好。

最近,PC硬件几乎无法做到这一点。一个文档 VMware的网站上讨论它,但要点是,你可以有虚拟机嵌套2深,但只有在非常现代的硬件支持真正的硬件虚拟化技术(VT-x或AMD-V),而第二VM深度必须运行较旧样式的BT /二进制翻译样式虚拟化。您可以在内部guest虚拟机上运行的虚拟监视器也受到严格的限制。

不用说,它不受支持,而且如果您做任何甚至很奇怪的事情(例如ESX下的Hyper-V),我都希望它真的很简单。无论性能是否稳定,性能都不会很好。


2
自撰写以来,该文档已经发生了重大变化,技术水平也是如此。正如写的那样,这个答案今天实际上并不适用。考虑更新它。
迈克尔·汉普顿

1
@MichaelHampton您的评论非常怀疑并且听起来很乐观。您能否提供更新的答案或链接到一个答案?
ILMostro_7

这是一个指向fedora-wiki页面的链接,该页面描述了如何在KVM中启用嵌套virt
ILMostro_7

1
只是为了确认-就MS的Hyper-v产品而言,我相信直到现在仍不支持嵌套VM。
RBT

2

是的你可以。例如,在Linux上,您可以将Xen与运行OpenVZ,VirtualServer或其他某种类型的VM系统的多个VM一起运行。根据您的目的,这肯定是可行的,也是非常实用的。

我可以想到的一个原因是在一台物理计算机上运行多个服务器。将其作为单个VM层次结构还是多个VM层次结构运行取决于您的资源隔离计划。


2

如果您需要对某些特定的系统(例如旧系统)进行虚拟化,则可以始终在软件中进行操作,那么嵌套就不是问题。尝试qemu,我用它做了2级深入,但是您可以做得更深一些,但是性能可能会使它无用。顺便说一句,PC体系结构是IBM的命名法,但是与当今使用的完全不同。


1

我不相信大多数虚拟化软件包都将允许您在VM中运行VM。我知道VMware会检查安装时间,以查看是否将其安装在VM中,我希望其他产品也能这样做。我认为从硬件上运行的管理程序到虚拟机再到第二个虚拟机都不会呈现必要的CPU指令。如果它确实起作用,那么您还会增加开销,而不会得到任何回报。

至于它是否实用-我不知道为什么。如果需要另一台VM,则可以在已运行的VM旁边运行它。我无法想象必须在另一个VM内运行一个VM的情况。如果不按比例获得某些资源,则额外的开销将使其不切实际。


1

是。甚至还有在虚拟机中运行VMware ESX / vSphere的方法。我不知道您为什么会想实践,但是已经完成了。


我见过一些人想要在VM中测试ESX,但是安装除了常规的安装方法之外还需要其他工作。这不是开箱即用的东西。
baumgart

1

是的,您可以,但是喜欢很多事情并不意味着您应该这样做。我已经看到了运行虚拟机的虚拟化ESX服务器,其中包含另一个虚拟ESX服务器。当然,这只是一个测试,看它是否可以完成(而且可以),我真的不建议这样做。


1

这取决于虚拟化技术。如果您使用的不是UML之类的“真正”虚拟化解决方案,那么您可以在VMWare之内运行这些解决方案。还是他们自己。

基于UML的安装可以在VMWare VM和其他基于UML的安装(甚至嵌套)中运行。性能指标不会很漂亮!


1

是的,有可能,但确实很慢。

如果您要租用分配了有限公共IP的服务器(这取决于您的MAC地址,以免毒害服务器提供商的网络),则特别有用;并且您希望桥接您的VM IP以直接与Internet通信。因此,例如,当您不能拥有超过3个公共IP地址,但是您需要10个VM时,将VM置于全局VM中是一个不错的主意:您将只使用给定的公共IP中的一个,然后有许多子桥接虚拟机。

但是您实际上可以混合使用网桥和路由网络配置,这在配置方面要困难得多。


0

据我所知,这是不可能的,但是VMware ESX可以在VMware Workstation中运行。恕我直言,它仅对测试有用。


0

就像许多人都准备好说的那样:当然有可能。这取决于对VM硬件的仿真程度以及所使用的虚拟化软件。至少,VMWare工作站不希望您对其进行虚拟化。

至于是否可行,也许我们应该向您提出问题:为什么您需要做这种事情?并排运行两个虚拟机有什么问题?您会问它是否实用?也就是说,如果您担心设置和配置的实用性,可能不会。再次,如果您更担心它的实际用途,除非我正在寻找虚拟化软件中的错误或其他东西,否则我想不起来需要做任何事情。



0

可以,但是我不建议这样做。

在“来宾系统”计算机上的整个过程中,性能通常会受到很大影响。如果您真的必须在没有专用硬件和软件的情况下执行此操作,那么祝您好运。但是,这通常不是一个好习惯,尤其是用于实现虚拟化的常用方法时。

我确实知道,如果您尝试在VMWare系统中运行VMWare,它将抱怨并且不允许您这样做。我不确定VirtualBox。我确实知道有一些人,无论出于何种原因,都会在Docker容器中部署Docker容器(或者这样说)。这个故事的寓意是:尽管有可能,但除非您真的知道自己在做什么,否则这样做可能并不明智。

除了网络之外,我个人不知道任何实际用例。


2
您需要的“专用”硬件实际上是过去七,八年制造的任何CPU。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.