90 期 - 完美規劃儲存與資源,部署高效能虛擬化桌面


網管人雜誌

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





文章目錄

前言
Q1、如何估算 Windows Disk I/O 工作負載?
Q2、如何規劃 Windows XP/7 的虛擬資源?
Q3、如何估算儲存設備的 IOPS 效能數值?
Q4、儲存設備該採用哪種傳輸協定?
Q5、如何選擇虛擬桌面的複製方式?
Q6、如何計算虛擬桌面佔用空間?
Q7、如何回收虛擬桌面佔用空間?
結語




前言

虛擬化議題已經日漸發酵,許多企業及組織已經從早期持觀望態度到引進內部測試環境,待確定虛擬化技術真的可行後也紛紛將線上營運服務遷移到虛擬化環境當中,我們可以從 VMware 委託 Forrester Consulting 及 ITR 所進行的雲端成熟度指標調查(調查時間為 2012 年10月),在調查針對 6,500 位資深 IT 工作者的結果當中,可以看到台灣的雲端成熟度指標 Cloud Barometer 已經到達 44%

圖 1、VMware 2012 雲端成熟度指標調查

事實上,虛擬化基礎架構只是踏入雲端的第一步,也就是為日後的應用環境將地基先打穩以便硬體資源得以彈性擴充及充分利用,所以將伺服器完成虛擬化建置之後的下一步是什麼呢? 通常接著會將「桌面環境」也進行虛擬化,除了得以將使用者桌面環境得以整合收容統一集中管理之外,對於企業或組織來說整體安全性的提升才是最直接的效益。

但是桌面虛擬化與伺服器虛擬化在規劃上有很大的不同,以選擇儲存設備為例雖然伺服器虛擬化環境也需要考量儲存設備的 IOPS 效能,但其實並不會需要精準計算到一分一毫(因為 VM 虛擬主機的數量相比之下較少)。然而桌面虛擬化就不是這麼回事,因為若沒有考慮並計算好儲存設備的 IOPS 效能時,那麼當使用者連上虛擬桌面環境後便會發現操作回應時間緩慢或者卡卡的,當使用者體驗不好的情況之下所以常常容易導致虛擬桌面專案導入失敗,因此本篇文章將與讀者討論在規劃虛擬桌面環境時,對於選擇儲存設備上應該注意哪些項目,以及該如何估算儲存設備及使用者操作環境的 IOPS 效能數據,以求屆時使用者能順暢的操作其虛擬桌面環境。





Q1、如何估算 Windows Disk I/O 工作負載?

Question: 在虛擬桌面環境中儲存設備的效能非常重要,那麼我們應該要如何概要估算每個 Windows 虛擬桌面環境的 Disk I/O 負載? 現有的實體桌面主機應用環境為何? 現有的實體桌面主機其 CPU/Memory 規格為何? 是否常常有磁碟 I/O 的操作? 是否常常有網路頻寬使用率高的情況?...等。

Answer: 首先,要設計出適當的儲存空間大小之前您需要了解「磁碟 I/O(Disk Input and Output)」,以及使用者端作業系統 Windows XP 及 Windows 7 的特性,並且區隔出「輕度(Light)」以及「重度(Heavy)」使用者之間的差別。

所謂輕度使用者通常就是利用桌面環境處理日常工作所需,例如,E-Mail(Outlook、Notes)、Office(Word, Excel)、Web Browser...等,簡單來說就是一般文書處理的工作。而重度使用者除了上述一般文書處理工作之外,還要同時處理如大型簡報檔案、美術圖檔、3D 圖檔...等,一般情況下使用者在大部份 90% 的工作負載都會是磁碟 I/O 的「讀取(Read)」部份(當然仍有例外!!)。

舉例來說 NTFS 檔案系統一般資料分配大小為 4 KB(Allocation Size)以及 64 KB(Block Size)的資料區塊大小,而 Windows 7 作業系統資料讀寫作業一般使用 1 MB 的資料區塊大小進行,所以我們以下列的統計表格當中重度使用者的磁碟讀寫 I/O 值為  7 MB/Sec 來計算,並且以 64 KB 資料區塊大小計算的話,運作 20 台 Windows 7 作業系統的虛擬桌面環境大約需要 112 IOPS


