顯示具有 Hyper-V 標籤的文章。 顯示所有文章
顯示具有 Hyper-V 標籤的文章。 顯示所有文章

課程簡介

  • 熟悉雲端運算定義 五種服務特徵、四種部署模型、三種服務類型。
  • 針對建置企業私有雲網路環境時,該如何規劃 VM 虛擬主機的各種傳輸流量,如 VM 網路服務流量、高可用性遷移流量、容錯移轉流量…等以避免造成傳輸瓶頸。
  • 從針對不同儲存設備類型特性的認識,到私有雲運作環境該如何規劃及計算儲存設備 IOPS 效能,以避免資料傳輸瓶頸產生 VM 虛擬主機運作效能不佳的情況。



課程資訊

日期: 2017/4/29 ~ 2017/6/17
時間: 每週六 09:00 ~ 12:00、13:30 ~ 16:30
地點: 國立臺北商業大學 (臺北市中正區濟南路一段321號)
網址: Hyper-V 私有雲規劃與建置實務班



網管人雜誌

本文刊載於 網管人雜誌第 133 期 - 2017 年 2 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。





文章目錄

前言
實戰 Hyper-V 巢狀式虛擬化
          Guest Hypervisor 安裝 Hyper-V 角色
          Guest Hypervisor 啟用 MAC 位址變更機制
          Guest Hypervisor 啟用 NAT 機制
          Nested VM 再生 Nested VM?
結語





前言

在伺服器虛擬化運作環境中,談到「巢狀式虛擬化」(Nested Virtualization)的運作環境時,大家通常都會想到 VMware vSphere 虛擬化解決方案。沒錯,在過去的 Hyper-V 虛擬化平台當中,要建構出「巢狀式虛擬化」的運作環境,確實非常困難並且難以達成的。現在,透過最新發行的 Windows Server 2016 雲端作業系統,所建構的 Hyper-V 虛擬化平台便能原生內建支援「巢狀式虛擬化」運作機制。
事實上,從 Windows Server 2016技術預覽版本 4 的「10565」組建號碼開始,便原生內建支援巢狀式虛擬化機制。

簡單來說,在過去舊版 Hyper-V 虛擬化平台運作架構中,最底層 Hyper-V Hypervisor 虛擬化管理程序,將會完全管控「虛擬化擴充功能」(Virtualization Extensions)的部分,也就是如圖 1 所示中「橘色箭頭」的部分。同時,Hyper-V Hypervisor 並不會將底層硬體輔助虛擬化功能,傳遞給運作於上層的客體作業系統,所以在舊版的 Hyper-V 虛擬化平台上很難實作出巢狀式虛擬化的運作環境。

圖 1、舊版 Hyper-V 虛擬化平台運作架構(不支援巢狀式虛擬化)


現在,透過最新 Windows Server 2016 雲端作業系統所建置的 Hyper-V 虛擬化平台當中,Hyper-V Hypervisor 虛擬化管理程序,已經可以順利將「虛擬化擴充功能」也就是底層硬體輔助虛擬化技術,傳遞給 Hyper-V 虛擬化平台上運作的客體作業系統了。

因此,當 Hyper-V 虛擬化平台上運作的客體作業系統為 Windows Server 2016 時,因為能夠順利接收到由底層所傳遞過來的硬體輔助虛擬化技術,所以便能啟用 Hyper-V 虛擬化功能並建立 VM 虛擬主機,達成 VM 虛擬主機中再生出 VM 虛擬主機的巢狀式虛擬化運作架構。
事實上,當客體作業系統運作 Windows 10 時,也能順利接收底層所傳遞過來的硬體輔助虛擬化技術,達成 VM 虛擬主機中再生出 VM 虛擬主機的巢狀式虛擬化運作架構。
圖 2、新版 Hyper-V 虛擬化平台運作架構(支援巢狀式虛擬化)

此外,一般對於巢狀式虛擬化技術的認知,僅止於建立測試研發環境上具備方便度而已,通常在線上營運的運作環境中並不會使用到巢狀式虛擬化技術。然而,在新版 Windows Server 2016 中 Hyper-V 虛擬化平台支援巢狀式虛擬化技術,並非只是為了達到 Nested VM 這種 VM 虛擬主機再生出 VM 虛擬主機,方便建立測試研發環境的目的而已。

在新一代 Windows Server 2016 雲端作業系統運作環境中,同時支援 Windows Containers 及 Hyper-V Container 這 2 種容器技術運作環境,其中「Hyper-V Container」容器技術運作環境的部分,便是在 VM 虛擬主機中再運作 Container 容器環境,達到更進一步的容器技術隔離運作環境。事實上,Hyper-V Container 的容器技術運作環境,便是透過 Hyper-V 巢狀式虛擬化技術所達成的。

圖 3、Windows Containers 與 Hyper-V Containers 運作架構示意圖





實戰 Hyper-V 巢狀式虛擬化

在開始實作 Hyper-V 巢狀式虛擬化機制之前,我們先了解建立 Hyper-V 巢狀式虛擬化的運作環境需求以及相關限制:

Hyper-V 主機(Hyper-V Hypervisor)
  • 運作 Hyper-V 巢狀式虛擬化技術的實體伺服器,在 CPU 處理器硬體輔助虛擬化技術的部分,必須採用支援「Intel VT-x 及 EPT」虛擬化擴充功能的 CPU 處理器才行。
  • 作業系統的部分,必須採用 Windows 10 年度更新版(Enterprise、Professional、Education)或 Windows Server 2016(Standard、Datacenter)等版本。

