︿
Top

網管人雜誌

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





文章目錄

前言
實作環境
TOP 1: 第 2 代 VM 虛擬主機格式
TOP 2: 加強的工作階段模式
TOP 3: 自動化 VM 虛擬主機授權啟用
TOP 4: VM 虛擬主機客體服務
TOP 5: VM 虛擬主機儲存資源服務品質控制
TOP 6: 線上匯出
TOP 7: 線上 擴充/縮小 虛擬磁碟
TOP 8: 更快速的即時遷移機制
TOP 9: 更具彈性的異地備援機制
TOP 10: 更全面的支援 Linux 作業系統
結語





前言

時至今日,x86 架構主機運算能力已經一日千里,但也遭遇到大型主機當年同樣的問題「工作負載利用率不佳」。現在,x86 架構主機已經突破虛擬化難關充分利用硬體資源,因此造就了目前虛擬化浪潮勢不可擋的趨勢,許多企業及組織已經從早期持觀望態度到引進內部測試環境,並紛紛將線上營運服務遷移到虛擬化環境當中。

Microsoft 於 2008 年 6 月時所發行的 Windows Server 2008 作業系統當中,便開始內建 Hyper-V 1.0 虛擬化技術,緊接著在 2009 年 10 月發佈的 Windows Server 2008 R2 中則升級為 Hyper-V 2.0 虛擬化技術,於去年 2012 年 10 月所發行的 Windows Server 2012 雲端作業系統(Cloud OS)則為 Hyper-V 3.0 虛擬化技術,最新則是在 2013 年 6 月 TechEd 2013 大會上,發佈了 Windows Server 2012 R2 的技術預覽版本(Preview Version),更是增加了不少 Hyper-V 虛擬化技術特色功能。並在 2013 年 10 月 18 日正式發行 Windows Server 2012 R2

圖 1、Windows Server 2012 R2 雲端作業系統平台示意圖





實作環境






TOP 1: 第 2 代 VM 虛擬主機格式

為了因應虛擬化繁重的工作負載需求,在 Windows Server 2012 R2 當中的 Hyper-V 虛擬化平台,新增了在運作效率及擴充性方面更佳的「第 2 代(Generation 2)」虛擬主機格式,你必須在建立 VM 虛擬主機時,便選擇要採用哪一個世代的虛擬主機格式,並且一旦選擇後便無法更改。

圖 2、建立 VM 虛擬主機時便要決定採用的世代

在此之前的 Hyper-V 虛擬化平台,都只能新增「第 1 代(Generation 1)」的虛擬主機格式,那麼二個虛擬主機格式世代之間有何不同? 舉例來說,採用第 1 代虛擬主機格式,那麼系統磁碟只能採用「IDE 硬碟及控制器」,而第 2 代的虛擬主機格式,則能支援系統磁碟採用「SCSI 硬碟及控制器」。現在,你可以採用第 2 代虛擬主機格式,搭配運作效能相較於 IDE 硬碟較佳的 SCSI 硬碟,來擔任 VM 虛擬主機的系統磁碟,並且採用新式的 GPT 磁碟格式來進行開機(即作業系統啟動磁碟大於 2.2TB)。

圖 3、採用效能較佳的 SCSI 硬碟擔任 VM 虛擬主機的系統磁碟