但若是非一般環境的重度使用者的話,則通常我們會預估資料讀取部份為 40%,而資料寫入部份則為 60% 來進行估算,甚至在某些極重度使用者的環境當中資料寫入部份可能高達 80 ~ 90 %

圖 2、重度使用者資料讀取與寫入比例

如果,您覺得這樣的統計數據太過二極化,那麼您可以將使用者環境等級再區分的更細緻一點,例如 有些虛擬桌面可能配置了 1 顆虛擬處理器(1 vCPU)以及 1 GB 的虛擬記憶體,因此只執行些許的應用程式便可以完成日常工作所需,但有些使用者可能就需要更多的虛擬資源如 2 顆虛擬 CPU 及 3 GB 的虛擬記憶體才得以完成工作,那麼該怎麼預估這些虛擬桌面環境屆時會使用到多少 IOPS 儲存效能呢?






Q2、如何規劃 Windows XP/7 的虛擬資源?

Answer: 目前,使用者桌面環境最常使用的作業系統為 Windows XP 以及 Windows 7,雖然 Windows XP 作業系統即將在 2014 年 4 月 8 日終止支援,但是目前仍有許多企業或組織的應用程式運作在此作業系統環境當中,因此虛擬桌面環境仍有可能使用此作業系統。

在虛擬桌面環境的規劃上由於 Windows XP 64 位元版本並不普及,因此在下列的虛擬資源表格中並不會考慮該版本,而 Windows 7 作業系統部份則有 32 位元及 64 位元,在 Windows 7 32 位元版本當中,因為會有記憶體支援上限的問題所以一般在規劃上最多不會分配超過 3 GB 的記憶體(在實體機上 Windows 7 32 位元版本約可抓到 3.25 GB記憶體,但虛擬環境中只會抓到 3 GB 記憶體)。






Q3、如何估算儲存設備的 IOPS 效能數值?

Answer: 儲存設備在虛擬桌面環境當中擔任非常重要的角色,所以在選購儲存設備時您必須要了解所選擇的儲存設備(NAS 或 SAN)其資料讀寫效能如何,也就是 IOPS(I/O operations Per Second)數值,首先硬碟的 IOPS 其計算公式如下:

圖 3、硬碟 IOPS 計算公式

但是,往往在選擇儲存設備時常常會令人陷入二難的局面,也就是如何在「效能(Performance)及容量(Capacity)」之前進行取捨,舉例來說 7,200 RPM SATA3(Serial ATA)的主流硬碟在容量上已經可達到 3 ~ 4 TB 空間大小,並且在價格上也通常令人感到滿意,但是在效能表現方面也就是 IOPS 數值則大約落在 75 左右。而 15,000 RPM SAS(Serial Attached SCSI)主流硬碟在容量上為 300 ~ 900 GB 空間大小,雖然採購費用是 SATA 硬碟的好幾倍並且空間也小上許多,但是其 IOPS 效能數值大約可達 175 左右。

當然,如果採用的是 SSD(Solid-State Disk)固態硬碟的話,因為它不像傳統硬碟需要 磁盤、讀寫頭...等零件,並使用 Flash Memory 如 EEPROM(Electronically Erasable Programmable Read Only Memory)進行資料的讀寫,其中又可區分為二種等級 SLC Flash(Single Level Cell)儲存 One Bit 在每個 Cell 當中,以及 MLC Flash(Multi Level Cell)則是儲存 Multiple Bits 在每個 Cell 當中。所以通常來說 SLC Flash 相較於 MLC Flash 大約多出「10 倍」的資料寫入能力(當然價格也貴上許多 !!)。

所以,如何在選擇儲存設備時在效能與容量之間取得平衡點相當重要,下列表格當中為目前市面上常見的硬碟其 IOPS 效能表現:


除了硬碟的類型及轉速影響 IOPS 效能數值之外,還有磁碟陣列(Redundant Array of Independent Disks,RAID)的「處罰(Penalty)」及「快取(Cache)」部份需要考量。因為不同類型的磁碟陣列 RAID 模式會影響到整體 IOPS 效能數值,舉例來說 建立 RAID-5、RAID-6 磁碟陣列類型時,因為要進行「同位元檢查(Parity Checking)」所以雖然整體容量空間損失較少,但是帶來的影響則是在 IOPS Write I/O Penalty 較多。