VM 虛擬主機(Guest Hypervisor)
  • 必須採用「第 2 世代」以及新版「8.0」的 VM 虛擬主機格式。
  • 作業系統的部分,必須採用 Windows 10年度更新版(Enterprise、Professional、Education)或 Windows Server 2016(Standard、Datacenter)等版本。
  • 必須「啟用」vCPU 虛擬處理器的虛擬化擴充功能,才能夠順利接收由底層 Hyper-V 虛擬化平台所傳遞的硬體輔助虛擬化技術。
  • 建議「停用」動態記憶體功能。雖然,啟用動態記憶體功能仍然不影響 VM 虛擬主機的運作,但倘若嘗試調整記憶體空間大小時(也就是執行 Runtime Memory Resize 的動作),將會發生失敗的情況。
  • 必須「啟用」MAC Address Spoofing 機制,或建立具備 NAT 功能的 vSwitch 虛擬網路交換器,否則屆時建立的 Nested VM 虛擬主機,將會發生無法與實體網路環境連通或連線至網際網路的情況。

上述 Hyper-V 巢狀式虛擬化的運作環境需求僅為大方向的重點規劃要項,下列將針對 Hyper-V 實體伺服器在 CPU 處理器及記憶體方面的選擇及規劃給予建議。

CPU 處理器的選擇
事實上,從 Windows Server 2008 R2 作業系統版本開始,Windows Server 便僅提供 64 位元的作業系統版本,當然 Windows Server 2012 和 2012 R2 以及新世代的雲端作業系統 Windows Server 2016 也不例外。因此,在選擇原生 64 位元的 CPU 處理器時,請選擇具備更多「定址空間」及具備大容量「L2 / L3 快取」空間的 CPU 處理器,甚至較新世代的處理器如 Intel Haswell、Broadwell 更支援 L4 快取,當擔任 Hyper-V 角色的硬體伺服器配置這樣的 CPU 處理器時,將能夠讓 Hyper-V 伺服器擁有更強大的運算資源。
請注意,雖然從 Windows Server 2008 R2 作業系統版本開始,Windows Server 便不再發行 32 位元版本,但是在原生 64 位元的 Windows Server 環境中運作 32 位元的應用程式,並不會有任何問題產生。

至於,在選擇 CPU 處理器時,應該選擇追求「高時脈」以得到高效能的運算速度,或者是著重在選擇「多核心」以達到平行運算,則應該視屆時運作於 Hyper-V 虛擬化平台上 VM 虛擬主機當中的工作負載類型而定,舉例來說,倘若 VM 虛擬主機當中的應用程式是屬於「單線程」(Single-Thread)類型的話,那麼便應該選擇採用「高時脈」類型的 CPU 處理器,倘若 VM 虛擬主機當中的應用程式是屬於「多線程」(Multi-Thread)類型的話,那麼便應該選擇採用「多核心」類型的 CPU 處理器,如此一來才能夠讓 VM 虛擬主機當中的工作負載得到最佳化的運算效能。

此外,在選擇 CPU 處理器硬體輔助虛擬化技術的部分,目前主流的 CPU 處理器皆已經支援第一代硬體輔助虛擬化技術(例如,Intel VT-x 或 AMD-V),以及第二代硬體輔助虛擬化技術或稱第二層位址轉譯 SLAT(例如,Intel EPT 或 AMD NPT),以便降低因為虛擬化技術所造成的硬體資源耗損。
請注意,在 Windows Server 2016 所建構的 Hyper-V 虛擬化平台中,倘若要建立 Hyper-V 巢狀式虛擬化運作環境的話,目前僅支援 Intel 處理器的硬體輔助虛擬化技術「Intel VT-x 及 EPT」,尚未支援採用 AMD 處理器「AMD-V 及 NPT」虛擬化擴充功能建立 Hyper-V 巢狀式虛擬化運作環境。

Memory 記憶體的選擇
在建構 Hyper-V 虛擬化平台的硬體伺服器上,針對實體記憶體的部分當然是越多越好。因為,當實體伺服器記憶體空間不足時,便會迫使 Windows Server 透過硬碟空間產生「分頁檔案」,以便嘗試渡過記憶體空間不敷使用的情況,此時將會直接影響並降低實體伺服器的運作效能。

倘若,因為 IT 預算的關係在短期之內真的無法購足實體記憶體時,則會建議應該依照如下準則來優化分頁檔案的運作效率:

  • 請將分頁檔案產生在實體隔離的硬碟環境,也就是不要跟作業系統或應用程式共用同一個硬碟空間。
  • 雖然將分頁檔案建立在具備容錯機制的硬碟空間中(例如,RAID 1),可能會導致更慢的儲存 I/O 效能,但是倘若將分頁檔案存放於「未」具備容錯機制的硬碟空間時,雖然會獲得較快的儲存 I/O 效能,然而一旦該硬碟發生災難事件時可能會導致「系統崩潰」的情況發生。
  • 請保持分頁檔案隔離原則,不要將「多個」分頁檔案同時建立在同一個硬碟內。

此外,應該要選擇支援 NUMA 架構的實體伺服器,以避免 CPU 處理器與記憶體之間的資料存取行為,因為匯流排頻寬不足的問題而產生存取瓶頸。值得注意的是,當採用支援 NUMA 架構的實體伺服器時,必須要注意實體記憶體空間必須平均分配到不同的 NUMA 節點,以避免 CPU 處理器仍需跨越 NUMA 節點進行記憶體空間的存取。

了解,上述 Hyper-V 伺服器在 CPU 處理器及記憶體的選擇規劃,以及實作 Hyper-V 巢狀式虛擬化的運作環境需求及限制等準則之後,接著便可以開始實作 Nested VM 巢狀式虛擬化運作環境。



Guest Hypervisor 安裝 Hyper-V 角色

首先,我們在實體伺服器所建構的 Hyper-V 虛擬化平台中,建立擔任 Guest Hypervisor 角色名稱為「WS2016-Outer」的 VM 虛擬主機,同時採用「第 2 世代」以及新版「8.0」的 VM 虛擬主機格式,在客體作業系統的部分則是採用 Windows Server 2016 DataCenter 版本。

