在工作中,我们经常会使用到虚拟机,常见的虚拟机有 Hyper-v 虚拟机、VMware 虚拟机、virtualBox 虚拟机,我们再使用虚拟机的过程中,都知道,VMware 能够支持嵌套虚拟化,那么什么是嵌套虚拟化呢?
所谓嵌套虚拟化,就是说,我们在 VMware 上创建了一个虚拟机,之后,我们又想在我们创建的虚拟机之中再创建虚拟机,也就是需要在虚拟机中创建二层虚拟机。VMware可以很方便的实现,只需要动动鼠标即可。现在微软的虚拟化越来越成熟,许多人也渐渐的开始研究微软的Hyper-V的虚拟化,那么 hyper-v 如何实现呢?找遍了管理界面,没发现可以设置地方,但并不是不能设置嵌套虚拟化。
现在的win10和win server 2016都已经支持嵌套虚拟化,也就是说可以在虚拟机中安装Hyper-V或者Proxmox VE。
1、要实现 hyper-v 嵌套虚拟化,首先,我们打开 Powershell ,如图:
2、在命令行中输入 get-vm ,列出我们自己的虚拟机,如图:
PS C:\Users\Windows> Get-VM
3、输入 Get-VMProcessor -VMName 虚拟机名字 | fl,如图:
PS C:\Users\Windows> Get-VMProcessor -VMName Proxmox | fl
我们可以看到,红框中的嵌套虚拟化选项的值为 False,设置为 True 即可。
4、输入 Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName 虚拟机名字,正常情况下,是没有输出的,再输入 Get-VMProcessor -VMName 虚拟机名字 | fl 查看设置结果,如下图:
PS C:\Users\Windows> Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName Proxmox
PS C:\Users\Windows> Get-VMProcessor -VMName Proxmox | fl
经过上面 4 步,我们就可以在虚拟机中再进行虚拟化了,必须安装Hyper-V或者Proxmox VE。
如果我们的虚拟机是 Windows ,我们可以安装 hyper-v 进行验证,能安装,则证明我们上面的设置是成功的,如果我们的虚拟机是 Linux ,则我们在命令行输入 lsmod 进行查看是否有下图的内容,如果有,则证明我们上面的设置是成功的。