背景
众所周知,一般(默认)情况下,几乎所有的虚拟化技术都不可以共存或者嵌套,例如同一个Windows Server不可以同时开启Hyper-V角色并安装VMware Workstation;
类似的,也不可以在ESXi虚拟机里面再开启Hyper-V角色并运行Hyper-V虚拟机。
不过,这仅仅是一般情况下。
实际上,包括但不限于VMware,还是提供了嵌套虚拟化的方法的。
什么是嵌套虚拟化?
嵌套虚拟化英文叫做“Nested virtualization”,Wikipedia链接在这里https://en.wikipedia.org/wiki/Virtualization#NESTED。
例如物理宿主是Windows 7,安装VMware Workstation,然后创建Windows Server 2008 R2 VMware虚拟机,此时是一般常说的虚拟化;
如果再将这个Windows Server虚拟机的Hyper-V角色激活,并安装一个OpenWRT x64 Hyper-V虚拟机,此时就是嵌套(Nested)虚拟化了。
如果您需要ESXi嵌套Hyper-V的方法,请google搜索“esxi nested hyper-v”,当然也可以举一反三搜索其他的虚拟化嵌套技术。
嵌套虚拟化有什么用?
不可以用于生产环境,微软、VMware以及Wikipedia上均有类似的提醒;
用于测试还是不错的,比如只有一个ESXi宿主,但是需要测试Hyper-V的虚拟化。
嵌套虚拟化的性能如何?
取决于硬件、软件的性能及用途等因素,性能不会好,具体有多差要看具体情况,作为测试还是没问题的。
嵌套虚拟化需要CPU的什么特性?
EPT(Intel VT-x with Extended Page Tables)是必须的;
VT-d不是必须的;
如果需要嵌套64位虚拟机,则VT-x是必须;
如果没有VT-x,只能嵌套32位虚拟机,无法嵌套64位虚拟机。
示例:
物理宿主:i7-4770T,开启VT-x、VT-d及EPT,Windows 7 x64 Enterprise;
虚拟化:VMware Workstation 11;
虚拟化宿主:VMware虚拟机 Windows Server 2008 R2;
嵌套虚拟化:Hyper-V;
嵌套虚拟机:OpenWRT x64软路由。
步骤:
(1)确保BIOS中开启VT-x及EPT。
如果不确定自己的CPU是否支持相应的特性,可以到Intel的ARK搜索CPU型号并参看其显示的CPU特性。链接在这里,http://ark.intel.com/。
(2)在VMware Workstation中创建Windows Server 2008 R2虚拟机,
创建时Virtual Machine Settings->Opentions->Guest operating system->Version选择“Hyper-V (unsupported)”,见截图:
010.PNG (64.42 KB, 下载次数: 1)
(3)Virtual Machine Settings->Hardware->Processors->Virtualization engine中Preferred mode选择Intel VT-x/EPT or AMD-V/RVI,并且勾选Virtualize Intel VT-x/EPT or AMD-V/RVI,见截图:
020.PNG (56.44 KB, 下载次数: 1)
(4)启动Windows Server 2008 R2虚拟机,激活Hyper-V角色。
(5)在Hyper-V中创建OpenWRT虚拟机。
(6)启动OpenWRT虚拟机,见截图:
030.png (296.92 KB, 下载次数: 2)
评论
T大你真会玩。。。。
评论
跪拜高手。。。。昨晚刚刚开始搭2012r2。。。
评论
谢谢捧场
评论
请教T大,除了测试,在实际应用中,有什么样的场景能用到嵌套虚拟化?
评论
真会玩,我在hyper里面搭建openwrt可是不知道怎么连上去,找不到ip地址
评论
没有。
这玩意儿就是测试和玩玩。
评论
这是网络设置问题,请参看TCP/IP教程和微软的Hyper-V手册。
评论
T大,我爱你~教du会hai好多东西,哈哈哈哈哈,谢谢你~
评论
有趣的教學
但只適合測試
评论
真会玩 哈哈
评论
在密集环境下部署VMware需要这些理论基础。
CPU支持VT和VT-x的,我们叫硬件辅助的CPU虚拟化
CPU不支持的,我们叫基于软件的CPU虚拟化
CPU虚拟化就要扯到x86架构下的cpu保护模式,也叫保护虚拟地址模式,是一种提供硬件级别内存保护的x86处理器模式。
cpu保护模式有4个特权等级,分别是Ring0,Ring1,Ring2,Ring3。
Ring0是最优先等级,代码运行在Ring0时,处理器将允许特权代码完全地并且无限制地使用全部硬件资源。
我们在部署虚拟化的时候,
虚拟机操作系统和虚拟机管理器(Virtual Machine Manager,缩写VMM)都是运行在Ring0和Ring3
正是因为这两个代码都运行在Ring0上,那么虚拟机上的客户机操作系统的特权代码就会影响到其他虚拟机上的工作,还会影响到VMM的稳定性,
为了解决这个冲突,所以才有了开篇的“众所周知”,只允许VMM在Ring0上运行特权上编码,因此如果客户机操作系统是32位,那么虚拟机客户机操作系统可以在Ring 1上运行特权编码;如果客户机操作系统是64位的,那么它的编码特权只能在Ring 3上运行,或者就是干脆不支持硬件CPU虚拟化的就不能虚拟化64位操作系统。
支持硬件辅助虚拟化CPU,有两个模式,一个是根模式,另个是访客模式。
VMM使用Ring0和Ring3的根模式,虚拟机上的操作系统使用Ring0和Ring3的访客模式。
访客模式的Ring 0上执行一些特权代码仍然需要经过VMM的拦截和处理。
评论
这理论基础,杠杠的
评论
想问下这样嵌套,性能会下降多少?
评论
很难说,但因为跑的仅仅是openwrt,实际用下来没觉得性能下降;如果嵌套跑Win10肯定就卡成动画片了。
评论
T大,借个帖问个问题,我的gen8装了2012R2,当时bios里选的是ACHI模式下装在sata5里的ssd里,这样会不会影响以后sata1-4的数据盘组raid?
评论
T大,借个帖问个问题,我的gen8装了2012R2,当时bios里选的是ACHI模式下装在sata5里的ssd里,这样会不会影响以后sata1-4的数据盘组raid?
评论
伸手小白求T大编译一个带vmxnet3驱动的openwrt x64,谢谢 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收
·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?