在今年早些時候,微軟宣布將開發(fā)一種新技術(shù),稱之為嵌套虛擬化技術(shù),這樣用戶就可以在Hyper-V虛擬機中運行Hyper-V容器,即在Hyper-V虛擬機中跑Hyper-V虛擬機?,F(xiàn)在,在微軟推送的Win10預(yù)覽版10565中已經(jīng)開放了該功能的早期版本。需要說明的是,這項功能是針對系統(tǒng)自帶Hyper-V虛擬機的。
該功能本質(zhì)上是把在虛擬機中運行虛擬機監(jiān)控程序所需的一些硬件功能進行了虛擬化。聽起來有點繞,Hyper-V虛擬機的運行依靠硬件虛擬化技術(shù)支持,例如Intel VT-x和AMD-V。通常,一旦Hyper-V在宿主機中安裝后,虛擬機監(jiān)控程序會將該技術(shù)從客戶機中隱藏,阻止客戶虛擬機再安裝Hyper-V。如下圖所示,在之前的版本中,宿主機的Hyper-V虛擬機監(jiān)控程序擁有虛擬化擴展功能的完全控制權(quán)限,功能不對客戶機開放。
![]( //img.jbzj.com/file_images/article/201510/2015101412461392.jpg)
而在最新版本中,宿主機的Hyper-V虛擬機監(jiān)控程序則對客戶機開放虛擬化擴展功能,因此客戶機也可以擁有自己的虛擬機。
![]( //img.jbzj.com/file_images/article/201510/2015101412461390.jpg)
如下圖所示,你可以看到在一臺電腦中運行了一個Hyper-V虛擬機,而這個Hyper-V虛擬機里面又運行了一個虛擬機。
![]( //img.jbzj.com/file_images/article/201510/2015101412461391.jpg)
需要注意的是,該功能目前還處于預(yù)覽階段,因此不可避免的會出現(xiàn)一些問題,不可用于生產(chǎn)環(huán)境。
以下是已知問題:
• 嵌套版本必須都是最新版本,Windows Server 2012 R 2以及Windows10預(yù)覽版10565之前的版本都不可以。
• 一旦開啟了虛擬化嵌套技術(shù),以下功能將無法兼容,使用這些功能將導(dǎo)致虛擬機停止工作或功能不起作用:
-動態(tài)內(nèi)存;
-Runtime內(nèi)存調(diào)整;
-在虛擬機中應(yīng)用checkpoints時將不起作用;
-動態(tài)遷移功能;
• 必須開啟MAC欺騙技術(shù)才能保證客戶機正常網(wǎng)絡(luò)連接;
• 目前只支持Intel VT-x虛擬化技術(shù);
• 電腦需要有足夠大的內(nèi)存!
開啟虛擬化技術(shù)嵌套的方法:
• 創(chuàng)建一個Hyper-V虛擬機,之后關(guān)閉;
• 運行虛擬化嵌套技術(shù)開啟腳本(點此下載):
Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile ~/Enable-NestedVm.ps1
~/Enable-NestedVm.ps1 -VmName VmName>
• 在客戶機中啟用Hyper-V功能;
• 開啟客戶機網(wǎng)絡(luò)支持:
在宿主機中運行下面的Powershell命令即可:
Set-VMNetworkAdapter -VMName VMName> -MacAddressSpoofing on
• 此時就可以在客戶機中繼續(xù)安裝嵌套的客戶機了。
相關(guān)推薦:
[下載]Win10 Build 10565 64位ISO鏡像下載(非微軟官方)!
Win10 build 10565預(yù)覽版激活 可使用Win7/Win8.1密鑰