Tester101 Asked: 2009-07-29 05:50:26 +0800 CST2009-07-29 05:50:26 +0800 CST 2009-07-29 05:50:26 +0800 CST 是否可以在另一个虚拟机中设置虚拟机 772 我最近一直在玩虚拟机,我想知道我是否可以在虚拟机中运行虚拟机。 这可能吗?实用吗? virtualization virtual-machines 12 个回答 Voted Best Answer chris 2009-07-29T07:28:07+08:002009-07-29T07:28:07+08:00 嵌套 VM 是 IBM 大型机硬件上一直存在的事情。该硬件做了很多事情来使该过程非常高效。您可以将虚拟机嵌套到任意深度,并且效果很好。 最近的 PC 硬件使这几乎不可能。VMware 网站上的文档讨论了它,但要点是您可以将虚拟机嵌套 2 层,但只能在支持真正硬件虚拟化(VT-x 或 AMD-V)的非常现代的硬件上,并且第二个虚拟机深度必须是运行旧风格的 BT/二进制翻译风格的虚拟化。您可以在内部来宾上运行的虚拟监视器也有严格的限制。 不用说,它不受支持,如果你做任何奇怪的事情(比如 ESX 下的 Hyper-V),我希望它真的很脆弱。而且性能不会好,不管它是否稳定。 sybreon 2009-07-29T08:15:16+08:002009-07-29T08:15:16+08:00 是的你可以。例如,在 Linux 上,您可以使用多个运行 OpenVZ、VirtualServer 或其他类型的 VM 系统的 VM 运行 Xen。这当然是可能的,也非常实用,具体取决于您的目的。 我可以想到这样做的一个原因是在一台物理机器上运行多个服务器。将其作为单级 VM 层次结构还是多个层次运行取决于您的资源隔离计划。 MichaelS 2012-06-01T22:32:33+08:002012-06-01T22:32:33+08:00 如果您需要一些特定的,比如遗留系统进行虚拟化,您总是可以在软件中进行,那么嵌套就不是问题了。试试 qemu,我用它做了 2 级深度,但你可以更深入,但性能可能会使其无用。顺便说一句,PC 架构是 IBM 制造的名誉,但与今天的用途相比,用途完全不同。 baumgart 2009-07-29T05:55:10+08:002009-07-29T05:55:10+08:00 我不相信大多数虚拟化软件包会允许您在虚拟机中运行虚拟机。我知道 VMware 会在安装时检查它是否安装在 VM 中,我希望其他产品也这样做。我不认为必要的 CPU 指令会通过在硬件上运行的管理程序通过虚拟机到达第二个虚拟机。如果它确实有效,那么您还将增加开销而没有得到任何回报。 至于它是否实用——我不明白为什么。如果您需要另一个虚拟机,您可以在您已经运行的虚拟机旁边运行它。我无法想象你必须让一个 VM 在另一个 VM 中运行的情况。没有按比例获得某些资源的额外开销将使这不切实际。 Kevin Kuphal 2009-07-29T05:55:10+08:002009-07-29T05:55:10+08:00 是的。甚至有多种方法可以在虚拟机中运行 VMware ESX/vSphere。我不知道你为什么要在实践中这样做,但它已经完成了。 SQLChicken 2009-07-29T05:57:11+08:002009-07-29T05:57:11+08:00 是的,你可以,但很多事情并不意味着你应该这样做。我见过一个运行虚拟机的虚拟化 ESX 服务器,其中包含另一个虚拟 ESX 服务器。当然,这是一个测试,只是为了看看它是否可以完成(并且可以),我真的不推荐它。 David Spillett 2009-07-29T06:05:44+08:002009-07-29T06:05:44+08:00 这取决于虚拟化技术。如果您使用的解决方案不是像 UML 这样的“真正”虚拟化,那么您可以在 VMWare 等内部运行这些解决方案。或者他们自己。 基于 UML 的安装可以在 VMWare VM 和其他基于 UML 的安装中运行(甚至是嵌套的)。性能指标不会很漂亮! Yannovitch 2010-12-10T07:00:02+08:002010-12-10T07:00:02+08:00 是的,这是可能的,但真的很慢。 如果您租用分配有限公共 IP 的服务器(例如,这取决于您的 MAC 地址,以免毒害您的服务器提供商的网络),这将特别有用;并且您希望您的 VM IP 被桥接以直接与 Internet 通信。因此,如果您不能拥有超过 3 个公共 IP 地址,但需要 10 个虚拟机,那么在全局虚拟机中拥有虚拟机是一个不错的主意:您将只使用一个给定的公共 IP,然后有许多子桥接的虚拟机。 但是您实际上可以混合使用网桥和路由网络配置,只是配置更加困难。 Saabi 2009-07-29T05:58:19+08:002009-07-29T05:58:19+08:00 据我所知,这是不可能的,但 VMware ESX 可以在 VMware Workstation 中运行。恕我直言,它仅适用于测试。 mrduclaw 2009-07-29T06:05:45+08:002009-07-29T06:05:45+08:00 就像很多人都已经准备好说的那样:当然有可能。这取决于虚拟机硬件的仿真程度以及您使用的虚拟化软件。至少,VMWare Workstation 不希望您对其进行虚拟化。 至于它是否实用,也许我们应该向你提出一个问题:你为什么需要做那种事情?并排运行两个虚拟机有什么问题?你问它在多大程度上是实用的?也就是说,如果您担心设置和配置是否实用,可能不会。如果您更担心它的实际用途,那么我想不出我需要这样做的任何东西,除非我正在寻找虚拟化软件中的错误或其他东西。
嵌套 VM 是 IBM 大型机硬件上一直存在的事情。该硬件做了很多事情来使该过程非常高效。您可以将虚拟机嵌套到任意深度,并且效果很好。
最近的 PC 硬件使这几乎不可能。VMware 网站上的文档讨论了它,但要点是您可以将虚拟机嵌套 2 层,但只能在支持真正硬件虚拟化(VT-x 或 AMD-V)的非常现代的硬件上,并且第二个虚拟机深度必须是运行旧风格的 BT/二进制翻译风格的虚拟化。您可以在内部来宾上运行的虚拟监视器也有严格的限制。
不用说,它不受支持,如果你做任何奇怪的事情(比如 ESX 下的 Hyper-V),我希望它真的很脆弱。而且性能不会好,不管它是否稳定。
是的你可以。例如,在 Linux 上,您可以使用多个运行 OpenVZ、VirtualServer 或其他类型的 VM 系统的 VM 运行 Xen。这当然是可能的,也非常实用,具体取决于您的目的。
我可以想到这样做的一个原因是在一台物理机器上运行多个服务器。将其作为单级 VM 层次结构还是多个层次运行取决于您的资源隔离计划。
如果您需要一些特定的,比如遗留系统进行虚拟化,您总是可以在软件中进行,那么嵌套就不是问题了。试试 qemu,我用它做了 2 级深度,但你可以更深入,但性能可能会使其无用。顺便说一句,PC 架构是 IBM 制造的名誉,但与今天的用途相比,用途完全不同。
我不相信大多数虚拟化软件包会允许您在虚拟机中运行虚拟机。我知道 VMware 会在安装时检查它是否安装在 VM 中,我希望其他产品也这样做。我不认为必要的 CPU 指令会通过在硬件上运行的管理程序通过虚拟机到达第二个虚拟机。如果它确实有效,那么您还将增加开销而没有得到任何回报。
至于它是否实用——我不明白为什么。如果您需要另一个虚拟机,您可以在您已经运行的虚拟机旁边运行它。我无法想象你必须让一个 VM 在另一个 VM 中运行的情况。没有按比例获得某些资源的额外开销将使这不切实际。
是的。甚至有多种方法可以在虚拟机中运行 VMware ESX/vSphere。我不知道你为什么要在实践中这样做,但它已经完成了。
是的,你可以,但很多事情并不意味着你应该这样做。我见过一个运行虚拟机的虚拟化 ESX 服务器,其中包含另一个虚拟 ESX 服务器。当然,这是一个测试,只是为了看看它是否可以完成(并且可以),我真的不推荐它。
这取决于虚拟化技术。如果您使用的解决方案不是像 UML 这样的“真正”虚拟化,那么您可以在 VMWare 等内部运行这些解决方案。或者他们自己。
基于 UML 的安装可以在 VMWare VM 和其他基于 UML 的安装中运行(甚至是嵌套的)。性能指标不会很漂亮!
是的,这是可能的,但真的很慢。
如果您租用分配有限公共 IP 的服务器(例如,这取决于您的 MAC 地址,以免毒害您的服务器提供商的网络),这将特别有用;并且您希望您的 VM IP 被桥接以直接与 Internet 通信。因此,如果您不能拥有超过 3 个公共 IP 地址,但需要 10 个虚拟机,那么在全局虚拟机中拥有虚拟机是一个不错的主意:您将只使用一个给定的公共 IP,然后有许多子桥接的虚拟机。
但是您实际上可以混合使用网桥和路由网络配置,只是配置更加困难。
据我所知,这是不可能的,但 VMware ESX 可以在 VMware Workstation 中运行。恕我直言,它仅适用于测试。
就像很多人都已经准备好说的那样:当然有可能。这取决于虚拟机硬件的仿真程度以及您使用的虚拟化软件。至少,VMWare Workstation 不希望您对其进行虚拟化。
至于它是否实用,也许我们应该向你提出一个问题:你为什么需要做那种事情?并排运行两个虚拟机有什么问题?你问它在多大程度上是实用的?也就是说,如果您担心设置和配置是否实用,可能不会。如果您更担心它的实际用途,那么我想不出我需要这样做的任何东西,除非我正在寻找虚拟化软件中的错误或其他东西。