最新的Windows Server 2016雲端作業系統所建構的Hyper-V虛擬化平台,已經能夠原生內建支援巢狀式虛擬化運作的機制,善用這個機制,管理人員只要利用少量的實體伺服器,就能夠建構出複雜的測試研發環境。
‧ 作業系統的部分,必須採用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伺服器擁有更強大的運算資源。
至於,在選擇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),以便降低因為虛擬化技術所造成的硬體資源耗損。
Memory記憶體的選擇
在建構Hyper-V虛擬化平台的硬體伺服器上,針對實體記憶體的部分當然是越多越好。因為,當實體伺服器記憶體空間不足時,便會迫使Windows Server透過硬碟空間產生「分頁檔案」,以便嘗試度過記憶體空間不敷使用的情況,此時將會直接影響並降低實體伺服器的運作效能。
倘若,因為IT預算的關係在短期之內真的無法購足實體記憶體時,則會建議應該依照如下準則來優化分頁檔案的運作效率:
‧ 將分頁檔案產生在實體隔離的硬碟環境,也就是不要跟作業系統或應用程式共用同一個硬碟空間。
‧ 雖然將分頁檔案建立在具備容錯機制的硬碟空間中(例如RAID1),可能會導致更慢的儲存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所示。
|
▲圖4 建立擔任Guest Hypervisor角色的VM虛擬主機。 |
登入WS2016-Outer虛擬主機後,可以直接開啟伺服器管理員並嘗試安裝Hyper-V伺服器角色,然而會發現當勾選「Hyper-V」伺服器角色項目後,在系統執行檢查程序完畢時,如圖5所示將會出現「無法安裝Hyper-V:處理器沒有必要的虛擬化功能」的錯誤訊息。
|
▲ 圖5 擔任Guest Hypervisor角色的VM虛擬主機,無法順利安裝Hyper-V伺服器角色。 |