Microsoft 嵌套虚拟化技术(Nested Virtualization)
indows insider会员计划并没有随着Windows 10正式版的发布而终止,相反一直保持的继续前进,为Windows客户带来更多体验。近期微软推送了最新的windows 10预览版10565,除了带来相关功能性、稳定性、BUG修复之外,还带来了微软年初承诺的技术——Nested Virtualization,意即微软的第二个容器—Hyper-V Container,第一个容器技术Windows Server Container已于8月份的Windows Server 2016 Technical Preview 3来到。
通过嵌套虚拟化技术,用户可以在Hyper-V虚拟机中运行Hyper-V容器,即在Hyper-V虚拟机中跑Hyper-V虚拟机,该技术是针对系统自带Hyper-V虚拟机的。关于在Windows 10中启用Hyper-V功能您可以参加之前写的博文:在Windows 10中启用客户端Hyper-V
http://ericxuting.blog.51cto.com/8995534/1684339
从本质上讲,此功能上是把在虚拟机中运行虚拟机监控程序所需的一些硬件功能进行了虚拟化。Hyper-V虚拟化技术依靠硬件虚拟化支持(如英特尔VT-x和AMD-V)来运行虚拟机。通常情况下,一旦Hyper-V的安装,管理程序隐藏了客户虚拟机这种能力,防止来宾虚拟机再次安装Hyper-V。
在最新预览版本10565中,宿主机的Hyper-V虚拟机监控程序则对客户机开放虚拟化扩展功能,因此客户机也可以拥有自己的虚拟机,在Hyper-V虚拟机中再次启用Hyper-V技术。
非嵌套虚拟化技术:
嵌套虚拟化技术:
要想使用微软的嵌套虚拟化技术,您需要了解到:
1、使用最新的Windows 10预览版本10565,10565之前所有的版本都不支持,包括最新的Windows Server 2012 R2 With update
2、一旦开启了虚拟化嵌套技术,以下功能将无法兼容,使用这些功能将导致虚拟机停止工作或功能不起作用:
1) 动态内存必须被关闭;
2) Runtime内存大小调整失败;
3) 虚拟机中的检查点功能不能正常工作;
4) 不能进行实时迁移操作;
5) 无法使用虚拟机“保存”和“恢复”;
3、必须关闭Virtualization Based Security (VBS)以确保能够开启嵌套虚拟化;
4、当前预览版本10565中只支持Intel VT-x虚拟化技术,尚不支持AMD-V;
5、必须开启MAC欺骗技术才能保证客户机正常网络连接;
6、为了虚拟机能够正常运行,需要至少4G内存,推荐8G内存以上的机器。
下面将为大家演示如何在10565中开启微软嵌套虚拟化技术
1、确保您已经通过Windows insider会员计划升级到Windows 10最新预览版10565
2、在控制面板中启用Hyper-V功能。
3、登陆GitHub网站下载嵌套虚拟化所需的脚本,也可以使用Invoke-WebRequest 直接调用该PS脚本。
4、创建一个Hyper-V虚拟机,然后关闭
5、使用如下命令开启嵌套虚拟化技术,并在执行过程检查是否满足相关需求
1
|
Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/ Enable-NestedVm .ps1 -OutFile ~/ Enable-NestedVm .ps1 |
1
|
~/ Enable-NestedVm .ps1 -VmName <VmName> |
如果您的虚拟机配置为小于4G内存,此时将会提示您
当前我的虚拟机“NestedVM” 配置为16G内存,提示您会启用虚拟化扩展和MAC地址欺骗将被启用
选择“Y”,键入回车
由于当前仍处于开发的预览版阶段,提示您相关警告
6、登陆客户机启用Hyper-V功能
也可以使用如下命令行安装Hyper-V
1
|
Invoke-Command -VMName "NestedVM" -ScriptBlock { Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V -Online; Restart-Computer } |
7、创建一个嵌套虚拟化技术的Hyper-V虚拟机。
创建完新的虚拟机之后,发现相较Windows 10 RTM版本上的Hyper-V配置文件版本再一次升级由6.0到7.0
通过使用发现,开启微软的Nested Virtualization之后,再次创建虚拟机并使用一段时间发现在使用性能上可以接受。
PS:当前该Nested Virtualization技术处于早期开发测试版本,建议不要使用在生产环境,感兴趣的朋友可以在自己的机器中搭建测试环境。
本文转自:程序员鼓励师