圖 4、建立擔任 Guest Hypervisor 角色的 VM 虛擬主機

登入 WS2016-Outer 虛擬主機之後,我們可以直接開啟伺服器管理員並嘗試安裝 Hyper-V 伺服器角色,然而你會發現當你勾選「Hyper-V」伺服器角色項目後,在系統執行檢查程序完畢時將會出現「無法安裝 Hyper-V:處理器沒有必要的虛擬化功能」的錯誤訊息。

圖 5、擔任 Guest Hypervisor 角色的 VM 虛擬主機,無法順利安裝 Hyper-V 伺服器角色

此時,我們可以透過 Coreinfo 虛擬化擴充功能檢查工具,下載後解壓縮無須安裝直接在開啟的命令提示字元視窗中鍵入「coreinfo.exe -v」指令,便可以檢查目前在 WS2016-Outer 虛擬主機中,是否擁有 Intel VT-x 及 EPT 硬體輔助虛擬化功能。如圖 6 所示,可以看到在檢查的顯示結果中,目前擔任 Guest Hypervisor 角色的虛擬主機並沒有任何的硬體輔助虛擬化功能,所以才會導致無法順利安裝 Hyper-V 伺服器角色。

圖 6、目前擔任 Guest Hypervisor 角色的虛擬主機並沒有任何硬體輔助虛擬化功能

因此,我們必須為擔任「Guest Hypervisor」角色的 VM 虛擬主機,執行「啟用」vCPU 虛擬處理器虛擬化擴充功能的動作,如此一來 VM 虛擬主機才能順利接收,由底層 Hyper-V 虛擬化平台所傳遞而來的 Intel VT-x 及 EPT 硬體輔助虛擬化技術。

值得注意的是,擔任 Guest Hypervisor 角色的 VM 虛擬主機必須為「關機(Power Off)」狀態,才能透過 PowerShell 順利執行啟用 vCPU 虛擬處理器虛擬化擴充功能的動作,倘若 VM 虛擬主機為「運作中(Power On)」狀態的話,那麼當你執行啟用 vCPU 虛擬處理器虛擬化擴充功能的動作時,將會得到 PowerShell 指令執行失敗的情況。

圖 7、VM 虛擬主機必須關機,否則啟用 vCPU 虛擬處理器虛擬化擴充功能的動作會失敗

順利將 WS2016-Outer 虛擬主機關機後,便可以執行啟用 vCPU 虛擬處理器虛擬化擴充功能的動作,並且於指令執行完畢後再次確認 VM 虛擬主機屬性中,「ExposeVirtualizationExtensions」的欄位值是否為「True」以便確認變更作業已經套用生效。

圖 8、確認 VM 虛擬主機是否啟用 vCPU 虛擬處理器虛擬化擴充功能

請將擔任 Guest Hypervisor 角色的 VM 虛擬主機重新開機並登入後,再次執行 Coreinfo 虛擬化擴充功能檢查作業。如圖 9 所示,可以看到在檢查的顯示結果中,擔任 Guest Hypervisor 角色的虛擬主機,已經順利接收到由底層 Hyper-V 虛擬化平台所傳遞而來的 Intel VT-x 及 EPT 硬體輔助虛擬化技術。

圖 9、VM 虛擬主機,順利接收底層 Hyper-V 虛擬化平台傳遞的 Intel VT-x 及 EPT 硬體輔助虛擬化技術

此時,請開啟伺服器管理員並再次嘗試為 WS2016-Outer 虛擬主機,安裝 Hyper-V 伺服器角色時便可以發現能夠順利新增並安裝完成。

圖 10、順利為 WS2016-Outer 虛擬主機安裝 Hyper-V 伺服器角色



Guest Hypervisor 啟用 MAC 位址變更機制

當你順利為 WS2016-Outer 虛擬主機安裝 Hyper-V 伺服器角色,並且在 WS2016-Outer 虛擬主機中建立名稱為「WS2016-Inner」的虛擬主機後,此時你將會發現 WS2016-Inner 虛擬主機的網路組態設定雖然正確無誤,但是它卻無法順利與實體網路環境溝通或連接到網際網路?

主要原因在於,在 Hyper-V 巢狀式虛擬化運作架構中的 VM 虛擬主機(又稱為 Nested VM 虛擬主機),必須在上層 Guest Hypervisor 虛擬主機中,啟用「MAC 位址變更」(MAC Address Spoofing)功能,以便 Nested VM 虛擬主機的網路封包,能夠順利在 2 層(Hyper-V Hypervisor 及 Guest Hypervisor)虛擬網路交換器之間順利路由,才能夠與實體網路環境溝通或碰觸到網際網路。

因此,Hyper-V 主機的管理人員可以透過 PowerShell 指令,或者是 Hyper-V 管理員操作介面進行啟用 MAC 位址變更的動作。倘若,透過 PowerShell 指令進行組態設定的話,請在 Hyper-V 主機指定為「WS2016-Outer」虛擬主機開啟 MAC 位址變更功能,並於執行後再次確認 VM 虛擬主機屬性中「MacAddressSpoofing」欄位值為「On」,以便確認變更作業已經套用生效。

圖 11、透過 PowerShell 指令,為 Guest Hypervisor 啟用 MAC 位址變更功能

或者,管理人員也可以開啟 Hyper-V 管理員操作介面,選擇 WS2016-Outer 虛擬主機後依序點選「設定 > 網路介面卡 > 進階功能」項目,然後勾選「啟用 MAC 位址變更」選項即可。

圖 12、透過 Hyper-V 管理員,為 Guest Hypervisor 虛擬主機啟用 MAC 位址變更功能

