本文將透過深入剖析和實戰演練的方式,讓管理人員清楚地了解Windows Server、Hyper-V Server以及Azure Stack HCI之間的差異,並實地示範使用WAC管理工具,幫助管理人員輕鬆地遠端連線管理Hyper-V Server伺服器虛擬化平台。
隨著新版Windows Server 2022雲端作業系統的發佈,依照過往版本釋放的步調來看,應該過一陣子後便會發佈伺服器虛擬化平台版本且可免費使用的Hyper-V Server 2022。然而,在微軟官方網站上似乎找不到任何有關Hyper-V Server 2022的相關資訊。
事實上,過去Hyper-V Server的主要用途為企業和組織地端資料中心的伺服器虛擬化平台,然而在整個虛擬化平台的規劃設計上,並沒有考慮到現代化應用和混合雲的需求,這也正是為何微軟推出Azure Stack HCI版本,以便符合企業打造伺服器虛擬化、容器、超融合、混合雲等等需求。
因此,微軟已經說明傳統用於地端資料中心單純提供伺服器虛擬化的Hyper-V Server產品,最後一代的版本便是Hyper-V Server 2019,其主要支援日期至2024年1月,而延伸支援則至2029年1月,如圖1所示,目的就是讓原本使用Hyper-V Server的企業能有更多時間過渡到Azure Stack HCI平台。
對於不熟悉Hyper-V虛擬化技術的管理人員可能會有疑問,採用GUI圖形介面的Windows Server 2022或2019並啟用Hyper-V角色,與本文介紹的Hyper-V Server 2019之間有哪些差異?簡單來說,Windows Server支援許多特色功能和伺服器角色,而Hyper-V Server 2019則僅專注於Hyper-V虛擬化功能。
對於Windows Server效能調校熟悉的管理人員應知,在希望Windows Server能夠進一步提升運作效能時,可以採用僅文字介面進行操作的Server Core模式。主要原因在於,去除GUI圖形介面的Server Core模式,除了整體運作效能大幅提升外,在安全性更新數量方面將會減少40%~60%,連帶提升主機整體安全性。
相較於Server Core模式,Hyper-V Server 2019則是更精簡的版本,因為在Hyper-V Server 2019伺服器虛擬化平台中,僅支援Hyper-V伺服器角色,不支援安裝其他伺服器角色,例如IIS、DNS、DHCP等等,也因為這樣的特性,所以最適合用於運作Hyper-V伺服器虛擬化平台。
此時,可能會擔心精簡版本的Hyper-V Server 2019,在硬體裝置支援方面是否會有不足的情況產生?其實Hyper-V Server已經內建Windows Server Driver Model,因此只要是能夠安裝Windows Server的硬體伺服器,也能順利安裝Hyper-V Server並正確識別所有硬體裝置。
雖然Hyper-V Server伺服器虛擬化平台是可免費使用的Hypervisor虛擬化平台,然而在虛擬化功能方面,與啟用Hyper-V角色的Windows Server完全相同,完整支援即時遷移(Live Migration)、儲存即時遷移( Storage Live Migration)、儲存複寫(Storage Replica)等等虛擬化進階功能,如圖2所示。
值得注意的是,所謂企業組織可以「免費」使用Hyper-V Server,是指Hyper-V Hypervisor虛擬化平台的部分,然而其上運作的VM虛擬主機客體作業系統,倘若是Windows Server或其他需要軟體授權的Linux作業系統,則仍須購買作業系統軟體授權。
安裝Hyper-V Server 2019
原則上,Hyper-V Server 2019的安裝流程,與安裝Windows Server流程相同。當下載Hyper-V Server 2019映像檔後,將ISO製作成可開機USB隨身碟,或透過硬體伺服器IPMI Virtual Media功能將ISO映像檔掛載成為硬體伺服器光碟機,即可進行Hyper-V Server 2019的安裝作業,如圖3所示。
當Hyper-V Server 2019安裝完成後,首次登入Hyper-V Server時,系統會要求設定Administrator管理者密碼。順利登入Hyper-V Server後,整個操作體驗其實與Server Core版本相同,也就是不支援GUI圖形介面,僅支援文字管理介面。登入系統後,將會自動開啟兩個視窗,分別是Cmd命令提示字元和Server Configuration Tool,如圖4所示。
查詢Hyper-V Server軟體授權資訊
再次提醒管理人員,所謂可免費使用Hyper-V Server,是指Hyper-V虛擬化平台的部分,而VM虛擬主機若運作需要軟體授權的作業系統,仍然須購買相關軟體授權才行。
可在登入畫面中切換到Cmd命令提示字元視窗,鍵入「slmgr.vbs -dli」或「slmgr.vbs -dlv」指令即可查詢,從查詢結果可以看到,安裝好的Hyper-V Server在軟體授權狀態方面,License Status欄位值為Licensed也就是已授權狀態,如圖5所示。
攻擊面小安全性高的Hyper-V Server
由於Hyper-V Server僅專注於提供Hyper-V伺服器虛擬化功能,並且拿掉GUI圖形介面僅剩文字介面,因此在預設情況下開啟的網路連接埠數量更少,所以保有遭受惡意攻擊面縮小、安全性提升的好處。
切換至Cmd命令提示字元視窗,鍵入「netstat -nao」指令,並配合工作管理員查詢使用該通訊連接埠相對應的PID程序,如圖6所示,即可得知Hyper-V Server預設啟用的執行程序情況。下列為相關通訊連接埠號說明:
TCP 135、49665、49666 / UDP 123、5353、5355:svchost.exe(Windows Services主機處理程序)
TCP 139、445、5985、47001 / UDP 137、138:System(NT Kernel & System)
TCP 2179:vmms.exe(VM虛擬主機管理服務)
TCP 49664:wininit.exe(Windows啟動應用程式)
TCP 49667:services.exe(服務及控制站應用程式)
TCP 49669:lsass.exe(本機安全性認證處理程序)
Hyper-V Server基礎設定
預設情況下,當Hyper-V Server主機啟動完成後,將會自動啟動DHCP Client網路功能,嘗試尋找所處區域網路中是否有DHCP伺服器派發IP位址以及相關網路組態。
同時,也可透過內建的Server Configuration Tool,以文字互動方式組態設定Hyper-V Server網路組態。本文實作環境中,將組態設定Hyper-V Server主機採用「10.10.75.19」固定IP位址,並且指定DNS伺服器IP位址為「10.10.75.10」。
首先,在SConfig視窗中鍵入數字「8」選擇「Network Settings」項目。進入文字互動設定頁面後,系統會條列出本機所有的網路卡,若配置多張網路卡,透過網路卡的「Index# ID」,選擇指定的實體網路卡進行網路組態設定。
本文實作環境中,Hyper-V Server主機僅配置一張網路卡,依序鍵入「1 > 1 > S > 10.10.75.19 > 255.255.255.0 > 10.10.75.254」,組態設定固定IP位址、子網路遮罩、預設閘道。接著,鍵入「2 > 10.10.75.10」組態設定DNS伺服器IP位址。最後,鍵入數字「4」,即可回到SConfig主選單。
在電腦名稱部分,預設情況下,系統會自動採用「WIN-亂數」的命名規則,然而,預設亂數的電腦名稱,通常不具識別性也不符合企業或組織的主機命名規則。需要變更Hyper-V Server主機的電腦名稱時,在SConfig視窗中鍵入數字「2」選擇「Computer Name」項目,再輸入「HV2019」新電腦名稱。此時,會彈出視窗提醒管理人員必須重新啟動主機才能套用生效,按下〔Yes〕按鈕便立即重新啟動主機。Hyper-V Server順利重新啟動後,再次登入即可發現新的電腦名稱已經套用生效,如圖7所示。
Hyper-V Server加入網域環境
原則上,Hyper-V Server主機必須加入Windows AD網域後,才能建構Hyper-V高可用性容錯移轉叢集並實作進階功能,例如Live Migration即時遷移等等。如果企業和組織只是希望透過Hyper-V Server主機單純地運作VM虛擬主機並且不需要相關進階功能時,則無須加入Windows AD網域環境。
即便選擇不將Hyper-V Server加入Windows AD網域環境,那麼也應該保持良好的管理習慣,避免使用預設的Administrator管理帳號進行Hyper-V Server主機的日常維護工作,而是新增其他管理者帳號後,將預設Administrator管理帳號停用,以降低遭受惡意攻擊的機會,例如知道預設管理帳號為Administrator之後,剩下就是透過暴力密碼猜測工具破解管理員密碼了。
在SConfig視窗中,鍵入數字「3」選擇「Add Local Administrator」項目,鍵入新的管理者帳號,本文實作為「Weithenn」。當新增管理者帳號名稱輸入完畢,系統將彈出管理密碼設定視窗,鍵入二次管理者密碼,此時系統會自動把新增的管理者帳號加入至Administrators管理者群組內。
切換至Cmd命令提示字元視窗中,鍵入「net user Weithenn」指令,查詢剛才新增的管理者帳號「Weithenn」,在Local Group Memberships欄位中是否顯示為「Administrators」管理者群組的成員,如圖8所示。
此時,登出Hyper-V Server主機,改為採用剛才新增的管理者帳號「Weithenn」登入。確認管理者帳號新增完成,並且能夠順利登入並管理Hyper-V Server主機後,即可將預設Administrator帳號進行「停用」(Disable)的動作。
在Cmd命令提示字元視窗中,鍵入「net user Administrator /ACTIVE:NO」指令停用帳號,然後再次鍵入「net user Administrator」指令,查詢預設的Administrator管理帳號資訊,可以看到「Account active」欄位值為「No」,表示成功停用預設Administrator管理者帳號。
在本文實作環境中,將Hyper-V Server主機加入「lab.weithenn.org」網域環境。在SConfig視窗中,依序鍵入「1 > D > lab.weithenn.org > lab.weithenn.org\Administrator > 網域管理者密碼」,加入lab.weithenn.org網域環境,此時系統將彈出視窗,提醒必須重新啟動主機才能套用生效,按下〔Yes〕按鈕便立即重新啟動主機,當Hyper-V Server順利重新啟動後,即可採用網域帳號登入進行管理作業,如圖9所示。
由於加入網域後,Hyper-V Server主機會自動啟用,並且套用「Domain」網卡防火牆規則,因此預設情況下區域網路中的其他主機無法ping到Hyper-V Server主機,但可透過「Set-NetFirewallProfile」的PowerShell指令,或是透過SConfig允許回應ping的防火牆規則,當然後續也可以透過WAC(Windows Admin Center)管理工具調整防火牆規則。
在SConfig視窗中,鍵入數字「4」,選擇「Configure Remote Management」項目,鍵入數字「3」,選擇「Configure Server Response to Ping」項目,並於彈出視窗按下〔Yes〕按鈕,即可允許Hyper-V Server主機回應ping封包。
電源設定為高效能
預設情況下,Windows Server主機的電源設定為「平衡」(Balanced),即便是Hyper-V Server也不例外,然而,這樣的預設值可能造成屆時其上運作的VM虛擬主機必須等待一小段時間,待Hyper-V Server提升電源和運算能力後,才能夠快速回覆使用者請求,導致使用者會感覺到VM虛擬主機運作上卡卡的。
因此,針對Hyper-V Server主機,在硬體伺服器的BIOS/UEFI設定中,將電源管理項目調整至「Max Performance」設定值,然後登入Hyper-V Server主機,透過「powercfg /setactive」指令取得「Power Scheme GUID」,將Hyper-V Server主機的電源設定調整為「高效能」(High Performance),確保在硬體伺服器層級和Hyper-V Server作業系統層級相互搭配的情況下,發揮主機最大化的運算效能,如圖10所示。
了解其他SConfig選項
原則上,在SConfig組態設定選項中,其他選項因為功能直覺且設定簡單,便不再細項逐一操作。請參考下列其他組態設定選項功能描述:
5) Windows Update Settings:組態設定Windows安全性更新方式。
6) Download and Install Update:是否立即下載和安裝Windows安全性更新。
7) Remote Desktop:啟用RDP遠端桌面連線功能。
9) Date and Time:組態設定系統日期和時間。
10) Telemetry settings:組態設定遙測機制等級。
11) Log Off User:執行使用者登出。
12) Restart Server:執行主機重新啟動。
13) Shut Down Server:執行關機作業。
14) Exit to Command Line:離開Server Configuration Tool模式,回到命令提示字元。
此外,當不小心將Hyper-V Server內命令提示字元和SConfig視窗都關閉,只要按下〔Ctrl〕+〔Alt〕+〔Delete〕組合鍵,選擇「Task Manager」開啟工作管理員,在工作管理員視窗中點選「File > Run new task」,再鍵入「cmd」,即可開啟命令提示字元,鍵入「powershell」便能開啟PowerShell指令視窗,鍵入「sconfig」則可開啟Server Configuration Tool設定視窗。
WAC遠端管理Hyper-V Server
一旦Hyper-V Server主機基礎設定完成,後續的管理維護通常會透過遠端連線處理。然而,以往需要遠端管理Hyper-V Server主機之前,必須先在Hyper-V Server主機處理「遠端存取權限」、「信任主機清單」、「啟用遠端管理」等等,才能夠透過伺服器管理員、Hyper-V管理員或是RSAT遠端管理工具,遠端連線並管理Hyper-V Server主機。
現在,透過WAC(Windows Admin Center)管理工具,即能以內建的Remote PowerShell,以及WMI over WinRM(Port 5985)遠端管理連線機制,快速納管Windows Server和Hyper-V Server主機,並且納入管理的Hyper-V Server無須安裝任何代理程式,達到「無代理程式」(Agentless)的現代化管理運作架構。
在WAC管理工具中,依序點選「All Connections > Add > Servers > Add」項目,鍵入Hyper-V Server主機電腦名稱,本文實作環境為「HV2019」,此時系統便立即透過WMI over WinRM(Port 5985)機制,探索及發現遠端Hyper-V Server主機,如圖11所示。
成功透過WAC管理工具納管Hyper-V Server主機後,預設會切換到左邊的「Overview」項目,在該項目中可以快速一覽Hyper-V Server主機的資訊,包括電腦名稱、網域環境、作業系統版本,硬體資訊等等,甚至還有CPU處理器、記憶體使用量、乙太網路頻寬使用等等效能圖表。
點選左邊的Firewall項目,除了方便地針對Hyper-V Server主機調整網卡防火牆設定檔外,針對防火牆的「進入」(Incoming)和「流出」(Outgoing)等網路流量,也可以非常方便地調整規則內容,以及防火牆規則的啟用和停用,甚至是刪除或新增等作業,如圖12所示。
原則上,透過WAC管理工具,非常容易針對遠端的Hyper-V Server進行維護管理作業,如圖13所示,舉凡檔案或資料夾分享、查詢系統事件、安裝驅動程式、管理使用者和群組、效能檢視器、管理系統服務等等,甚至還能結合Microsoft Azure公有雲服務,例如屆時可以整合Azure Backup機制,將地端的VM虛擬主機備份至Azure公有雲等等。
簡單來說,WAC管理工具結合過往多項管理工具的優點,例如整合伺服器管理員系統組態的部分,整合RSAT遠端管理工具僅支援部分組態設定,整合Hyper-V管理員僅支援虛擬化管理作業。因此,透過簡單直覺的管理介面,能夠全方位管理遠端Hyper-V Server伺服器虛擬化平台,以及其上運作的VM虛擬主機。
首先,在WAC管理工具中,先依序點選「Virtual Switches > New」項目,再填入Hyper-V vSwitch虛擬交換器名稱,本文實作環境為「VMs-vSwitch」。在vSwitch虛擬交換器類型方面,可以直接選擇「External」類型,以便與Hyper-V Server主機實體網路環境溝通,選擇需要套用的乙太網路卡,倘若Hyper-V Server主機僅有一張網路卡時,記得勾選「Allow management OS to share these network adapters」項目,以便透過同一張網路卡管理Hyper-V Server。確認組態設定內容無誤後按下〔Save〕按鈕即可,如圖14所示。
在建立VM虛擬主機之前,可以透過PowerShell的「Get-VMHostSupportedVersion」指令,查詢Hyper-V Server 2019伺服器虛擬化平台支援哪些VM虛擬主機安裝的客體作業系統。在本文實作環境中,Hyper-V Server 2019最多支援至「9.0」的VM虛擬主機設定版本,如圖15所示。
簡單來說,VM虛擬主機設定版本,與屆時VM虛擬主機內安裝的客體作業系統版本支援度有關。舉例來說,當VM虛擬主機安裝Windows Server 2016作業系統時,只需要「8.0」版本即可支援,倘若安裝較新的Windows Server 2019作業系統時,則必須採用「9.0」版本才能支援,如圖16所示,至於最新的Windows Server 2022作業系統,則建議採用最新的「10.0」版本,確保VM虛擬主機和Hyper-V虛擬化平台完整結合,達到運作效能最佳化。
與傳統Hyper-V管理員工具相比,透過WAC管理工具更能得到許多管理優勢。首先,點選進入Virtual Machines項目,在右邊「Summary」頁籤項目中,可以看到Hyper-V Server主機,VM虛擬主機整體工作負載狀態,包括VM虛擬主機運作狀態(運作中、關機、封存、暫停)、近期發生的系統事件、CPU處理器使用率、記憶體工作負載等等資訊,甚至會顯示前十名使用最多CPU和記憶體運算資源的VM虛擬主機。
點選「Inventory」選項,除了條列出每台VM虛擬主機概要資訊,例如運作狀態、CPU使用率、指派的記憶體空間、已經運作多少時間、心跳偵測狀態等等,也能針對「單台或多台」VM虛擬主機進行維運管理作業,例如多台VM虛擬主機重新啟動、關機、建立檢查點等等。
可以點選單台VM虛擬主機,更深入地管理和探索VM虛擬主機。在預設頁面中,可以看到VM虛擬主機的詳細資訊和效能圖表,其中效能圖表還包含儲存資源的IOPS和Throughput,這兩項效能圖表在傳統的Hyper-V管理員工具中並無法顯示。
在管理單台VM虛擬主機中,主要有四大項目,分別是Connect、Power、Manage、Settings。
點選其中的Connect,會出現直接連線的Connect,或是像操作Azure VM公有雲虛擬主機一樣的體驗,下載RDP設定檔後再進行遠端連線管理作業。
在Power項目中,則是管理VM虛擬主機的電力情況,包含啟動、關機、斷電、儲存、重新啟動、暫停、恢復等等。在Manage項目中,除了支援複製、匯出、重新命令、刪除快照等等一般管理作業外,點選Move則可整合Hyper-V Server進階功能Live Migration即時遷移,或是點選Replicate using Azure Site Recovery項目,整合Azure ASR機制進行DR異地備援作業。最後,按下Settings項目,可調整VM虛擬主機的原有組態設定值,如圖17所示,包括是否啟用動態記憶體、vCPU虛擬處理器數量、是否啟用巢狀式虛擬化功能、是否啟用處理器相容性機制、啟用或關閉整合服務功能等等。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>