见过套娃吗?俄罗斯套娃就是一层层嵌套的娃娃,从大到小依次放在一起。嵌套虚拟化的原理也是一样的:有一个主虚拟环境(最外层的娃娃),里面包含若干个其他环境(内层的娃娃)。
要充分理解本文,可以把嵌套虚拟化想象成虚拟化技术中的俄罗斯套娃。VPS 的嵌套虚拟化是虚拟化领域的新功能,但运作原理大同小异。
首先,让我们从基础开始。
虚拟化与嵌套虚拟化
讨论嵌套虚拟化之前,先明确一下虚拟化的概念。
Virtualization
还记得《哈利·波特与死亡圣器(上)》中的那一幕吗?哈利他们潜入魔法部,要找萨拉查·斯莱特林的挂坠盒——一个魂器。
哈利用一个叫诱饵引爆器的魔法物品在魔法部制造混乱来转移注意力,然后潜入多洛雷斯·乌姆里奇的办公室。这个引爆器在几分钟内自我复制,制造了大规模的混乱和恐慌。
虚拟化技术就像这样:用一件物品,也就是硬件, 创建多个虚拟环境。虚拟化技术通过一种叫做管理程序(Hypervisor)的软件来调用硬件资源,创建独立的虚拟环境,比如虚拟操作系统、虚拟服务器、虚拟桌面等。
Nested Virtualization
你已经在一个虚拟环境里了,现在想在这个虚拟环境内再创建另一个虚拟环境,这就叫嵌套虚拟化。
虚拟化技术依靠管理程序来调用硬件资源、创建虚拟环境,但并非所有管理程序都支持嵌套虚拟化。

虚拟化和嵌套虚拟化有什么区别?
要创建虚拟环境需要两样东西,一是 host computer, and Hypervisor software。管理程序软件利用宿主计算机的资源来创建虚拟客户环境。整个过程就叫虚拟化。让我们用更有趣的例子来帮助你理解虚拟化的概念。
想象托尔的魔法锤。这把锤子是一件物品,只能由托尔一个人使用。现在假如托尔想分享锤子的力量,把它分成许多小锤子呢?他需要一件魔法物品来实现这个想法。如果托尔的锤子分成了五把小锤子,那就有五个人可以使用这把魔法锤的力量。这就像是用一件武器来创造出多件武器。但这里有个关键点:五把小锤子的力量取决于主锤子的力量。也就是说,如果托尔的锤子魔力中断,五把小锤子就会变成废物。
- 托尔的锤子 = 宿主计算机
- 连接托尔锤子力量和五把小锤子的魔法物品 = 管理程序
- 五把小锤子 = 五个虚拟环境
记住托尔锤子的比喻,我们继续讨论嵌套虚拟化。
假设托尔的锤子只能分成五把小锤子,但托尔需要十把。唯一的办法就是用这五把小锤子的力量再创建五把。这种情况下,他需要一件特殊的魔法物品,就像他第一次用过的那样。
这种特殊的魔法物品就是能在已有的虚拟环境内创建新虚拟环境的管理程序。
So to recap:

Virtualization Technology:
- 托尔的锤子 = 宿主计算机资源
- 创建五把小锤子的魔法物品 = 宿主计算机的管理程序
- 五把小锤子 = 五个虚拟客户环境,调用宿主计算机的资源
Nested Virtualization:
- 五把小锤子 = 五个虚拟环境,通过特殊的管理程序能创建其他虚拟环境
- 另一个创建的五个虚拟机 = 嵌套虚拟环境从主要五个虚拟环境中获取能力
使用嵌套虚拟化时,虚拟环境相当于主计算机,你通过 Hypervisor 连接到该虚拟环境的资源,以创建其他虚拟环境。
需要注意的是,并非所有虚拟机都支持这种 Hypervisor 软件,该软件可以在不直接连接到主计算机资源的情况下创建虚拟环境。
支持嵌套虚拟化的顶级虚拟机
A nested VM (Virtual Machine) 可以在其主虚拟环境中创建多个虚拟环境。嵌套虚拟机类别中最受欢迎的虚拟机包括 KVM and Hyper-V.
如何使用 KVM 嵌套虚拟化
使用 KVM 嵌套虚拟化之前,你需要确保系统支持嵌套虚拟化。根据你的处理器类型输入以下命令:
For Intel processors:
cat /sys/module/kvm_intel/parameters/nested
For AMD processors
cat /sys/module/kvm_amd/parameters/nested
如果任一命令的输出为 1 或 Y,则支持嵌套虚拟化;如果输出为 0 或 N,则不支持。
在 Intel 处理器上启用 KVM 嵌套虚拟化的步骤
- 关闭运行中的虚拟机
- 通过输入以下命令卸载 kvm_probe 模块:
sudo modprobe -r kvm_intel - 通过输入以下命令启用嵌套功能:
sudo modprobe kvm_intel nested=1
嵌套虚拟化已临时启用,主机重启后将关闭。
在 AMD 处理器上启用 KVM 嵌套虚拟化的步骤
- 关闭运行中的虚拟机
- 通过输入以下命令卸载 kvm_amd 模块:
sudo modprobe -r kvm_amd - 通过输入以下命令启用嵌套功能:
sudo modprobe kvm_amd nested=1
嵌套虚拟化已临时启用,主机重启后将关闭。
如何使用 Hyper-V 嵌套虚拟化
Hyper-V 是微软的虚拟化技术或 Hypervisor,允许用户创建虚拟硬件或软件。要在 Hyper-V 中启用嵌套虚拟化,请按照以下步骤操作:
- 以主机身份运行 Hyper-V(要求:Windows 10(周年更新版)、Windows Server 2016、Hyper-V Server 2016 或 Windows Server 半年度渠道版)
- 打开 PowerShell 命令提示符。
- 输入以下命令:
Set-VMProcessor -VMName VMNAME -ExposeVirtualizationExtensions $True - 启动虚拟机。
嵌套虚拟化:实现方式、优势与局限
与使用 RAM、CPU 等硬件资源的虚拟机不同,嵌套虚拟化是更优的选择。它利用虚拟机的 Hypervisor 能力来创建多个虚拟实例。