完成 Guest Hypervisor 虛擬主機啟用 MAC 位址變更功能的組態設定後,便可以發現「WS2016-Inner」Nested VM 虛擬主機,已經可以順利通過 WS2016-Outer 這台 Guest Hypervisor 的 vSwitch 虛擬網路交換器,以及 HV01 這台 Hyper-V 實體伺服器的 vSwitch 虛擬網路交換器進行路由,進而與實體網路環境溝通或碰觸到網際網路。

圖 13、Nested VM 虛擬主機,順利在 2 層 vSwitch 虛擬網路交換器之間順利路由



Guest Hypervisor 啟用 NAT 機制

當 Guest Hypervisor 虛擬主機,運作在你能掌控的 Hyper-V 虛擬化平台時,便可以透過上述 PowerShell 指令或 Hyper-V 管理員,幫 Guest Hypervisor 虛擬主機啟用 MAC 位址變更功能,進而讓 Nested VM 虛擬主機能夠與實體網路環境溝通或碰觸到網際網路。

倘若,Guest Hypervisor 虛擬主機運作在你「無法」掌控的 Hyper-V 虛擬化平台時,例如,Microsoft Azure 公有雲服務。或者,其它並非採用 Hyper-V 虛擬化解決方案的虛擬化平台,例如,Amazon AWS 公有雲服務 、VMware vSphere 虛擬化解決方案……等。

此時,便需要在 Guest Hypervisor 虛擬主機端,建立具備 NAT 功能的 vSwitch 虛擬網路交換器,以便屆時在 Guest Hypervisor 中所產生的 Nested VM 虛擬主機,能夠順利與實體網路環境溝通或碰觸到網際網路。

請在 Guest Hypervisor 虛擬主機端,執行 PowerShell 指令或透過 Hyper-V 管理員操作介面,建立類型為「內部」(Internal)的 vSwitch 虛擬網路交換器。如圖 14 所示,我們透過「New-VMSwitch」的 PowerShell 指令建立名稱為「VM-NAT」,並且類型為內部的 vSwitch 虛擬網路交換器,然後透過 Hyper-V 管理員操作介面驗證是否建立完成。

圖 14、建立屆時 Nested VM 虛擬主機對外溝通連線的 vSwitch 虛擬網路交換器

接著,再次執行「New-NetNat」的 PowerShell 指令,建立屆時用於 NAT 運作機制中的 IP 網段,在本文實作環境中建立名稱為「LocalNAT」,並且採用「192.168.100.0/24」IP 網段的 NAT 網路環境。

圖 15、建立屆時用於 NAT 運作機制中的 IP 網段網路環境

最後,再為剛才所建立名稱為 VM-NAT 的虛擬網路交換器指定所要採用的 IP 位址即可。在本文實作環境中,我們指派 VM-NAT 虛擬網路交換器採用「192.168.100.254」的 IP 位址,屆時 Nested VM 虛擬主機在設定網路組態時,便需要將預設閘道的 IP 位址設定為 192.168.100.254 後,才能順利與實體網路環境溝通或碰觸到網際網路。

圖 16、為 VM-NAT 虛擬網路交換器指派使用 192.168.100.254 的 IP 位址

在 Guest Hypervisor 虛擬主機端進行 NAT 組態設定的動作執行完畢後,首先請為 Nested VM 虛擬主機調整該網路介面卡所連接的 vSwitch 虛擬網路交換器,在本文實作環境中便是將 WS2016-Inner 虛擬主機的網路介面卡,改為連接至剛才我們所建立的 VM-NAT 虛擬網路交換器,然後在設定網路組態的部分則是指派為 192.168.100.10,當然最重要的是預設閘道必須指向至 192.168.100.254 的 IP 位址。此時,Nested VM 虛擬主機便可以順利透過 WS2016-Outer 虛擬主機,也就是 Guest Hypervisor 的 VM-NAT 虛擬網路交換器進行 NAT 進而能夠碰觸到網際網路。

圖 17、Nested VM 虛擬主機,透過具備 NAT 功能的 vSwitch 虛擬網路交換器碰觸到網際網路



Nested VM 再生 Nested VM?

至此,我們已經順利透過新一代 Windows Server 2016 雲端作業系統,原生內建的 Hyper-V 巢狀式虛擬化技術建立 Nested VM 運作環境,讓管理人員只要透過 1 台硬體伺服器,便能建立出「Hyper-V Host > Guest Hypervisor > Nested VM」的 Hyper-V 巢狀式虛擬化運作環境。

那麼,有沒有可能更進一步在 Nested VM 虛擬主機中再生出 Nested VM 虛擬主機?答案是可行的,只要遵循前述所條列的 Hyper-V 巢狀式虛擬化技術運作環境需求及限制,便可以讓 Nested VM 再生出 Nested VM 虛擬主機。

因為實作方式與前述的操作步驟相同所以便不再贅述,如圖 18 所示我們總共建立出 4 層的 Hyper-V 巢狀式虛擬化技術運作環境:

第 1 層(HV01):Hyper-V Hypervisor 實體伺服器。
     第 2 層(WS2016-Outer):VM 虛擬主機並擔任 Guest Hypervisor。
          第 3 層(WS2016-Inner):Nested VM 虛擬主機並再擔任 Guest Hypervisor。
               第 4 層(WS2016-Innermost):由 Nested VM 再生出的 Nested VM 虛擬主機。

圖 18、由 Nested VM 再生出的 Nested VM 虛擬主機





結語

透過本文的說明及實作演練,相信讀者已經完全了解新一代 Windows Server 2016 雲端作業系統中,原生內建的 Hyper-V 巢狀式虛擬化的強大功能,善用此機制相信能夠有效幫助管理人員只要利用少量的實體伺服器,就能夠建構出複雜的測試研發環境有效減少過往建立測試研發環境時的困擾。

