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