在大致了解硬碟種類及轉速所帶來的 IOPS 效能數值,以及選擇 RAID 磁碟陣列類型所帶來的資料寫入效能處罰之後,那麼我們可以來估算選擇儲存設備後所能得到的 IOPS 效能數值。

圖 4、儲存設備 IOPS 效能數值估算公式

所以,如果你有「一台」VM 虛擬主機其工作負載為 25 IOPS,並且資料的讀取及寫入比例為 40/60,而儲存設備的 RAID 磁碟陣列採用 RAID-5,那麼表示說你後端的儲存設備要負載這樣的一台 VM 虛擬主機時必須具備「(25 x 0.4 +((25 x 0.6)x4)= 70 IOPS」才行。

同樣的條件下如果屆時這台儲存設備所要負載的 VM 虛擬主機是「500 台」時,那麼表示後端的儲存設備必須具備「((12,500 x 0.4)+((12,500 x 0.6)x4))= 35,000 IOPS」才行。





Q4、儲存設備該採用哪種傳輸協定?

Answer: 目前,在虛擬化環境當中皆支援儲存設備採用 FCP(Fiber Channel Protocol)、FCoE(Fiber Channel Protocol over Ethernet)、iSCSI(Internet Small Compurter System Interface)等儲存區域網路(Storage Area Network,SAN)環境,以及採用 NFS(Network File System)的網路連接儲存(Network Attached Storage,NAS)環境。

SAN(FC、FCoE、iSCSI)儲存區域網路技術為採用 Block-Level 協定的 Raw Storage 類型,從ESX 2.0 版本開始便支援 FC 協定,對於 Hypervisor 來說它就像使用本機硬碟一樣,其分享的儲存空間將會由 ESXi 主機將所掛載的 LUN 空間格式化為 VMFS 檔案系統,且 VM 虛擬主機的硬碟格式可以支援 Thick(Lazy、Eager),但是必須注意最多只能有 32 台 ESXi Host 同時存取的限制。

除此之外 Hypervisor 雖然也支援 RDM(Raw Disk Mapping)機制,但是若使用於虛擬桌面環境的話 Windows XP / 7 不並支援此機制。同時現在許多應用都採用 iSCSI 儲存設備,但是若連接 iSCSI 儲存設備時採用軟體式(也就是使用一般網路卡)則會增加 ESXi 主機的 CPU 負載,當然您可以使用 Jumbo Frame 機制來提高 iSCSI 的傳輸效率,ESXi 主機支援的 Frame Size 為 9000 Bytes

NAS(NFS)File-Level 協定,從 ESX 3.0 版本便開始支援 NFS 傳輸機制,因為 NFS 已經採用儲存設備本身或網路服務的檔案系統(例如 Ext4、ZFS...等),所以對於 Hypervisor 來說則不會將分享資源進行格式化,同樣的有著最多只支援 32 台 ESXi Host 同時存取的限制,並且 NFS 同樣為軟體式驅動(Software Driven)的方式進行存取,所以也會增加 ESXi 主機 CPU 負載,最後值得注意的是採用 NFS 的話,那麼 VM 虛擬主機將只支援 Thin 磁碟格式。

下列表格當中整理了 FCP、FCoE、iSCSI、NFS 等各種儲存傳輸協定當中,若採用的是 10 Gbps 網路環境時在理論上可達到的傳輸速度及 IOPS 效能。






Q5、如何選擇虛擬桌面的複製方式?

Answer: 在虛擬桌面的環境當中當要執行部署作業以前,您必須要決定採用何種大量部署方式如 完整複製(Full Virtual Machine Clones)、連結複製(Linked Virtual Machine Clones)、磁碟陣列複製(Array-Based Virtual Machine Clones)、VCAI 複製(VCAI Virtual Machine Clones)等,而這些複製方式又分別有什麼優缺點。

完整複製(Full Virtual Machine Clones)是由 vSphere 發起 Full-Clone 操作,通常這種複製方式都搭配使用專用虛擬桌面(Dedicated Desktop)時使用,也就是每個虛擬桌面環境都有專屬的使用者,而每次連結都到同一個虛擬桌面環境。但此機制的缺點是 Master Image 若是 60 GB,那麼複製出來的 VM 虛擬主機也同樣都是 60 GB

圖 5、完整複製(Full Virtual Machine Clones)運作模式

連結複製(Linked Virtual Machine Clones)則是採用 View Composer 機制,它會為每個 VM 虛擬主機建立「唯一指標(Unique Pointers)」,因此每台 VM 虛擬主機所佔用的空間只有「差異」的部份而以,與 Master Image 佔用空間相較之下通常可以減少 50 ~ 70 % 的空間大小。

圖 6、連結複製(Linked Virtual Machine Clones)運作模式

磁碟陣列複製(Array-Based Virtual Machine Clones)簡單來說,便不是採用 vSphere 完整複製機制,而改為採用 Block-Based Array Cloning 機制,也就是儲存設備針對 Master Image 所使用的「資料區塊 Block」進行完整複製。

圖 7、磁碟陣列複製(Array-Based Virtual Machine Clones)運作模式

VCAI 複製(VCAI Virtual Machine Clones),如果所使用的 NAS 儲存設備支援 VAAI(vSphere API for Array Integration)機制的話,那麼當 View Composer 在準備進行複製部署作業時,便會透過 VCAI(View Composer Array Integration)機制以高效率模式執行。但是目前 VCAI 機制仍處於技術預覽(Tech Preview)階段,並且僅支援採用 NFS 儲存傳輸協定,所以可能不適合您目前的部署環境需求。

圖 8、VCAI 複製(VCAI Virtual Machine Clones)運作模式





Q6、如何計算虛擬桌面佔用空間?

Answer: 在部署虛擬桌面之前,除了確認採用的複製方式為何之外,您還必須要計算每個虛擬桌面所會佔用的空間大小,以協助你在選擇儲存設備時能達到效能及容量之間的平衡點。

首先,虛擬桌面的佔用空間除了原本的作業系統資料之外,還有 Virtual Machine Swap 檔案(.vswp)會佔用空間,這個檔案是虛擬桌面「開機(Power On)」時才會產生,預設會跟 VM 虛擬主機的記憶體一樣大小,所以若 VM 虛擬主機的記憶體為 4 GB那麼這個檔案大小也會是 4 GB,除非您為 VM 虛擬主機設定了「保留(Reservation)」機制,例如 您為 VM 虛擬主機設定了 3 GB 的虛擬記憶體保留,那麼 Virtual Machine Swap 檔案就只會佔用 1 GB 而以,除此之外還要保留一些額外開銷(Overhead)

圖 9、完整複製(Full Clone)模式虛擬桌面佔用空間

圖 10、連結複製(Linked Clone)模式虛擬桌面佔用空間

最後,當使用者在操作虛擬桌面時還會需要 使用者設定檔(User Profile)、應用程式資料(Application Data)、我的文件(My Documents)...等資料,也就是使用者資料(User Data)以及企業資料(Corp Data),所以您還必須加上這些佔用空間才對。

圖 11、完整/連結 複製模式虛擬桌面佔用空間估算





Q7、如何回收虛擬桌面佔用空間?

Answer: 通常為了儲存設備的容量考量常常會使用連結複製(Linked Clone)方式來節省磁碟空間,但是隨著使用者建立新資料又刪除不必要的舊資料,這些曾經被佔用的空間在早期是無法「自動回收」的。現在您可以透過 SE Sparse(Space-Efficient Sparse Virtual Disks)機制自動回收沒有被使用到的資料區塊,此空間自動回收機制是採用「Wipe -> Shrink」方式達成。

圖 12、Space-Efficient Sparse Virtual Disks 機制運作原理





結語

透過本文的說明讀者應該已經了解到,如果您計劃部署虛擬桌面環境以前,應該要先將使用者目前使用的實體桌面環境其工作負載以及 IOPS 效能進行估算,接著在儲存設備的選購上除了採用的硬碟種類將影響 IOPS 效能之外,採用的 RAID 磁碟陣列模式以及儲存傳輸協定也影響甚深。例如 儲存設備預估太大造成資源浪費以及採購預算過高,或者預估不足造成 IOPS 效能不夠應付虛擬桌面使用,造成使用者操作體驗不良,但唯有如此盡量貼近實務的 IOPS 效能估算之後,才能有效避免日後真正部署時產生的任何效能問題。