前言

在 Hyper-V 虛擬化化平台舊版本中,要實作出 Nested Virtualization 環境非常困難。現在,Windows Server 2016 直接內建支援「Nested Virtualization in Windows Server Hyper-V」機制,往後 IT 管理人員建置 Lab 環境將更方便了。

簡單來說,在舊版的 Hyper-V 虛擬化平台當中僅支援 Level 0、Level 1 這樣的運作架構。



現在,可以在 Hyper-V Hypervisor (Level 1) 當中,再產生出一層 Guest Hypervisor (Level 2並且能夠運作 Guest OS,甚至 Level 2 的 VM 虛擬主機還能再次產生出一層 Guest Hypervisor (Level 3) 並運作 Guest OS。



下列為目前 Hyper-V Nested Virtualization 的環境需求及相關限制:
  • 實體主機 CPU 必須支援 Intel VT-x EPT 硬體輔助虛擬化技術,作業系統必須採用 Windows 10 年度更新版 (Enterprise, Professional, Education) 或 Windows Server 2016 (Standard, Datacenter)。
  • 必須為擔任 Guest Hypervisor 的 VM 虛擬主機啟用 vCPU Virtualization Extensions 功能。
  • 必須為擔任 Guest Hypervisor 啟用 MAC Address Spoofing 功能,否則屆時建立的 Guest OS 網路連線會發生不通的情況。
  • 必須為擔任 Guest Hypervisor 採用第 2 世代及 8.0 版本格式的 VM 虛擬主機。
  • 必須要停用 VM 動態記憶體功能,同時為 VM 虛擬主機執行 Runtime Memory Resize 的動作時會失敗。



實作 Hyper-V Nested Virtualization

首先,我們可以看到在 Level 1Hyper-V Host 中,所建立的 VM 虛擬主機採用 Coreinfo 檢查後可以發現,目前的 VM 虛擬主機「尚未感知」到母體的虛擬化功能。同時,當你嘗試為 VM 虛擬主機 (準備擔任 Guest Hypervisor) 安裝 Hyper-V 伺服器角色時,將會發現無法順利安裝。



請在 Level 1 的 Hyper-V Host 中,執行下列指令將 Hyper-V Host 的硬體輔助虛擬化技術「傳遞」給 VM 虛擬主機 (此實作該 VM 的名稱為 WS2016-Nested,當然前提是 Hyper-V Host 支援 Intel VT-x / EPT 硬體輔助虛擬化技術)。但是,請先將準備擔任 Guest Hypervisor 的 VM 虛擬主機關機,倘若 VM 虛擬主機未關機的話,稍後執行 vCPU Virtualization Extensions 的動作時,將會發生 PowerShell 指令執行失敗的情況。



順利將擔任 Guest Hypervisor 的 VM 虛擬主機關機後,便可以執行 PowerShell 指令「Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true」,為 Guest Hypervisor 的 VM 虛擬主機 (此實作中名稱為 WS2016-Nested)啟用「vCPU Virtualization Extenstions」的功能。




此時,重新將擔任 Guest Hypervisor 的 VM 虛擬主機 (WS2016-Nested) 開機後,再度使用 Coreinfo 檢查後可以發現,目前已經可以「感知」到 Hyper-V Host 所傳遞過來的硬體輔助虛擬化技術。當然,也就可以順利安裝 Hyper-V 伺服器角色了。



至此,我們完成為 Level 1 的 VM 虛擬主機啟用 Guest Hypervisor 功能。記得,啟用 MAC Address Spoofing 功能,否則屆時建立的 Guest OS 網路連線會發生不通的情況。


下列為 Hyper-V Nested Virtualization 巢狀虛擬化實作階層說明:
     Level 1 (實體伺服器、Hyper-V Hypervisor、Guardhost01)
          Level 2 (Guest Hypervisor、WS2016-Nested)
               Level 3 (Guest OS、WS2016)



同樣的組態設定方式,我們可以為 Level 3 的 VM 虛擬主機啟用 Guest Hypervisor 功能,建立出 Level 4 的 VM 虛擬。

下列為 Hyper-V Nested Virtualization 巢狀虛擬化實作階層說明:
     Level 1 (實體伺服器、Hyper-V Hypervisor、Guardhost01)
          Level 2 (Guest Hypervisor、WS2016-Nested)
               Level 3 (Guest Hypervisor、WS2016)
                    Level 4 (Guest OS、WS2016-Inner)






參考資源


活動簡介

Windows Server 2012(Hyper-V 3.0)已經大幅提升虛擬化平台整合能力。現在,Windows Server 2012 R2(Hyper-V 3.0 R2)功能更上一層樓,舉凡第二世代虛擬主機格式、AVMA 自動化授權啟用、線上擴充及縮小虛擬磁碟、Storage QoS…等功能強大應有盡有。

你知道「」用建立容錯移轉叢集環境(Failover Cluster),也能夠達成VM虛擬主機線上遷移(Live Migration)、儲存即時遷移(Live Storage Migration)、無共用儲存即時遷移(Shared-Nothing Live Migration)…等功能嗎? 本課程除了將實作演練之外,同時深入剖析在企業或組織營運環境當中,該如何從無到有建置並導入Hyper-V虛擬化技術,協助你打造出最佳虛擬化平台。

此外,下一代微軟雲端作業系統 Windows Server 2016 年底前即將推出,在本課程中也將帶領學員了解新的特色功能,例如,SDS 軟體定義儲存技術、SDN 軟體定義網路技術、Storage Replica 儲存複本技術…等。



活動資訊

時間: 每週六 09:00 ~ 17:00
地點: 台中科技大學 (台中市北區三民路 91 號 2 樓)
日期:       


課程大綱

實務班

一、雲端運算模型
          1. x86 虛擬化技術
          2. 雲端運算三種服務類型、四種部署模型、五種服務特徵
          3. 虛擬化環境評估

二、私有雲網路架構
          1. VM 虛擬主機通訊(Traffic)流量規劃及 QoS 流量限制
          2. VM 虛擬主機遷移(Migration)流量規劃
          3. VM 虛擬主機儲存(iSCSI Target、iSCSI Initiator)流量規劃
          4. SDN 網路虛擬化技術

三、私有雲儲存架構
          1. 七種磁碟陣列(RAID)模式
          2. 三種類型的儲存設備 DAS、NAS、SAN(IP-SAN、FC-SAN)
          3. 如何選擇儲存設備、控制器、擴充櫃
          4. 如何計算儲存設備 IOPS 效能
          5. Storage Space Direct 儲存虛擬化技術

四、Hyper-V 虛擬化平台及 VM 虛擬主機
          1. 運作模式切換(GUI / Server Core)
          2. 安裝與設定 Hyper-V 角色
          3. 管理虛擬網路
          4. 第二世代 VM 虛擬主機
          5. 虛擬磁碟種類、線上調整磁碟空間
          6. 客體服務
          7. 加強的工作階段
          8. VM 授權自動啟用
          9. 儲存資源 IOPS 品質控制
          10. 重複資料刪除
          11. 備份及還原(Export / WSB / Azure)

五、計畫性停機解決方案
          1. 即時遷移(Live Migration)
          2. 儲存即時遷移(Live Storage Migration)
          3. 無共用儲存即時遷移(Shared-Nothing Live Migration)
          4. 跨版本即時遷移(Cross version Live Migration)

進階班

一、高可用性及高彈性的虛擬化架構規劃實務
          1. 如何規劃所要採用的 x86 實體伺服器規格
          2. CPU 中央處理器指令集的選擇
          3. Memory 記憶體的選擇
          4. NVNe / SSD / SAS / NL-SAS / SATA 硬碟種類的選擇與 IOPS 規劃
          5. RAID Card 的選擇與 RAID 模式規劃
          6. Network 網路環境的規劃

二、建置容錯移轉叢集環境
          1. 選擇儲存資源(DAS/NAS/SAN)
          2. 建立容錯移轉叢集

三、計畫性及非計畫性停機方案
          1. 即時遷移(Live Migration)
          2. 儲存即時遷移(Live Storage Migration)
          3. 無共用儲存即時遷移(Shared-Nothing Live Migration)
          4. 快速遷移(Quick Migration)

四、VM 虛擬主機
          1. 應用程式監控(VM Monitoring)
          2. 主機反關聯性(Anti-Affinity)
          3. 叢集共用磁碟區快取(CSV Cache)

五、異地備援方案
          1. Hyper-V 複本代理人
          2. 測試容錯移轉
          3. 計畫性容錯移轉
          4. 非計畫性容錯移轉
          5. 延伸複寫

六、叢集感知更新
          1. 叢集節點維護模式(Maintenance Mode)
          2. 叢集感知更新(CAU)
          3. 匯出叢集感知更新報表

書籍簡介

Windows Server 2012 R2Hyper-V Server 2012 R2,都提供最好的 Hyper-V 虛擬化平台功能。在 Hyper-V 當中第 2 世代格式的 VM 虛擬主機,除了安全性增強之外啟動作業系統的時間更短,並且有效縮短 VM 虛擬主機安裝客體作業系統的時間,同時還能自動啟動客體作業系統軟體授權,同時在 2012 R2 版本當中,還有許多新增及增強的特色功能。在本書當中,我們將會教導你在實務應用上,有關 Hyper-V 最佳化組態設定及最佳建議作法,以便充分發揮 Hyper-V 虛擬化平台的高可用性、高擴充性、高效能。


誰適合閱讀此書

本書是針對具有 Hyper-V 基礎管理經驗,以及想深入了解 Hyper-V 細部功能的人而寫。

如果,在你的測試環境中已經有 Hyper-V 虛擬化環境,現在你想要將測試的Hyper-V 虛擬化環境,轉移到正式的線上營運環境時,那麼這本書就是專為你而寫!!

如果,你是 Hyper-V 的初學者那麼本書也值得你參考。但是,同時間你應該找一本 Hyper-V入門的書一同閱讀及實作。


網路購書



你將會從本書中學習到:

  • 透過 PowerShell 自動化機制,部署 Hyper-V 及 VM 虛擬主機。
  • 建立 HA 高可用性容錯移轉叢集解決方案。
  • 建立 Hyper-V 複本異地備援機制,以及 Azure Site Recovery 混合雲異地備援機制。
  • 深入剖析不同的儲存資源應用情境 (SAN、SOFS、Storage Spaces、MPIO、CSV、QoS、NTFS、ReFS......等),並針對 Windows Server 2012 R2 及 Hyper-V 儲存資源進行效能規劃及最佳建議作法。
  • 建立一個高效能且靈活運作的網路基礎架構,包括 vSwitch 虛擬網路交換器、網路卡小組、融合式網路、儲存網路、SMB Direct (RDMA)、IPAM……等。
  • 幫助你了解 Hyper-V 運作架構中,如何進行最佳化效能調校並測試運作效能。
  • 介紹 System Center 家族的各種角色及功能,以及如何透過 System Center 管理 Windows Server 及 Hyper-V 虛擬化環境。
  • 如何從舊版 Hyper-V 或其它 Hypervisors 虛擬化平台,遷移至最新版本的 Hyper-V 虛擬化環境。



本書導讀

  • 《第 1 章、加速 Hyper-V 部署作業》,深入剖析 Hyper-V 主機理想的安裝方式,進而採用全自動化安裝的 VM 模組。
  • 《第 2 章、HA 高可用性解決方案》,深入討論有關 Hyper-V 容錯移轉叢集組態配置及最佳作法 。
  • 《第3章、備份及災難復原》,從備份 Hyper-V 主機及 VM 虛擬主機的方法開始,到 Hyper-V 複本以及如何針對 Hyper-V 進行災難復原。
  • 《第 4 章、Storage 效能規劃最佳作法》,深入剖析不同的儲存資源應用情境,對於Windows Server 2012 R2 及 Hyper-V 的影響。
  • 《第 5 章、Network 效能規劃最佳作法》,深入剖析不同的虛擬網路環境,對於Windows Server 2012 R2 及 Hyper-V 的影響。
  • 《第 6 章、Hyper-V 最佳化效能調校》,幫助你了解 Hyper-V 運作架構中,如何進行最佳化效能調校並測試運作效能。
  • 《第 7 章、透過 System Center 進行管理》,介紹 System Center 家族的各種角色及功能,以及如何透過 System Center 管理 Windows Server 及 Hyper-V 虛擬化環境。
  • 《第 8 章、遷移至 Hyper-V 2012 R2》,討論如何從舊版 Hyper-V 或其它 Hypervisors 虛擬化平台,遷移至最新版本的 Hyper-V 虛擬化環境。

前言

微軟新世代 Windows Server 2016 雲端作業系統,在 2014 年 10 月 1 日時正式發佈第一版的「技術預覽(Technical Preview,TP1)」版本,接著在 2015 年 5 月發佈 TP2 技術預覽版本、2015 年 8 月發佈 TP3 技術預覽版本。最新版本,則是在 2015 年 11 月時所發佈的 TP4 技術預覽版本。

系列文章

站長與 TechNet 台灣部落格 合作,撰寫 Windows Server 2016 攻略連載文章將分為 Compute / Storage / Network 三大主題 (共 8 篇文章):

【Compute】


【Storage】


【Network】


更新 (20161110)

本文實作環境為 Windows Server 2016 TP4,目前最新 Windows Server 2016 已經正式發佈,作法上也稍有不同。詳細資訊請參考新文章「實作 Hyper-V Nested Virtualization」。


前言

在 Hyper-V 虛擬化化平台舊版本中,要實作出 Nested Virtualization 環境非常困難。現在,從 Windows Server 2016 TP4 (10565 之後) 版本,開始支援「Nested Virtualization in Windows Server Hyper-V」機制,往後要建置 Lab 環境將更加容易了。

簡單來說,若是舊版的 Hyper-V 虛擬化化平台,便僅支援 Level 0、Level 1 這樣的運作架構。


現在,可以在 Hyper-V Hypervisor (Level 1) 當中,再產生出一層 Hyper-V Hypervisor (Level 2),並且能夠運作 Guest OS。


下列為目前 Hyper-V Nested Virtualization 的環境需求:
  • Nested VM 至少要指派 4GB 虛擬記憶體空間。
  • VM 虛擬主機必須啟用 vCPU 的 Virtualization Extensions 功能。
  • VM 虛擬主機必須啟用 MAC Address Spoofing 功能。
  • Level 1 的 Hyper-V Hypervisor 及 Level 2 的 Hyper-V Hypervisor,應該要採用相同的版本。簡單來說,都採用 Windows Server 2016 TP4 版本即可,值得注意的是,目前支援 Hyper-V Hypervisor 而已,還支援其它 Hypervisor。

下列為 Level 2 上運作的 VM (Nested VM) 的相關限制:
  • 上層母體的 Device Guard 機制無法套用。
  • 上層母體的 VBS (Virtualization Based Security) 機制無法套用。
  • 必須要停用 VM 動態記憶體功能。
  • Runtime Memory Resize 機制會失敗。
  • 套用 Checkpoint 時會失敗。
  • Live Migration 動作會失敗。
  • Save / Restore 動作會失敗。

實作 Hyper-V Nested Virtualization

首先,我們可以看到在 Level 1Hyper-V Host 中,所建立的 VM 虛擬主機採用 Coreinfo 檢查後可以發現,目前的 VM 虛擬主機「尚未感知」到母體的虛擬化功能。


請在 Level 1 的 Hyper-V Host 中,執行下列指令將 Hyper-V Host 的硬體輔助虛擬化技術「傳遞」給 VM 虛擬主機 (此實作該 VM 的名稱為 TestVM)。 (當然,前提是 Hyper-V Host 支援 Intel VT-x / EPT 硬體輔助虛擬化技術)。
PS C:\tmp> Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile ~/Enable-NestedVm.ps1
PS C:\tmp> ~/Enable-NestedVm.ps1 -VmName "TestVM"



執行後,在啟用 Nested VM 機制的指令碼中,將會詢問是否啟用 TestVM 虛擬主機的「vCPU Virtualization Extenstions」及「MAC Address Spoofing」功能,請鍵入 Y 確認啟用。


此時,開啟 TestVM 後再度使用 Coreinfo 檢查後可以發現,目前的 TestVM 已經可以「感知」到 Hyper-V Host 所傳遞過來的硬體輔助虛擬化技術。


因此,便可以放心安裝 Hyper-V 伺服器角色了。


Hyper-V Nested Virtualization 達成!!


參考資源


前言

以往在建置 Microsoft Hyper-V 虛擬化環境時,通常會習慣至少有一台實體主機來擔任「網域控制站 (Domain Controller)」的任務,並且在預設情況下網域控制站「不能」或「不建議」與其它角色安裝在一起:
  • DC 絕對能與 Exchange、SQL Database 角色裝在同一台主機。
  • DC 建議與 Hyper-V 角色裝在同一台主機。
  • DC 建議整合在 Windows Server 2003, 2008, 2008 R2 容錯移轉叢集運作環境中。
  • DC 支援整合在 Windows Server 2003, 2008, 2008 R2 的 Exchange/SQL容錯移轉叢集運作環境中。
  • RODC 支援整合在 Windows Server 2003, 2008, 2008 R2 容錯移轉叢集運作環境中。
  • ADDS 支援整合在 Windows Server 2012 容錯移轉叢集運作環境中。但是,RODC 可以運作於 Windows Server 2012 容錯移轉叢集運作環境中。


Virtual Domain Controller (vDC)

現在,在 Windows Server 2012 R2 版本中,具備「Active Directory Detached Cluster」機制,不用再像過往版本要考慮 CNO(Cluster Name Object)VCOs(Virtual Computer Objects) 的問題,因為都已經把 CNO、VCOs 建立在 DNS 當中。此外,Intra-Cluster 仍使用 Kerberos 驗證,但 CNO 的部份則採用 NTLM 驗證。

此外,從 Windows Server 2012 版本開始,在「容錯移轉叢集 (Failover Cluster)」當中,多出了「BootStrapping」特色功能。簡單來說,它能允許容錯移轉叢集相關服務在啟動時「無須賴 Physical DC」,所以你可以「把 vDC 運作在 Hyper-V Cluster」運作環境中。

因此,當 Hyper-V Cluster 節點主機,通過 vDC 的身份驗證機制之後便會儲存一份「Cached Credentials」在本機當中,當無法連絡 vDC 時便會用這份快取驗證來運作。

經過實作確實是可行的,也就是先在實體主機上啟動 Hyper-V 角色,接著建立一台 VM 虛擬主機並提升為網域控制站,然後將 Hyper-V 實體主機加入運作在 VM 虛擬主機當中的網域,接著 Hyper-V 實體主機便可以建立 Hyper-V Cluster。



vDC 的注意事項

但是,將 DC 運作在 VM 虛擬主機時,仍須避免執行下列動作以防止發生將 USN 混亂的情況發生 (因為,USN 會追蹤 AD Object Replication 進而導致 RID Pool 發生問題):
  • 不可建立檢查點 (CheckPoint),舊稱為「快照 (Snapshot)」。
  • 不可以針對運作 DC 的 VM 虛擬主機進行復原動作 (不管是 Host 或 Storage Level 的備份) 。
  • 不可以單純的針對運作 DC 的 VM 虛擬主機進行「Copy/Clone」作業。


參考資源

活動簡介

透過新一代 Hyper-V 3.0 R2 虛擬化技術,建置一套具備 高可用性、可隨時動態遷移、彈性化虛擬架構其實很簡單,但是要建置完整的虛擬化架構仍有許多方面需要考量例如 完整機房環境、穩定可靠的備援電力、機房空調溫濕度、虛擬化技術軟體授權費用…等因素,在本課程當中也都適時的提醒學員。

為了使學員能夠實作出各項進階內容,本課程將特別說明及演練如何藉由「Nested Virtualization」的概念,搭建出「Hyper-V in a Box」多層虛擬化運作環境(VM 再生出 VM),因此只要一台 PC 主機便可實作出所有進階內容例如  即時遷移(Live Migration)、儲存即時遷移(Live Storage Migration)、無共用儲存即時遷移(Shared-Nothing Live Migration)、SMB 3.0、Hyper-V 複本異地備援(Hyper-V Replica)、重複資料刪除 (Data Deduplication)…等,在本課程中都有詳盡的說明及實作,以方便您評估新一代 Hyper-V 3.0 R2 虛擬化技術平台。


活動資訊

時間: 09:00 ~ 17:00
地點: 資策會 - 資訊技術訓練中心 (台中市公益路二段 51 號 20 樓)
日期:
  • 基礎班 - 2016 年 1 月 23 ~ 24 日
  • 進階班 - 2016 年 2 月 20 ~ 21 日
  • 基礎班 - 2015 年 9 月 5 ~ 6 日
  • 進階班 - 2015 年 9 月 12 ~ 13 日


課程大綱

基礎班

  • Hyper-V 虛擬化平台最佳硬體規劃
  • 虛擬化實作環境建置(Nested VMs、TechNet Virtual Lab)
  • Windows Server 2012 R2 運作模式切換
  • 新世代 VM 虛擬主機特色新功能
  • 計畫性停機解決方案
  • 即時遷移 (Live Migration)
  • 儲存即時遷移 (Live Storage Migration)
  • 無共用儲存即時遷移 (Shared-Nothing Live Migration)
  • 異地備援解決方案
  • 測試容錯移轉
  • 計畫性容錯移轉
  • 非計畫性容錯移轉
  • 延伸複寫
  • 重複資料刪除
  • 備份/還原 VM 虛擬主機

進階班

  • Hyper-V 虛擬化平台最佳硬體規劃
  • 建立 IP Storage(以 iSCSI Target 為例)
  • 設定 iSCSI Initiator 多重路徑 MPIO 機制
  • 建置容錯移轉叢集(Failover Cluster)
  • 啟用叢集共用磁碟區快取(CSV Cache)
  • 啟用共用虛擬硬碟(Shared VHDX Disk)
  • 計畫性停機解決方案
  • 即時遷移(Live Migration)
  • 儲存即時遷移(Live Storage Migration)
  • 無共用儲存即時遷移(Shared-Nothing Live Migration)
  • 非計畫性停機解決方案
  • 受保護的網路(Protected Network)
  • 快速遷移(Quick Migration)
  • 異地備援解決方案
  • 延伸複寫
  • 測試容錯移轉
  • 計畫性容錯移轉
  • 非計畫性容錯移轉
  • 監控應用程式健康狀態(VM Monitoring)
  • 叢集感知更新(CAU)
  • VM 虛擬主機反關聯性(Anti-Affinity)