網管人雜誌
本文刊載於 網管人雜誌第 113 期 - 2015 年 6 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。文章目錄
1、前言2、滾動式升級 Hyper-V 叢集版本
3、VM 虛擬主機功能大幅提升
升級 VM 虛擬主機版本
新式 VM 虛擬主機設定檔
新式檢查點機制
線上調整啟動記憶體空間
線上新增/刪除虛擬網路卡
Linux 支援安全啟動機制
虛擬網路卡名稱識別
Replica支援線上新增硬碟
Windows Update 支援整合服務
3D 功能增強 RemoteFX vGPU
4、儲存功能增強
Share Nothing Storage Spaces
Distributed Storage QoS
Storage Replica
5、結語
1、前言
Microsoft 在 2012 年 9 月時推出 Windows Server 2012 作業系統,隔年在2013年6月TechEd 2013大會上,發佈 Windows Server 2012 R2 技術預覽版本(Preview Version),並於2013年10月時,正式發佈Windows Server 2012 R2 雲端作業系統(Cloud OS)。
本文所要介紹的,是微軟下一代的 Windows Server,也就是在 2014 年 10 月所發佈的第一個 Windows Server技術預覽版本(Preview Version),目前暫稱為 Windows Server vNext。
2、滾動式升級 Hyper-V 叢集版本
現在,管理人員可以將新版的 Windows Server vNext 主機,加入至現有 Windows Server 2012 R2 的 Hyper-V 叢集當中,接著逐台將 Windows Server 2012 R2 主機上的 VM 虛擬主機,陸續遷移至新版 Windows Server vNext 主機上。
然後,依序升級 Windows Server 2012 R2 主機為 Windows Server vNext版本,最後便可以執行PowerShell 指令「Update-ClusterFunctionalLevel」,來升級整個 Hyper-V 容錯移轉叢集的功能版本。
請注意!!一旦升級成 vNext 的 Hyper-V 容錯移轉叢集功能版本之後,便無法降級回原本的 Windows Server 2012 R2 叢集功能版本。
圖1、滾動式升級 Hyper-V 叢集版本運作架構示意圖
事實上,當 Hyper-V 叢集處於「混合(Mix)」的運作模式時,也就是 Hyper-V 叢集中有新舊版本的 Hyper-V 主機同時存在的情況下,此時的 Hyper-V 叢集將有下列相關限制:
- 「只」能透過新版的 Windows Server vNext 主機,來管理 Hyper-V 叢集、Hyper-V節點主機、VM 虛擬主機。
- 新的 Hyper-V 功能特色還無法使用,必須等到所有的 Hyper-V叢集節點都升級為 Windows Server vNext版本,並且 Hyper-V 叢集功能等級升級之後才能使用新的特色功能。
- 在 Windows Server 2012 R2 主機上的運作 VM 虛擬主機版本為「5.0」,必須要等到叢集節點升級為Windows Server vNext,並且 Hyper-V 叢集功能等級升級之後,才能升級 VM 虛擬主機版本至「6.0」。
管理人員隨時可以使用 PowerShell 指令「Get-VM | select name, version」,來查詢 VM 虛擬主機版本。
3、VM 虛擬主機功能大幅提升
新版本的 Windows Server vNext 虛擬化平台當中,針對 VM 虛擬主機除了原有的功能增強之外,更新增許多特色功能。
升級 VM 虛擬主機版本
當 Hyper-V 叢集當中,所有的 Hyper-V 叢集節點主機都升級成 Windows Server vNext 版本,並且也升級 Hyper-V 叢集功能版本後,便可以使用 PowerShell 指令「Update-VmConfigurationVersion」,來升級 VM 虛擬主機版本。但是有下列事項必須注意:
- VM 虛擬主機版本升級為 6.x版本之後,便無法降級回舊有的5.x版本。
- VM 虛擬主機版本升級後,便無法再將 VM 虛擬主機遷移回 Windows Server 2012 R2主機上運作。
- VM 虛擬主機必須為「關機(Shutdown)」狀態,才能以 PowerShell 指令升級 VM 虛擬主機版本。
- 當 Hyper-V 容錯移轉叢集功能版本未升級成 Windows Server vNext 版本時,無法升級 VM 虛擬主機版本。
- 升級版本後的 VM 虛擬主機,將會採用新式的 VM 虛擬主機設定檔格式。
圖2、升級及查詢 VM 虛擬主機版本
新式 VM 虛擬主機設定檔
在 Windows Server 2012 R2 以及先前舊有的版本當中,VM 虛擬主機的設定檔為「.xml」格式,同時可以開啟並進行編輯作業。
現在,新版的 Windows Server vNext 當中的 Hyper-V 虛擬化平台的 VM 虛擬主機,採用新的設定檔「.VMCX 及 .VMRS」,新式的 VM 虛擬主機設定檔,可以有效提升 VM 虛擬主機的「讀取(Read) / 寫入(Write)」效率,並且當儲存設備無預警發生故障損壞事件時,也能降低資料損壞的可能性。
- .VMCX: VM 虛擬主機設定檔,取代舊有的 .xml 檔案。
- .VMRS: VM 虛擬主機運作狀態檔,取代舊有的 .bin 及 .vsv 檔案。
此外,不同於舊版的設定檔可以開啟檢視及編輯,新式的 VM 虛擬主機設定檔 .VMCX/.VMRS 為「二進位(Binary)」格式,因此無法檢視內容及編輯。
圖3、新版 VM 虛擬主機採用的新式設定檔格式
新式檢查點機制
在新版 Windows Server vNext 虛擬化平台當中,針對 VM 虛擬主機的「檢查點(Checkpoint)」(舊稱為「快照 Snapshot」)機制也進行翻新。
現在檢查點機制分為「Production Checkpoints」及「Standard Checkpoints」兩種類型,其中 Standard Checkpoints 便是舊有的檢查點運作方式,也就是採用「儲存狀態(Saved State)」的機制,來為 VM 虛擬主機建立檢查點。
新式的 Production Checkpoints 檢查點機制,針對運作 Windows 作業系統的 VM 虛擬主機,將會採用「磁碟區快照服務(Volume Snapshot Service,VSS)」的方式,來為 VM 虛擬主機建立檢查點。而針對 Linux 作業系統的 VM 虛擬主機,則會採用「更新檔案系統緩衝區(Flush File System Buffers)」的方式,為 Linux 作業系統底層的檔案系統建立一致性的檢查點。
預設情況下,新版的 VM 虛擬主機將會採用新式的 Production Checkpoints 檢查點機制,同時它也更適合使用於線上營運環境的 VM 虛擬主機。但是,仍然會有產生差異磁碟 .avhdx 的問題存在,因此在使用上仍需注意對於 VM 虛擬主機 I/O 的影響。
圖4、選擇 VM 虛擬主機採用的檢查點機制
線上調整啟動記憶體空間
在 Windows Server 2012 R2 的 Hyper-V 虛擬化平台上,運作的 VM 虛擬主機在啟用「動態記憶體(Dynamic Memory)」之後,可以在 VM 虛擬主機運作中線上調整虛擬記憶體的「下限(Minimum) / 上限(Maximum)」,但是並無法線上調整「啟動(Startup)」的虛擬記憶體空間。
現在,在 Windows Server vNext 虛擬化平台運作的 VM 虛擬主機,不管採用的是第一世代或第二世代的 VM 虛擬主機格式,即使在沒有啟用動態記憶體機制的情況下,也都可以在 VM 虛擬主機運作中線上調整啟動虛擬記憶體空間。
圖5、新版的 VM 虛擬主機,可線上調整啟動虛擬記憶體空間
線上新增/刪除虛擬網路卡
過去,在 Windows Server 2012 R2 的 Hyper-V 虛擬化平台上,若 VM 虛擬主機需要「新增(Add) / 移除(Remove)」虛擬網路卡時,必須要將 VM 虛擬主機「關機(Shutdown)」才能進行新增移除作業。
現在,新版的 Windows Server vNext 虛擬化平台 VM 虛擬主機,當使用的是「第二世代」的 VM 虛擬主機格式時,不管 VM 虛擬主機採用的作業系統是 Windows 或 Linux,都隨時可以線上新增/移除(Hot Add / Hot Remove)虛擬網路卡,並且運作中的 Windows / Linux 作業系統都可以線上感知新增或移除的虛擬網路卡。
圖6、新版 VM 虛擬主機,可隨時線上新增或移除虛擬網路卡
Linux 支援安全啟動機制
在相對舊版的 Windows Server 2012 R2 Hyper-V 虛擬化平台上,即使採用第二世代的 VM 虛擬主機,若安裝 Linux 作業系統的話,仍然無法支援「安全啟動(Secure Boot)」機制。
現在,新版的 Windows Server vNext 虛擬化平台 VM 虛擬主機,當使用的是「第二世代」的 VM 虛擬主機格式時,採用 Ubuntu 14.04 及 SUSE Linux Enterprise Server 12 新版作業系統時,都已經能夠支援安全啟動機制。
圖7、Linux 虛擬主機支援安全啟動機制
在第一次啟動 Linux 虛擬主機之前,你必須先指定 VM 虛擬主機採用 Microsoft UEFI Certificate Authority,那麼 Linux 虛擬主機便能順利支援安全啟動機制。
Set-VMFirmware "TestVM-Ubuntu" -SecureBootTemplate MicrosoftUEFICertificateAuthority
虛擬網路卡名稱識別
以往在 VM 虛擬主機的設定內容視窗中,當指定虛擬網路卡採用虛擬交換器後,會在虛擬網路卡下方顯示虛擬交換器以利識別。但是,當 VM 虛擬主機的虛擬網路卡數量一多時,雖然我們在 Guest OS 層級可以針對虛擬網路卡重新命名以利識別,不過在 VM 虛擬主機設定內容視窗中,每一片虛擬網路卡卻只能顯示「Network Adapter」,造成辨別上的困擾。
圖8、可顯示虛擬交換器名稱,卻無法顯示虛擬網路卡名稱造成辨別上的困擾
現在,新版的 Windows Server vNext 虛擬化平台 VM 虛擬主機,支援虛擬網路卡「裝置命名(Device Naming)」機制。請在 VM 虛擬主機設定內容中,點選 Advanced Features 項目後勾選「Enable device naming」選項,之後 VM 虛擬主機設定內容中的虛擬網路卡名稱,便可以支援顯示 Guest OS 層級所重新命名的網路卡名稱了。
圖9、VM 虛擬主機的虛擬網路卡名稱,支援顯示 Guest OS 層級所命名的網路卡名稱
Replica支援線上新增硬碟
Hyper-V 複本(Replica)機制,是從 Windows Server 2012 版本開始新增的特色功能,在 2012 版本時支援異地備援複本機制,至 2012 R2 版本更支援延伸複本機制,將複本資料由第二方位置再次複寫到第三方位置進行存放。但是在這兩個版本當中,當 VM 虛擬主機進行複本抄寫的情況下,若 VM 虛擬主機線上新增硬碟(Hot Add VHDX Disk)時,必須要重新啟用及設定 Hyper-V 複本機制才行,否則將會造成複寫作業失敗的情況。
現在,你只要在 VM 虛擬主機線上新增硬碟之後,執行下列 PowerShell 指令便能讓 Hyper-V 複本機制,順利感知到 VM 虛擬主機線上所新增的硬碟,並且繼續進行複寫作業而不會有任何影響。
Set-VMreplication "TestVM" -ReplicatedDisks (Get-VMHardDiskDrive "TestVM")
Windows Update 支援整合服務
每一種虛擬化平台都會需要幫其上運作的 VM 虛擬主機安裝適當的 Tools,以使其上運作的 VM 虛擬主機能夠與虛擬化平台進行最緊密的結合(例如 虛擬裝置最佳化…等),舉例來說 VMware vSphere 虛擬化平台便需要幫 VM 虛擬主機安裝 VMware Tools,而Citrix XenServer 虛擬化平台便需要幫 VM 虛擬主機安裝 Xen Tools。Microsoft Hyper-V虛擬化平台則是需要幫其上運作的 VM 虛擬主機安裝「整合服務(Integration Services)」,安裝整合服務完畢後在驅動程式部份會更新 IDE、SCSI、網路、視訊、滑鼠…等方面進行最佳化,而在服務方面則是整合 作業系統關閉(Shutdown)、時間同步化(Time Synchronization)、資料交換(Key/Value Exchange)、活動訊號(Heartbeat)、線上備份(Volume Shadow copy Service,VSS)…等機制,以期 VM 虛擬主機跟 Microsoft Hyper-V虛擬化平台不管是在效能運作上,或者是驅動程式最佳化方面都能進行完美的結合。
您會發現 VM 虛擬主機安裝客體作業系統之後,有些 Guest OS 作業系統版本必須要「安裝」整合服務,有些須要「升級」整合服務版本有些則是「不須要」安裝整合服務。其中,不須要安裝整合服務的 VM 虛擬主機,是因為所安裝的作業系統為「Enlightenment OS」,也就是該作業系統的「核心」能夠自動「感知」目前身處的環境是否為虛擬化環境,因此便無須安裝整合服務。
舉例來說,在舊版本的 Hyper-V 2.0 虛擬化平台當中,若 VM 虛擬主機安裝 Windows 7、Windows Server 2008 R2 作業系統,因為屬於該虛擬化平台的 Enlightenment OS 所以「不須要」安裝整合服務,但若運作在「Hyper-V 3.0」虛擬化平台當中則須要「升級」整合服務版本。
- Hyper-V 1.0: Windows Vista、Windows Server 2008 為 Enlightenment OS。
- Hyper-V 2.0: Windows 7、Windows Server 2008 R2 為 Enlightenment OS。
- Hyper-V 3.0: Windows 8.1、Windows Server 2012 R2 為 Enlightenment OS。
此外,後續若有新的整合服務版本時 Hyper-V 虛擬化平台,也必須要進行相對應的更新後才能幫其上運作的 VM 虛擬主機更新整合服務版本。
現在,整合服務已經包含在 Windows Updtate 當中(例如, KB 3004908),並且舊有的整合服務安裝映像檔(vmguest.iso),也不會存在於 Hyper-V 虛擬化平台中。所以,你在 Windows Server vNext 虛擬化平台中所建立的 VM 虛擬主機,在 VM Console 視窗中Action 項目選單中,已經看不到舊有的「插入整合服務安裝光碟」選項。
圖10、新版 VM 虛擬主機已經沒有插入整合服務安裝光碟選項
3D 功能增強 RemoteFX vGPU
在新版 Windows Server vNext 虛擬化平台上運作的 VDI 虛擬主機,只要 VDI 虛擬主機的作業系統採用 Windows 10 Enterprise 或 Windows Server vNext,並且實體伺服器搭配安裝 GPU 顯示卡,便可以啟用 RemoteFX vGPU 硬體加速機制。目前支援主流的 GPU 顯示卡有 NVIDIA 及 AMD:
啟用 RemoteFX vGPU 硬體加速機制的 VDI 虛擬主機,將具備如下特性:
- 支援 OpenGL 4.4 及 OpenCL 1.1 API:所以 VDI 虛擬主機可以更佳的運作 Adobe Photoshop、Maya、Blender、Houdini 等繪圖軟體,此外也同時支援 GPGPU 工作負載。
- 支援更多的視訊記憶體(Video Memory):在 Windows Server 2012 R2 的 VDI 虛擬主機,其視訊記憶體最多只能設定至 256MB,現在最多可配置 2GB 的視訊記憶體(1G 專用、1GB 共享)。但若採用 32 位元的 Windows 10 作業系統,則最多只能配置 512MB的視訊記憶體。
- 針對各種 API 的效能改善。
圖11、RemoteFX vGPU 運作架構示意圖
儲存功能增強
在新版的 Windows Server vNext 當中,針對儲存功能的部分也新增許多特色功能,例如「軟體定義儲存(Software-Defined Storage,SDS)」的功能...等。
Share Nothing Storage Spaces
在 Windows Server 2012 R2 當中的 Storage Spaces 機制,在底層實體硬碟的部分必須要採取「共享式 JBOD(Shared JBOD)」,或者是「SAS 網狀架構(SAS Fabric)」來供應儲存資源,然後採用 Storage Spaces 的 Storage Pool機制,將底層實體硬碟的儲存空間串起來之後,再以 Storage Spaces 的 Virtual Disk機制,決定採用「簡單(Simple)、鏡像(Mirror)、同位元檢查(Parity)」哪種容錯類型,來保護屆時所存取的資料。
最後再以 SMB Scale-Out File Server Cluster 運作架構,將儲存資源以 SMB 3.0 協定分享給所需要的應用程式使用如 Hyper-V、SQL Server、Exchange...等。
圖12、Storage Spaces整合Scale-Out File Server Cluster運作架構示意圖
圖片來源: TechEd Europe 2014 – Design Scale-Out File Server Clusters in the Next Release of Windows Server
現在,在 Windows Server vNext 當中的 Storage Spaces 機制,增強為不需要底層實體硬碟採取Shared JBOD或SAS Fabric架構,直接在Scale-Out File Server Cluster運作架構中,每一台叢集節點當中的本機儲存資源貢獻出來即可串聯後使用,達成「Shared Nothing Storage Spaces」運作架構。
簡單來說 Shared Nothing Storage Spaces 具備下列特點:
- 支援每台 Scale-Out File Server Cluster 叢集節點,採用本機 DAS 儲存資源(SATA、SAS)。
- 針對資料容錯的備援機制,將採用3-Copy Mirror或Dual-Parity機制進行資料保護。因此,不管叢集節點發生哪種故障損壞事件(例如,硬碟、機箱、主機...等),都能夠保護資料的完整性。
- 可透過System Center或PowerShell進行管理作業。
圖13、Shared Nothing Storage Spaces運作架構示意圖
圖片來源: TechEd Europe 2014 – Design Scale-Out File Server Clusters in the Next Release of Windows Server
Distributed Storage QoS
「Storage QoS」功能在 Windows Server 2012 R2 當中便已經具備,它可以針對「每台 VM 虛擬主機」或「每顆 VHD/VHDX 虛擬磁碟」,進行 IOPS 的最小值或最大值的使用限制,以避免在虛擬化平台當中,有少部分 VM 虛擬主機因為突然爆發的 IOPS 工作負載,佔用整座儲存設備過多的 IOPS 儲存資源,造成其它 VM 虛擬主機運作效能不彰。
圖14、Windows Server 2012 R2版本 Storage QoS 運作架構示意圖
現在,新版的 Windows Server vNext 當中,更進一步增強為「Distributed Storage QoS」機制,不但可以支援原有的 VM 虛擬主機及每顆虛擬硬碟,現在更延伸至「服務(Service)」及「租用戶(Tenant)」的層級。
此外,在設定 QoS 的機制上也更為簡單,採用的「I/O Scheduler」機制預設就已經在 Scale-Out File Server Cluster當中啟用,並且可以「跨越每台叢集節點」進行運作,有效解決過去必須在每台叢集節點進行單獨設定的困擾。
最後,再搭配「Policy Manager」管理機制,將所設定的「Storage QoS」原則套用到所屬的 VM 虛擬主機、服務、租用戶當中。當然,你可以透過 PowerShell、SCVMM、Ops Manager 各種管理工具,來進行 Policy 的管理作業。
圖15、Windows Server vNext 版本 Storage QoS 運作架構示意圖
Storage Replica
「SR(Storage Replica)」這是 Windows Server vNext 的新功能,它是一種「區塊層級(Block Level)」的複寫技術,可以支援「同步(Synchronous)」及「非同步(Asynchronous)」兩種不同的資料複寫方式,並且以 SMB 3 的通訊協定來進行資料的複寫傳送,而在使用案例上又可以分為「Server to Server」、「Stretch Cluster」、「Cluster to Cluster」等不同的應用情境。
圖16、Storage Replica 應用情境運作架構示意圖
在「同步(Synchronous)」複寫機制中,系統會保證每次的 IO 作業完成之前,都會將資料寫入至少兩個不同的位置後,才會回覆給上層的應用程式已完成 IO 作業。因此,它適合用於需要高可用性及災難復原,也就是「零資料損失(Zero Data Loss)」的運作環境。在兩端主機之間資料複寫的動作如下:
- 應用程式寫入資料。
- 來源端主機將資料寫入至Data及Log本地端儲存資源當中,同時透過SMB 3協定將資料傳輸至目的端主機。
- 目的端主機將所收到的資料進行寫入本地端儲存資源的動作。
- 目的端主機資料寫入完成後,回覆給來源端主機已完成IO動作。
- 應用程式確認已完成IO動作。
圖17、Storage Replica同步(Synchronous)複寫機制運作架構示意圖
而在「非同步(Asynchronous)」複寫機制中,系統在本地端完成 IO 作業後便回覆給上層的應用程式,之後才將資料複寫到另一個位置。因此,這樣的資料複寫機制仍然是有資料遺失的風險存在,只能達成「近乎零資料損失(Near Zero Data Loss)」的運作環境。在兩端主機之間資料複寫的動作如下:
- 應用程式寫入資料。
- 來源端主機將資料寫入至Data及Log本地端儲存資源當中。
- 回覆給上層應用程式確認已完成IO動作。
- 透過SMB 3協定將資料傳輸至目的端主機。
- 目的端主機將所收到的資料進行寫入本地端儲存資源的動作。
- 目的端主機資料寫入完成後,回覆給來源端主機已完成IO動作。
圖18、Storage Replica非同步(Asynchronous)複寫機制運作架構示意圖
5、結語
透過本文的介紹及說明,讀者應該對於下一代的 Windows Server vNext 功能感到興趣,相信在後續推出的第二個 Windows Server技術預覽版本當中,將會有更多特色功能。屆時,也將會為大家一一深入剖析每項功能及使用案例。