天天看點

Windows Server 2016 Hyper-v Nested Virtualization

Windows Server 2016 Hyper-v Nested Virtualization

在Windows Server 2016沒有釋出以前,作為屌絲的我們在沒有太多實體機的情況下如果想要做Hyper-v群集的實驗就必須使用VMWare Workstation的嵌套虛拟化技術!

但是随着Windows Server 2016的釋出,微軟已經允許我們在Hyper-v平台上使用嵌套虛拟化技術!嵌套虛拟化是一個允許我們在Hyper-v虛拟機中運作Hyper-v虛拟機的功能。換句話來說,通過Windows Server 2016的嵌套虛拟化功能,Hyper-v主機本身可以被虛拟化。

Windows Server 2016的嵌套虛拟化技術主要應用于以下場景:

1、在虛拟化容器主機中運作Hyper-v容器。

2、在虛拟化環境中運作Hyper-v實驗。

3、在不需要單獨硬體的情況下測試多機器的場景

如果想使用Windows Server 2016的嵌套虛拟化技術,必須滿足如下先覺條件:

1、運作Windows Server 2016或Windows 10周年更新的Hyper-V主機。

2、運作Windows Server 2016或Windows 10周年更新的Hyper-V VM。

3、配置版本為8.0或更高版本的Hyper-V VM。

4、采用VT-x和EPT技術的Intel處理器。

注意:

在Windows Server 2016中開啟嵌套虛拟化技術以後,動态記憶體和運作時調整記憶體大小功能将不可用:

當Hyper-V在虛拟機中運作時,必須關閉虛拟機以調整其記憶體。這意味着即使啟用動态記憶體,記憶體量也不會波動。 對于未啟用動态記憶體的虛拟機,任何嘗試在啟動時調整記憶體量的嘗試都将失敗。

說了這麼多下面我們來看一下如何在Windows Server 2016中配置嵌套虛拟化。

本次實驗我将對虛拟機Nested開啟嵌套虛拟化技術:

<a href="http://s3.51cto.com/wyfs02/M02/89/F8/wKioL1gi8Guyns-pAABOFOuIop0399.jpg" target="_blank"></a>

首先我們使用管理者身份運作WindowsPowershell,鍵入如下指令:

Get-VMProcessor -VMName Nested | FL

可以看到,目前“ExposeVirtualizationExtensions”的值為Fales,也就是說明目前虛拟機“Nested”沒有開啟嵌套虛拟化技術:

<a href="http://s3.51cto.com/wyfs02/M00/89/F8/wKioL1gi8GyisnZsAAErROpPreI891.png" target="_blank"></a>

我們啟用Hyper-v将會提示如下錯誤:

<a href="http://s3.51cto.com/wyfs02/M01/89/F8/wKioL1gi8G_gxgA6AACPqQl_yTQ050.jpg" target="_blank"></a>

鍵入如下PS指令來啟用嵌套虛拟化:

<a href="http://s3.51cto.com/wyfs02/M02/89/F8/wKioL1gi8HDzm63UAAAbJw4It9s435.jpg" target="_blank"></a>

執行完成以後檢查“ExposeVirtualizationExtensions”,運作如下指令

<a href="http://s3.51cto.com/wyfs02/M00/89/F8/wKioL1gi8HLgr-0RAACeVTKEY8A365.jpg" target="_blank"></a>

我們開啟計算機Nested并啟用Hyper-v功能:

<a href="http://s3.51cto.com/wyfs02/M01/89/FB/wKiom1gi8HXxGHBGAACD1lYZSmQ056.jpg" target="_blank"></a>

如果想關閉嵌套虛拟化功能可以使用如下PS指令:

Set-VMProcessor -VMName &lt;VMName&gt; -ExposeVirtualizationExtensions $false

本文轉自wuyvzhang 51CTO部落格,原文連結:http://blog.51cto.com/wuyvzhang/1871192,如需轉載請自行聯系原作者

繼續閱讀