目前,僅 Windows 8/8.1(64-bit)、Windows Server 2012/2012 R2 作業系統,支援採用第 2 代虛擬主機格式的 VM 虛擬主機,並且具備下列優點:

  • 支援 PXE Boot(以 Optimized Virtual NIC 取代傳統的 Emulated NIC)
  • 支援 Virtual SCSI HDD 啟動(以 SCSI Controller 取代傳統的 IDE Controller)
  • 支援 UEFI firmware(取代傳統的 BIOS
  • 支援 GPT 磁碟格式開機(取代傳統的 MBR 磁碟格式)
  • 支援線上「擴充/縮小」磁碟空間
  • 支援線上「新增/移除」SCSI 裝置(包含 DVD 光碟機)
  • 支援安全啟動機制(Secure Boot)





TOP 2: 加強的工作階段模式

在舊版的 Hyper-V 虛擬化平台當中的 VM 虛擬主機,並無法存取 Host 主機中相關資訊。現在,透過加強的工作階段模式,您可以選擇將 Host 主機中相關資源,例如,Smart Card、USB 儲存裝置...等,「重新導向(Redirection)」給 VM 虛擬主機進行存取動作。

此功能僅支援 VM 虛擬主機為 Windows 8.1 Preview,以及 Windows Server 2012 R2 Preview 版本以及後續的作業系統版本,並且預設就會啟用此功能。此加強工作階段模式是依靠「遠端桌面服務(Remote Desktop Service)」運作,並且透過 VMBus Hyper-V Management Console 協同整合,因此透過 Remote Desktop Service over VMBus 制所運作的加強工作階段模式,即使 VM 虛擬主機網路不通也可以重新導向,因此必須確認 VM 虛擬主機已啟用並正確運作遠端桌面服務服務,以保障加強的工作階段模式運作正確。

而在 Hyper-V Host 部份,加強工作階段模式功能在預設情況下並「不會啟用」,請依序點選「Hyper-V 管理員 > Hyper-V Host > Hyper-V 設定 > 加強的工作階段模式原則」項目,接著勾選「允許加強的工作階段模式」項目後即可。

圖 4、Hyper-V Host 啟用加強的工作階段模式原則

現在,Hyper-V Host 與 VM 虛擬主機之間,將透過加強的工作階段模式原則機制,把 Hyper-V Host 下列相關資源重新導向到 VM 虛擬主機:

  • 顯示器組態(Display configuration)
  • 聲音(Audio)
  • 印表機(Printers)
  • 剪貼簿(Clipboard)
  • 智慧卡(Smart cards)
  • 磁碟機(Drives)
  • USB 裝置(USB devices)
  • 其它支援的隨插即用裝置(Supported Plug and Play devices)

圖 5、VM 虛擬主機允許加強的工作階段模式

圖 6、順利將 Hyper-V Host 磁碟機重新導向至 VM 虛擬主機





TOP 3: 自動化 VM 虛擬主機授權啟用

以往要管理大量 Windows 主機軟體授權時,便會採用 KMS(Key Management Service)解決方案。現在,透過 Windows Server 2012 R2 的 AVMA(Automatic Virtual Machine Activation)機制,您可以方便且輕鬆的啟用VM虛擬主機的軟體授權,即使 VM 虛擬主機網路功能異常仍能順利啟用授權。此外,AVMA 機制還提供授權使用情況報表(Reporting)追踪(Tracking)資訊。

目前支援 AVMA 自動化 VM 虛擬主機授權啟用機制的作業系統,分別是 Windows Server 2012 R2 Preview 的 Datacenter、Standard、Essentials 版本,以及後續的正式發行版本。

只要在支援 AVMA 機制的 VM 虛擬主機當中,輸入「slmgr /ipk <授權金鑰>」後,便能得到成功安裝產品金鑰的訊息,此時再次鍵入「slmgr /dli」或「slmgr /dlv」指令,便能查看軟體授權資訊。

圖 7、自動啟用 VM 虛擬主機授權後查看授權資訊

當您透過 AVMA 機制,為 VM 虛擬主機自動啟用軟體授權後,在 Hyper-V Host 主機內您可以在事件檢視器中,發現多了一筆授權成功事件識別碼(EventID)「12310」記錄,若是啟用失敗的話則會多了一筆事件識別碼(EventID)「12309」記錄。

圖 8、事件檢視器中多了一筆事件識別碼(EventID)「12310」記錄





TOP 4: VM 虛擬主機客體服務

在舊版 Hyper-V 虛擬化平台當中,為了確保 Hyper-V Host 與 VM 虛擬主機之間的安全性。因此,在 Hyper-V 管理員視窗當中,並無法直接讓 Hyper-V Host 與 VM 虛擬主機之間進行資料交換。現在,新一代的 Hyper-V 虛擬化平台中,在原有的整合服務(Integration Services)內新增「客體服務(Guest Service)」,便可以使 Hyper-V Host 與 VM 虛擬主機之間進行資料交換。

只要在 Hyper-V Host 內 Hyper-V 管理員中,為 VM 虛擬主機啟用「客體服務(Guest Service)」,或者在 Hyper-V Host 鍵入 PowerShell 指令「Enable-VMIntegrationService –Name " Guest Service Interface" –VMName <VM虛擬主機名稱>」,便可以為 VM 虛擬主機啟用客體服務。

圖 9、VM 虛擬主機啟動客體服務

在 Hyper-V Host 端順利幫 VM 虛擬主機啟動客體服務後,接著只要確認 VM 虛擬主機已安裝整合服務,並且在系統服務中「Hyper-V 客體服務介面」為「執行中」,那麼便可以讓 Hyper-V Host 與 VM 虛擬主機之間進行資料交換。

圖 10、確認 VM 虛擬主機啟動 Hyper-V 客體服務介面系統服務

相關前置作業及系統服務都確認後,便可以使用 PowerShell 指令「Copy-VMFile」,或直接使用檔案總管複製/貼上功能,在 Hyper-V Host 與 VM 虛擬主機之間進行資料交換。

圖 11、Hyper-V Host 與 VM 虛擬主機之間進行資料交換





TOP 5: VM 虛擬主機儲存資源服務品質控制

在舊版 Hyper-V 以及前一版 Windows Server 2012(Hyper-V 3.0)虛擬化平台當中,並無法針對特定的 VM 虛擬主機,其儲存資源的耗用程度進行控制。因此,您的虛擬化環境當中,有可能因為某幾台 VM 虛擬主機,其儲存資源耗用程度異常或其它因素,導致儲存設備無法充份供應其它 VM 虛擬主機,應該得到的 IOPS(Input/Output operations Per Second),造成使用者操作體驗不良(因為 VM 虛擬主機反應緩慢!!)。

現在,新一代的 Windows Server 2012 R2(Hyper-V 3.0 R2)虛擬化平台中,具備了「儲存資源服務品質(Storage Quality of Service)」控制機制,你可以為 VM 虛擬主機設定「最小(Minimum)及最大(Maximum)」IOPS 工作負載數值,使儲存資源耗用程度異常的 VM 虛擬主機,不會再影響到其它VM虛擬主機。請注意!! 若 VM 虛擬主機採用「共用虛擬硬碟(Shared Virtual Hard Disks)」,則 Storage QoS 機制並不適用!!

當您希望為特定 VM 虛擬主機,套用儲存資源服務品質(Storage QoS)機制時,只要在 Hyper-V 管理員視窗中,點選 VM 虛擬主機後在右方動作窗格中按下設定鍵,請依序點選「SCSI 控制器 > 硬碟 > 進階功能」項目後,首先勾選「啟用服務品質管理」選項,接著設定最小及最大 IOPS 工作負載數值:

  • 預設值為「0」,您可以指定該 VM 虛擬主機「最少 或 最多」應獲得的 IOPS 工作負載數值,若未達到最小 IOPS 數值時系統將會自動產生相關事件,若達到最大 IOPS 限制數值時,便無法再使用更多的儲存資源。
  • 虛擬磁碟的 IOPS 工作負載數值增加估算,是以每 8KB 資料量大小來進行計算。
  • 您可以透過 WMI Interface,來大量查詢每台 VM 虛擬主機的最小 IOPS 工作負載數值。
  • 除了在 Hyper-V 管理員視窗中進行設定之外,您還可以透過 PowerShell 指令,來即時查詢及修改 VM 虛擬主機的最小及最大 IOPS 工作負載數值。

圖 12、設定虛擬磁碟最小及最大 IOPS 服務品質數值

我們實際以 IOPS 工作負載測試軟體(此實作採用 CrystalDiskMark),針對運作中的 VM 虛擬主機進行測試,有關於測試結果 MBps 與 IOPS 之間的數值轉換,您可以參考下列公式進行估算及轉換:


在此實作環境當中,尚未針對 VM 虛擬主機的虛擬磁碟啟用 Storage QoS 機制以前,可以看到 Random Read(4KB, QD32)達到「2.011 MB/s (491.0 IOPS)」,以及 Random Write(4KB, QD32)達到「1.538 MB/s (375.5 IOPS)」的水準,整體來說 VM 虛擬主機的資料讀寫平均大約在 433 左右。

圖 13、VM 虛擬主機尚未啟用 Storage QoS 機制以前的 IOPS 工作負載

接著,在 Hyper-V 管理員視窗中,點選該 VM 虛擬主機後按下設定鍵,然後依序點選「SCSI 控制器 > 硬碟 > 進階功能」項目後,勾選「啟用服務品質管理」選項,接著設定 IOPS 工作負載數值,將最小值設定為「0」而最大值設定為「200」後,按下「確定」鍵進行套用(請注意!! 此時的 VM 虛擬主機仍在運作中而不受任何影響,便可以套用 IOPS 設定)。

圖 14、為線上運作的 VM 虛擬主機啟用 Storage QoS 機制

針對VM虛擬主機的虛擬磁碟啟用 Storage QoS 機制之後,再次進行 IOPS 工作負載數值測試,從結果中可以看到 Random Read(4KB, QD32)為「0.820 MB/s (200.1 IOPS)」,以及 Random Write(4KB, QD32)達到「0.815 MB/s (199.0 IOPS)」的水準,VM 虛擬主機的資料讀寫表現,如同我們所設定的最大僅能使用 200 IOPS 的儲存資源。

圖 15、啟用 Storage QoS 機制後 VM 虛擬主機僅能使用 200 IOPS 的儲存資源





TOP 6: 線上匯出

匯出(Export)」功能在以往舊版 Hyper-V 虛擬化平台便已經具備,然而匯出功能雖然方便但是有個很重要的前提,便是 VM 虛擬主機需要為「關機(Power Off)」狀態,才能進行匯出的動作。但是,在強調可連續性及高可用性的虛擬化平台上,要將 VM 虛擬主機中斷服務便有違虛擬化運作理念。

因此,新一代的 Hyper-V 3.0 R2 虛擬化平台,將原有的匯出功能進行改良。現在,你可以在 VM 虛擬主機運作中(Power On),執行「線上匯出(Live Export)」的功能,只要在 Hyper-V 管理員視窗中,點選欲進行線上匯出的 VM 虛擬主機後選擇「匯出」項目,接著選擇要匯出存放的路徑後按下「匯出鍵」即可,此時便會在 Hyper-V 管理員視窗中,該 VM 虛擬主機的「工作狀態」欄位便顯示「正在匯出」,並且搭配百分比進度,已便讓您了解線上匯出進度(請注意 !! 線上匯出作業進行時, VM 虛擬主機仍可正常服務及運作)。

圖 16、準備為線上運作的 VM 虛擬主機執行線上匯出功能

其實線上匯出的運作流程,便是在執行匯出動作的同時為 VM 虛擬主機建立「檢查點(CheckPoint)」(舊版稱之為「快照(Snapshot)」),然而在線上匯出的同時 VM 虛擬主機仍持續服務當中,資料可能會有「新增/修改/刪除」的情況,因此線上匯出作業完畢時會進行「檢查點合併」的動作,也就是將線上匯出作業期間,資料的變動進行合併。

圖 17、VM 虛擬主機線上匯出完畢進行資料變動合併

事實上,在舊版的 Hyper-V 虛擬化平台上,匯出功能通常被視為 VM 虛擬主機的「離線備份(Offline Backup)」,或者「離線遷移(Offline Migration)」的解決方案。現在,新版的 Hyper-V 虛擬化平台,增強原有的匯出功能為可「線上(Online)」運作,除了將原有的備份及遷移功能變為線上之外,更重要的是你可以把線上匯出功能,視為是「線上服務除錯」的好幫手 !!

在以往要針對線上營運的 VM 虛擬主機,進行除錯任務時是困難的,你可能要透過 System Center 線上複製功能,或者把線上營運的 VM 虛擬主機關機匯出,接著對複製或匯出的 VM 虛擬主機進行除錯任務測試。現在,透過線上匯出功能你可以隨時匯出線上營運的 VM 虛擬主機後,輕鬆進行線上營運主機的除錯任務。





TOP 7: 線上 擴充/縮小 虛擬磁碟

在舊版的 Hyper-V 虛擬化平台中,你可以為 VM 虛擬主機線上「新增」虛擬磁碟(例如,D 槽、E槽...等),但若是本來的虛擬磁碟空間過大或過小要進行調整的話,那麼 VM 虛擬主機必須「關機(Power Off)」才能進行調整。

現在,新一代的 Hyper-V 3.0 R2 虛擬化平台中,你可以隨時針對線上運作的 VM 虛擬主機,其 VHDX 虛擬磁碟空間大小進行線上「擴充(Expand) / 縮小(Shrink)」的作業,但前提是該 VM 虛擬主機必須採用第二代虛擬主機格式,並且作業系統必須為 Windows 8/8.1(64bit)Windows Server 2012/2012 R2 才行。

當相關前置作業及條件都符合之後,只要在 Hyper-V 管理員視窗中點選 VM 虛擬主機,依序點選「設定 > SCSI 控制器 > 硬碟 > 編輯 > 擴充」後,填入新的磁碟空間大小,接著在 VM 虛擬主機中開啟磁碟管理,便可以看到「線上擴充(Live Expand)」的磁碟空間。

圖 18、為線上運作的 VM 虛擬主機即時擴充硬碟空間

那麼如何讓剛才擴充的磁碟空間,線上直接加入原有的磁碟空間當中? 很簡單,只要點選原有的磁碟空間,例如,此實作中的 C 槽,按下右鍵後選擇「延伸磁碟區」項目,接著跟隨延伸磁碟區精靈的互動式操作即可完成線上磁碟空間擴充作業(此實作 C 槽原有為 4095.48GB,線上擴充為 4096.48GB)。

圖 19、線上直接為 VM 虛擬主機進行磁碟空間擴充

若要進行磁碟空間「線上縮小(Live Shrink)」作業也很簡單,首先在原有的磁碟空間,例如,此實作中的 C 槽,按下右鍵後選擇「壓縮磁碟區」項目,接著輸入要壓縮的空間大小後按下「壓縮」鍵(以 MB 為單位),便可以線上縮小磁碟空間(此實作 C 槽原有為 4096.48GB,線上縮小為 4090GB)。

圖 20、線上直接為 VM 虛擬主機進行磁碟空間縮小

然後在 Hyper-V 管理員視窗中點選 VM 虛擬主機,依序點選「設定 > SCSI 控制器 > 硬碟 > 編輯 > 縮減」後,填入縮小的磁碟空間大小(以 GB 為單位),回到 VM 虛擬主機中開啟磁碟管理,便可以看到縮小後的磁碟空間(順利將 VM 磁碟空間還給儲存設備!!)。

圖 21、順利將縮小的 VM 磁碟空間還給儲存設備





TOP 8: 更快速的即時遷移機制

在舊版的 Hyper-V 虛擬化平台中,您可以透過 TCP/IP 網路即時傳送VM虛擬主機的記憶體狀態,以達成線上遷移的目的。現在,新一代的 Hyper-V 3.0 R2 虛擬化平台中,對於 VM 虛擬主機的即時遷移(Live Migration)機制,有了更快速達成遷移的方式分別是「壓縮(Compression)、SMB」。

在新一代的 Hyper-V 3.0 R2 虛擬化平台中,預設會採用「壓縮(Compression)」機制,適用於 1/10 Gbps 的乙太網路環境,根據微軟官方的測試相較於舊版 Hyper-V 3.0 虛擬化平台,速度大約加快「2 倍」(也就是約節省一半的遷移時間)。

若 Hyper-V 主機採用 RDMA(Remote Direct Memory Access)網路介面卡,同時配合 SMB Multichannel 機制進行遷移的話,速度大約加快「5 ~ 10 倍」之間。

圖 22、預設採用更快速的即時遷移機制





TOP 9: 更具彈性的異地備援機制

在舊版的 Hyper-V 虛擬化平台中,主要伺服器傳送變更資料至複本伺服器的頻率,為「5 ~ 15分鐘」之間 Hyper-V 主機視網路情況進行傳送。現在,您可以指定變更資料的傳送頻率為「30秒、5分鐘、15分鐘」。此外,新一代的 Hyper-V 3.0 R2 虛擬化平台,還支援「第三地」的複本伺服器進行資料複寫,提供更大彈性的異地備援機制。

圖 23、可自行指定資料變更傳送頻率





TOP 10: 更全面的支援 Linux 作業系統

在舊版 Hyper-V 虛擬化平台中,雖然可以運作大部份的 Linux 作業系統,例如,RedHat、SUSE、Ubuntu...等,但是令人詬病的並不支援「動態記憶體(Dynamic Memory)」機制。現在,新一代的 Hyper-V 3.0 R2 虛擬化平台完全支援 Linux 作業系統,除了動態記憶體(Dynamic Memory)可順利運作之外,也支援 Live Backup、Virtual SCSI、Hot Add、Online Resize...等功能。

圖 24、Linux 作業系統可順利運作動態記憶體機制





結語

透過本篇的說明及實作相信讀者已經了解到,新一代 Microsoft Hyper-V 3.0 R2 虛擬化平台,除了打破許多舊版本的環境限制之外,並且增加更多的特色功能,使得 Hyper-V 虛擬化平台能夠因應企業日益加重的工作負載。在後續的文章當中,筆者將會深入介紹相關特色功能的實作與應用。