除了 resource-friendly之外,使用嵌套虚拟化还有其他优势:
- 降低整体运营成本
- 加快软件和应用开发与测试速度
- 支持基于云的灾难恢复解决方案
- 适合员工技术培训
- 完美用于演示和实验环境
- 提供快速、灵活的扩展选项
- 无需物理维护
- 提供多个虚拟环境,非常适合专业交易员
但是,使用嵌套虚拟机存在一些缺点:
- Slow performance
- 兼容性和网络问题
- 大多数虚拟机不支持
- 对初学者不够友好 configuration
- Hyper-V 嵌套功能仅适用于 Intel 处理器
- 不支持实时迁移
- 嵌套功能需要手动启用
- 如果主机操作系统被黑客攻击,所有虚拟会话都面临风险
如果你想消除嵌套虚拟化的所有缺点,应该选择配备嵌套虚拟化功能的 VPS。同样的虚拟化技术,但 100% 安全、易于使用,而且更经济实惠。
VPS 支持嵌套虚拟化;在任何设备上运行 BlueStacks 的完美方案!
我们来谈谈模拟器,特别是 BlueStacks Android 模拟器。假设你有一台配置较低的旧电脑,甚至无法安装 BlueStacks。最好且最经济的选择就是使用 VPS 运行 Android 模拟器,这是我们提供的独家产品,价格低到难以置信。
Android 模拟器 VPS
获取 Cloudzy 的 Android VPS,在高性能 VPS 上轻松运行你喜爱的 Android 应用。我们采用最先进的技术,为你提供卓越的体验!
立即开始Cloudzy BlueStacks VPS 本质上就是配备嵌套虚拟化的 VPS。怎样做到的呢?
回到嵌套虚拟化的核心概念:这是一种在虚拟化软件上运行的虚拟化技术。
我们的 BlueStacks VPS 工作原理如下:
你可以在虚拟环境中运行 BlueStacks 模拟器,而无需在原始系统上安装它。这样,你在另一个虚拟软件 _VPS_ 上运行虚拟软件 _BlueStacks_,从而实现了配备嵌套虚拟化的 VPS。
VPS 支持嵌套虚拟化,这在技术领域很有意思。不妨试试看,如果觉得不合适,我们提供全额退款,无需任何解释。
FAQ
VPS 嵌套虚拟化用例是什么?
配置 VPS 支持嵌套虚拟化,让你能运行 _BlueStacks_ 这类软件,无需占用系统硬件资源。详见本文最后一节。
嵌套虚拟化安全吗?
如果在虚拟机的客户操作系统上安装防病毒软件或防火墙,你的嵌套虚拟机应该是安全的。VPS 支持嵌套虚拟化,是在 100% 安全且不可破的操作系统内创建多个虚拟环境的最佳选择。
嵌套虚拟化会影响性能吗?
由于嵌套虚拟机运行在虚拟机的 Hypervisor 上,而 Hypervisor 本身依赖硬件资源,如果你的 CPU 性能不足或系统 RAM 不够,可能会出现延迟或其他性能问题。
使用 VPS 配置嵌套虚拟化有什么优势?
VPS 搭载嵌套虚拟化功能,是测试和开发各种软件的最经济高效方案,无论你使用哪种操作系统。比如我们的 BlueStacks VPS,它是专为 Android 模拟器设计的 VPS,让用户能在 Android OS 中运行和测试软件,无需在电脑上安装 BlueStacks。
Windows 10 支持嵌套虚拟化吗?
是的。Windows 10 内置了 Hyper-V 虚拟机监控程序,用户可以在主 VM 中启用嵌套虚拟化。
为什么大多数云服务商不支持嵌套虚拟化?
- 主机虚拟机监控程序的安全隐患,比如恶意代码
- Poor I/O performance
- 与 AMD 的安全加密虚拟化 (SEV) 和 Intel 的信任域扩展 (TDX) 不兼容
VPS 支持嵌套虚拟化吗?能用它运行 Android 模拟器吗?
是的。Cloudzy 的 BlueStacks VPS 在技术上是一个支持嵌套虚拟化的 VPS。这个产品让用户可以在虚拟环境中运行 BlueStacks(一个 Android 模拟器)和 VPS。