96 期 - 虛擬桌面 VM 主機及 Guest OS 最佳化調校


網管人雜誌

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





文章目錄

1、前言
2、實作環境
3、VM 虛擬主機層級調校作業
          虛擬記憶體
          虛擬網路卡
          虛擬硬碟控制器
          虛擬硬體版本
          移除或停用不必要的虛擬硬體
          停用熱新增/熱插拔功能
4、Guest OS 層級調校作業
          安裝 VMware Tools
          基礎效能調校
          關閉不必要的控制台功能
          停用不必要的系統服務及工作排程
          取消不必要的啟動服務
          不需要執行磁碟重組
5、Guest OS 自動化調校工具
6、結語





1、前言

在雲端運算議題的推波助瀾之下,以及企業對於投資報酬率(Return On Investment,ROI)、整體持有成本(Total Cost of Ownership,TCO)的概念。近年來,企業部署伺服器虛擬化平台已日漸普及。從 Gartner 的分析數據可以知道,企業將 x86 工作負載運作在 VM 虛擬主機的情況,在 2008 年為 12%2009 年為 19%2010 年為 28%2011 年為 38%2012 年為 48%,如此年年增長的情況表示大部份的企業,對於虛擬化的應用已經從早期的研發測試環境,轉換到正式營運環境當中。

當企業將原本資料中心當中的伺服器完成虛擬化部署之後,接著便會將「使用者桌面環境」也進行虛擬化,除了能夠將使用者桌面環境整合並統一集中管理之外,因應目前 BYOD 的工作風潮,讓使用者透過 BYOD 連接到企業或組織自行打造的虛擬桌面環境,對於企業或組織來說能夠有整體安全性的提升才是最直接的效益。

本篇文章將討論在建置虛擬桌面環境時,對於後續要部署給使用者使用的「黃金映像檔(Golden Image),或稱 Master Image、Parent Image」虛擬桌面環境,針對 VM 虛擬主機層級、Guest OS 層級二方面進行效能調校,以加速虛擬桌面反應並且降低資料中心的工作負載。

圖 1、VMware Horizon View 5.2 虛擬桌面架構示意圖





2、實作環境






3、VM 虛擬主機層級調校作業

在建立黃金映像檔的 VM 虛擬主機時,便應該依照所採用的作業系統給予相對應的虛擬硬體,舉例來說,在虛擬網路卡方面應該要選擇效能最佳化的 VMXNET3 才對,而非使用 E1000

虛擬記憶體

若為 VM 虛擬主機所安裝的作業系統為 32 位元時,虛擬記憶體最大給予「3 GB」即可。雖然在實體主機中安裝 32 位元的作業系統時,可以抓到約 3.25 GB 的記憶體空間,但是在虛擬環境中最大只能識別到 3 GB,即使多給也無法抓取到。

虛擬網路卡

在為 VM 虛擬主機選擇虛擬網路卡時,應該採用與底層 VMware vSphere ESX/ESXi Hypervisor 深度結合,以及與屆時所安裝的 VMware Tools 進行效能最佳化的「VMXNET3」才對,而非使用 FlexibleE1000/E1000e 等其它虛擬網路卡。

圖 2、選擇 VM 虛擬主機所採用的虛擬網路卡

有關所選擇的虛擬網路卡類型及功能說明如下:(相關資訊可參考 VMware KB1001805

  • Vlance: 模擬 AMD 79C970 Pcnet 32bit LANCE 網路卡(10 Mbps),當 Guest OS 無法辦識其它虛擬網路卡時便可以使用此網卡,或者 Guest OS 無法安裝 VMware Tools 時,也可以使用此網路卡。
  • VMXNET: 第一代 vmxnet 虛擬網路卡,GuestOS 安裝 VMware Tools 後便可使用此虛擬網卡。
  • Flexible: 採用舊版 ESX 虛擬化平台,若 Guest OS 未安裝 VMware Tools 便自動採用 Vlance 虛擬網路卡,若 Guest OS 安裝 VMware Tools 則採用效能較好的 vmxnet 虛擬網路卡。
  • E1000: 模擬 Intel 82545EM Gigabit 網路卡,部份 Guest OS 當中已經內建此虛擬網路卡驅動程式,例如,Linux 2.4.19、Windows XP Professional(64bit)、Windows Server 2003(32bit)...等,不需安裝 VMware Tools 便可以直接使用此虛擬網路卡。
  • E1000e: 模擬 Intel 82574 Gigabit 網路卡,至少為 Virtual Machine Version 8 或更新版本才能使用,大部份的 Linux 作業系統並不支援採用此虛擬網路卡(運作於圖形介面時會有問題!!)。
  • VMXNET2: 第二代 vmxnet 虛擬網路卡,GuestOS 安裝 VMware Tools 後便可使用此虛擬網卡,從 ESX/ESXi 3.5 版本之後便能使用並且支援相關進階功能,例如,Jumbo Frames、Hardware Offloads...等(若採用的 Guest OS 為 Solaris,則不支援 Jumbo Frames 等進階功能)。
  • VMXNET3: 第三代 vmxnet 虛擬網路卡,至少為 Virtual Machine Version 7 或更新版本才能使用,當 GuestOS 安裝 VMware Tools 後便可使用此虛擬網卡,支援更多網路進階功能,例如,RSS(Receive Side Scaling)、IPv6 Offloads、MSI/MSI-X...等(若採用的 Guest OS 為Solaris,則可支援 Jumbo Frames 功能)。



圖 3、VMXNET2 及 VMXNET3 網路吞吐量比較表

請注意!! 在 VMware Horizon View 虛擬桌面平台環境中,若所安裝的黃金映像檔VM虛擬主機為 Windows 7 作業系統,並且採用 VMXNET3 虛擬網路卡時,請安裝相對應的 Windows Hotfix,以避免發生「STOP 0x0000007B」錯誤 (相關資訊可參考 VMware KB 2007319)。




虛擬硬碟控制器

在虛擬硬碟控制器(SCSI Controller)方面,若黃金映像檔VM虛擬主機所要安裝的作業系統為「Windows XP」並且,採用的虛擬化平台為「舊版 VMware vSphere ESX 4.x」時,那麼建議您採用預設的「BusLogic Parallel」虛擬硬碟控制器,若要採用速度較快的 LSI Logic Parallel 虛擬硬碟控制器時,請先至 LSI 官方網站下載 LSI20320-R SCSI Adapter 驅動程式,以便在安裝 Windows XP 時按下 F6 鍵更新硬碟驅動程式,否則在安裝 Windows XP 作業系統時,可能會回應找不到硬碟控制器而使安裝程序中斷,或者安裝後發生 BSOD(Blue Screen of Death)的當機情況 (相關資訊可參考 VMware KB 2004740)。

若採用的虛擬化平台為「新版 VMware vSphere ESXi 5.x」時,那麼建議您為 Windows XP 虛擬主機配置「LSI Logic Parallel」虛擬硬碟控制器,若要採用舊有 BusLogic Parallel 虛擬硬碟控制器的話,請下載 VMware SCSI Driver Floppy Image(vmscsi-1.2.0.4.flp),以便在安裝 Windows XP 時按下 F6 鍵載入硬碟驅動程式,否則在安裝 Windows XP 作業系統時,可能會回應找不到硬碟控制器而使安裝程序中斷,或者安裝後發生 BSOD(Blue Screen of Death)的當機情況 (相關資訊可參考 VMware KB 2007603)。

倘若黃金映像檔所要安裝的作業系統為 Windows 7/8 時,那麼建議您為 VM 虛擬主機配置「LSI Logic SAS」虛擬硬碟控制器。雖然 Windows 7/8 也支援採用「PVSCSI(VMware Paravirtual SCSI)」的虛擬硬碟控制器,且 PVSCSI 硬碟控制器的特色為可以減輕 ESX/ESXi Host 的 CPU Workload,但它適合運作在「高 IOPS 需求環境中」,根據 VMware 官方統計當 VM 虛擬主機的資料量讀寫「超過 2,000 IOPS」時,才適合使用 PVSCSI 虛擬硬碟控制器,否則容易適得其反 (相關資訊可參考 VMware KB 1010398KB 1017652)。

圖 4、選擇 VM 虛擬主機所採用的虛擬硬碟控制器



虛擬硬體版本

請為 VM 虛擬主機配置最新的虛擬硬體版本,以便得到最好的虛擬硬碟支援度,舉例來說,當採用虛擬硬體版本 7 時,虛擬記憶體最大支援度為 255GB,而採用虛擬硬體版本 8 時最大可支援至 1TB

若您採用的是虛擬化平台為 VMware vSphere ESXi 5.0 的話,則 VM 虛擬主機預設的「虛擬硬體版本(Virtual Machine Version)」為「8」,若採用 ESXi 5.1 版本的話則可升級虛擬硬體版本至「9」,而採用最新的 ESXi 5.5 版本的話則為虛擬硬體版本「10」。

下列為 VMware vSphere ESX/ESXi 虛擬化平台,所支援及採用的虛擬硬體版本:(相關資訊可參考 VMware KB 1003746




移除或停用不必要的虛擬硬體

將 VM 虛擬主機建立完成之後,因為 VM 虛擬主機當中的每項虛擬硬體,都是由底層 ESXi Host 所提供,因此您可以移除或停用不必要的虛擬硬體,除了能減少 ESXi Host 資源耗用之外也能提升效能,對於屆時的 Guest OS 也可以免去硬體偵測及連接的動作,有效加速黃金映像檔的系統效能及反應。

請編輯 VM 虛擬主機設定內容,預設情況下會為 VM 虛擬主機配置 Floppy Drive,但目前絕大部份的 Windows 作業系統並不需要 Floppy 裝置,因此可以點選該虛擬裝置後按下 Remove 鈕進行移除的動作。

圖 5、移除 VM 虛擬主機中不必要的 Floppy Drive 裝置

接著,切換到 Options 頁籤後,請先點選 General 項目後,在右方 Settings 區塊內取消Enable logging」選項,以便 ESXi Host 針對此台 VM 虛擬主機「不」開啟日誌功能,因為在 Horizon View Administration 管理視窗中,便可以查看到關於 VM 虛擬桌面的相關資訊。

圖 6、取消 VM 虛擬主機的日誌功能

請點選 Boot Options 項目,在右方選項中請勾選在 Force BIOS Setup 區塊內「The next time the virtual machine boots, force entry into the BIOS setup screen」項目,即稍後 VM 虛擬主機啟動時會自動先進入 BIOS 設定畫面,或者您可以在 VM 虛擬主機開機畫面中按下 F2 鍵,以便稍後可以在 BIOS 設定模式中,將 Floppy、COM、LPT 等裝置直接「停用(Disabled)」。

圖 7、勾選 Force BIOS Setup 區塊項目,以便直接進入 BIOS 設定畫面

順利進入 VM 虛擬主機的 BIOS 設定畫面後,在 Main 頁籤中你可以看到「Lagacy Diskette A :」仍有使用「1.44/1.25 MB」的 Floppy 裝置,請切換到該項目後調整為「Disabled」。

圖 8、在 BIOS 設定模式中停用 Floppy 裝置

接著,切換到 Advanced 頁籤中的 I/O Device Configuration 項目,將 Serial Port A、Serial Port B、Parallel Port、Floppy disk controller 等所有裝置,都設定為「Disabled」後請按下 F10 鍵離開並存檔,然後進行 Guest OS 的作業系統安裝程序。

圖 9、在 BIOS 設定模式中停用不必要的 I/O 裝置



停用熱新增/熱插拔功能

預設情況下運作在 ESXi Host 上的 VM 虛擬主機,均具備「熱新增(Hot-Add) / 熱插拔(Hot-Plug)」功能,因為相較於提供線上營運不中斷的伺服器來說,VM 虛擬桌面並不常常需要使用到此功能,因此同樣的調校理念,我們將此功能停用以使 VM 虛擬主機更加精簡效能更好。

您可以使用二種方式來進行熱新增/熱插拔功能的停用,若是採用 vSphere Client 管理工具的話,請在 VM 虛擬主機內容設定視窗中,依序點選「Options > General > Configuration Parameters > Add Row」,然後在 Name 欄位輸入「devices.hotplug」在 Value 欄位輸入「false」後,按下 OK 鈕即可。或者您可以使用 SSH 登入 ESXi Host 主機後,修改該 VM 虛擬主機的 .vmx 設定檔,並在設定檔最底部加上一行「devices.hotplug = "false"」設定後,存檔離開即可。(相關資訊可參考 VMware KB 1012225

圖 10、停用虛擬主機熱新增/熱插拔功能





4、Guest OS 層級調校作業

完成黃金映像檔在VM虛擬主機方面的調校作業,以及為 Guest OS 作業系統完成安裝之後,下列便要說明 Guest OS 層級方面,有哪些可以進行效能調整的項目。

安裝 VMware Tools

許多人對於 VMware Tools 的功能認知上有很大的誤差,僅認為安裝 VMware Tools 不過就是圖形操作介面中,滑鼠運作較為順暢或者僅僅與虛擬化平台進行時間校對而以,事實上許多 VMware 的進階功能,例如,Memory Ballooning 便是要透過虛擬主機上的 VMware Tools 來進行觸發及監控的,下列為舉例安裝 VMware Tools 後所提供的進階或調校功能:

  • Virtual Device Drivers: 虛擬裝置驅動程式,提供虛擬裝置最佳化的驅動程式,例如,USB 3.0、3D Graphics、HD Audio。
  • Virtual Machine HeartBeat: 虛擬主機存活偵測,例如,虛擬主機運作的作業系統為 Windows 並且出現藍色當機畫面時,進行作業系統重新啟動的動作,此偵測機制便是依靠安裝 VMware Tools 後才支援。
  • Improved Mouse: 滑鼠指標最佳化,否則滑鼠在虛擬主機圖形介面移動時速度會很慢而且卡卡的。
  • Memory Management: 記憶體管理最佳化,虛擬化平台對於運作於其上的虛擬主機其虛擬記憶體才能支援進階管理機制(例如,Memory Ballooning)。
  • Quiescing a File System: 虛擬化平台對於虛擬主機建立快照(Snapshot)時使用。
  • Time Synchronization: 時間校對,使虛擬主機可以直接於虛擬化平台進行系統時間同步校對,但若是虛擬主機已經加入 Windows AD 網域(將自動與 AD 進行時間同步),便建議取消此功能。
  • Gracefully Shutdown: 正常關機程序,使虛擬主機執行正常關機程序(若未安裝 VMware Tools 則為直接斷電 Power Off)。


了解後就開始著手安裝 VMware Tools 吧!! 請開啟虛擬主機控制台(VM Console),點選功能列「VM」選項接著點選「Guest」項目選擇到「Install / Upgrade VMware Tools」,此時虛擬化平台會依目前虛擬主機運作的作業系統版本,自動掛載合適的 VMware Tools 安裝套件到虛擬主機上,依照精靈指示安裝完畢後將會提示您重新啟動。

圖 11、為 VM 虛擬主機安裝 VMware Tools

當 VM 虛擬主機安裝 VMware Tools 完畢後,因為後續用到光碟機的機率很小,因此我們可以將 VM 虛擬主機連接光碟機的設定斷開,並且在 Windows(Guest OS)作業系統中「停用」光碟機裝置,以節省資源耗用。

圖 12、將 VM 虛擬主機連接光碟機的設定斷開

圖 13、在 Guest OS 當中停用虛擬光碟機裝置 



基礎效能調校

在 Guest OS 系統效能調校方面,將以 Windows 7 為範例進行說明。首先,可以將螢幕保護機制設定為「」或者是「空白」。

圖 14、關閉螢幕保護機制

由於 VMware Horizon View 虛擬桌面,主要是採用 PCoIP(PC-over-IP)通訊協定進行溝通,因此可以將 Windows 的「遠端協助、遠端桌面」功能關閉,除了避免開啟不必要的 Ports 號減少被攻擊面之外,也可以節省系統資源耗用。

圖 15、關閉遠端協助及遠端桌面功能

由於虛擬桌面的應用方式通常會額外保護使用者資料,因此並不需要內建的系統還原機制,請將系統保護設定關閉,請依序點選「系統內容 > 系統保護 > 設定 > 關閉系統保護」即可。

圖 16、關閉系統保護機制

在視覺效果中建議調整為「最佳效能」,但是以 Windows 7 作業系統來說,左下角的開始選項會變成單調整「開始鈕」,所以您可以僅勾選「在視窗和按鈕上使用視覺樣式」項目,便可以保留 Windows 7 的開始鈕圖示。此外,在預設的情況下虛擬記憶體(PageFile)大小為系統自動管理,建議可以調整成固定大小,以避免系統為了因應負載而動態調整虛擬記憶體增加效能損耗。

圖 17、調整佈景主題效能選項



關閉不必要的控制台功能

關閉控制台中不必要的功能,例如,在預設情況下會開啟「Tablet PC 元件」功能,一般虛擬桌面的使用者大部份不會使用此功能便可以進行關閉,其它功能請您視運作環境而定進行關閉。

圖 18、關閉控制台中不必要的功能



停用不必要的系統服務及工作排程

同樣的系統效能調校概念,非必要或環境中沒有使用到的系統服務便進行停用,例如,磁碟重組服務(Disk Defragmenter),雖然預設的服務啟動類型為「手動」,但是會透過工程排程的方式每週嘗試進行磁碟重組。因此,我們除了將磁碟重組服務的啟動類型設定為「停用」之外,也將磁碟重組的工作排程進行「停用」的動作。

圖 19、停用磁碟重組系統服務

圖 20、停用磁碟重組工作排程



取消不必要的啟動服務

當作業系統安裝應用程式了,為了加速應用程式的開啟速度,便會在「啟動」項目中增加以便開機時便開啟應用程式,之後再開啟該應用程式時由於已經在背景執行待命中,因此很快就能開啟完成。但是,當作業系統開機啟動的應用程式越多,不但會減慢開機速度同時對於系統記憶體的負擔也加重。因此,鑑於系統效能考量的因素下,僅保留 VM 虛擬主機與 ESXi Host 溝通的唯一服務「VMware Tools」即可。

圖 21、取消不必要的啟動服務



不需要執行磁碟重組

在實體主機環境中,我們常常會習慣透過磁碟重組的動作,以便讓破碎的資料區塊能夠整理到連續區段,以加速資料的讀取動作。但是,在虛擬化環境當中的 VM 虛擬主機並「不需要」執行磁碟重組的動作 !! 簡單來說,當 VM 虛擬主機執行磁碟重組後,不但會使得虛擬磁碟空間變得「膨脹(Bloats Up)」之外,連帶造成的影響便是效能下降,下列便列舉在某些環境中執行磁碟重組造成的影響:

  • 當 VM 虛擬主機採用 Thin Provisioned 硬碟格式時,執行磁碟重組後將會因為大量移動 File Block,進而導致 VMDK 膨脹而佔用更多磁碟空間。
  • 採用 Linked Clone 技術(vCloud Director, Horizon View)產生的 VM 虛擬主機,執行磁碟重組後會造成 Linked Clone Redo Logs 膨脹而佔用更多磁碟空間。
  • 採用 Replicated 技術(Site Recovery Manager, vSphere Replicator)的 VM 虛擬主機,執行磁碟重組後會導致更多資料量傳送到 Replicated Site。
  • 當 VM 虛擬主機建立 Snapshot 時,執行磁碟重組後會導致 Snapshot 膨脹而佔用更多磁碟空間。
  • 採用 Change Block Tracking(VMware Data Recovery)技術時,執行磁碟重組後會增加 Blocks 數量,造成備份時間拉長。





5、Guest OS 自動化調校工具

如果您覺得要自行一步一步操作 Guest OS 的系統調校作業太過麻煩,在 VMware Labs 網站上已經有針對 Guest OS 效能調校的自動化工具「VMware OS Optimization Tool」,此自動化效能調校工具支援的作業系統有:

  • Windows XP / 7 / 8
  • Windows Server 2008 R2 / 2012


下載並安裝該工具後,在一開始的分析頁面中,您可以按下「分析(Analyze)」鈕進行內建項目的調校分析,並呈現此台主機有哪些建議可以調校的項目。

圖 22、分析此台主機有哪些未經調校項目

您可以勾選或取消勾選要執行調校的項目,確認後按下「調校(Optimize)」鈕後便進行相關的調校項目,並在 Optimize 頁面中顯示執行了哪些調校項目(之後可以切換到 History 頁面執行「回復(Rollback)」動作)。

圖 23、執行系統調校作業並顯示調校項目

您也可以切換到「範本(Template)」頁面,調整相關的系統調校設定值,以打造出符合您運作環境的最佳效能調校設定值。

圖 24、調整系統調校設定值





6、結語

當建置虛擬桌面環境時,各方面的調校作業都很重要,例如,ESXi Host、VM Level、Guest OS Level...等,在在都影響到後續的使用者操作體驗,某些系統調校作業雖然看似不起眼,也可能經過調整後只能提升點滴效能。雖然調校一台虛擬桌面可能僅能減少 ESXi Host 0.1% 的效能損耗,但是,當虛擬桌面主機數量一多,例如,有 100 虛擬桌面主機時,便能發揮螞蟻雄兵的威力,也就可以幫 ESXi Host 減少 10% 的效能損耗,連帶也能得到虛擬桌面效能提升的益處。