Related Posts Plugin for WordPress, Blogger...

網管人雜誌

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

文章目錄

1、前言
2、實作環境
3、實體伺服器硬體規格及功能
          中央處理器(CPU)
          記憶體(Memory)
          儲存設備(Storage)
          週邊匯流排及介面卡(Peripheral Bus & Adapter)
          BIOS/UEFI 設定
4、ESXi 主機效能調校
          電力配置優化
          啟用 CBRC 讀取快取機制
          運作 VMware Tools 的 VM 虛擬主機
          VM 虛擬主機優化調校
5、結語

1、前言

VMware 在 2001 年 3 月時發佈 VMware ESX Server 1.0 虛擬化平台,至 2007 年 10 月發佈的 VMware ESX Server 3.5,此時的 VMkernel 一直都仍是 32 bit,直到 2009 年 5 月發佈的 VMware vSphere 4.0 開始,VMkernel 才開始改變為原生 64 bit

並且從 2011 年 8 月發行的 VMware vSphere ESXi 5.0 開始,VMware 官方也正式宣佈不會再發行含有 COS(Service Console)的 ESX 版本,也就是放棄由 RHEL 核心修改的 COS (基礎核心約 2 GB)與 VMkernel 協同運作模式,改採更精簡的 VMkernel (基礎核心約 150 MB)負責所有的工作負載。若讀者想更進一步了解 ESX/ESXi 二者之間的運作架構,其詳細的功能性及支援項目有哪些不同時,可參考 VMware KB 2005377

圖 1、VMware vSphere ESXi 運作元件示意圖

最新的 VMware vSphere ESXi 版本,為 2014 年 3 月所發佈的 VMware vSphere ESXi 5.5,但是在 ESXi 5.5 當中預設所採用的 OpenSSL 版本,也是同樣有包含 OpenSSL Heartbleed 弱點的版本,在新版 ESXi 尚未發行前請依照 VMware KB 2076665 進行安全性修正作業,將 ESXi 5.5 當中預設的 OpenSSL 版本,升級為不受 Heartbleed 弱點影響的 1.0.1a-f 版本。

2、實作環境

  • 發行公司: VMware
  • 官方網址: http://www.vmware.com
  • 作業系統: VMware vSphere ESXi
  • 軟體版本: 5.5.0 Update1
  • 評估下載: http://goo.gl/grSwyP
  • 安裝解說: VMware KB 2052439


3、實體伺服器硬體規格及功能

當您的企業或組織要採購擔任虛擬化平台的實體伺服器之前,除了應該先參考 HCL(Hardware Compatibility List)了解哪些硬體支援 vSphere ESXi,以及所採購的硬體資源是否符合最低需求,舉例來說 雖然前述中有提到 vSphere ESXi 基礎核心僅佔用 150 MB,但是 VMware 官方建議實體伺服器至少應具備 4 ~ 8 GB 的記憶體空間才對。

此外,採購的實體伺服器應該還要考慮哪些硬體規格及細項,以避免某些元件屆時發生工作負載上的效能瓶頸,舉例來說 在整體建置案預算有限的情況之下,因太過著重於 CPU 處理能力及快取大小,卻反而忽略了實體記憶體的部份,造成採購了具備四顆 CPU 處理器記憶體僅 32GB 的實體伺服器,可想而知將造成屆時「伺服器合併(Server Consolidation)」比率降低。並且當採購的實體伺服器到貨後在正式上線服務前,應至少燒機 72 小時以確保相關伺服器元件運作正常。

中央處理器(CPU)

從 VMware vSphere 4.0 版本開始 VMkernel 為原生 64 bit 運作架構,因此,請選擇具備更多「定址空間(Address Space)」的 64 位元處理器,以及更高容量的 L2/L3「快取(Last Level Cache)」,若預算足夠的情況下也可採購最新一代的處理器如 Intel Haswell 支援 L4 快取。

若屆時運作在 ESXi 虛擬化平台上的 VM 虛擬主機,並沒有高處理器「時脈(Clock Rate)」的需求時(例如,需要繪圖功能的 VDI VM),在採購時便不需要追求處理器的時脈,而是更應該著重在 CPU 處理器的「核心(Cores)」數量方面,以便有效承載更多 VM 虛擬主機,提高伺服器合併比率。

雖然 VMware 支援「二進位轉譯(Binary Translation)」技術,所以實體伺服器即使不支援硬體輔助虛擬化技術,仍然能在其上運作 VM 虛擬主機(僅限 32 位元作業系統)。所以,為了因應虛擬化平台的繁重工作負載,請為實體伺服器選購,至少支援「第一代」硬體輔助虛擬化技術的中央處理器如 Intel-VTxAMD-V

當然,若選購的 CPU 處理器支援「第二代」硬體輔助虛擬化技術 MMU(Memory Management Unit),或稱為第二層位址轉譯 SLAT(Second Level Address Translation)技術,例如 Intel EPT(Extended Page Tables) 或 AMD NPT(Nested Page Tables)/ RVI(Rapid Virtualization Indexing)更好,屆時便能透過 TLB(Translation Lookaside Buffer)機制(虛線指標),讓 VMM(ESXi) 使用「陰影分頁技術(Shadow Page Tables)」把 VM 虛擬機器的記憶體對應到實體主機的記憶體,有效減少 ESXi 虛擬化平台維護 虛擬/實體 記憶體的工作負載,進而提升主機整體工作效率。

圖 2、第二代虛擬化技術 MMU,有效減少記憶體虛擬化層層轉換運作示意圖

若能支援「第三代」硬體輔助虛擬化技術 I/O MMU Virtualization,例如,Intel VT-d(Directed I/O)、AMD AMD-Vi / IOMMU 虛擬化機制,則能有效處理 I/O DMA 傳輸及裝置中斷(Device Interrupts)作業,簡單來說就是讓 VM 虛擬主機,可以「直接存取(Direct Access)」伺服器硬體資源如 網路卡(Network Card)、HBA Card(FC-SAN、IP-SAN)、GPU...等,使 VM 虛擬主機達到如「原生(Native)」般的效能。

您可以下載 VMware CPU Identification Utility 工具,並透過該工具進行開機後,便可以確認實體伺服器處理器所支援的虛擬化技術世代。

圖 3、透過 VMware CPU Identification Utility 工具確認 CPU 處理器所支援的虛擬化技術世代

記憶體(Memory)

當您將為數眾多的 VM 虛擬主機運作在虛擬化平台上,可想而知將需要大量的記憶體資源以便因應,因此實體伺服器能安裝的記憶體資源當然愈多愈好!! 但即使如此,實體伺服器的記憶體資源仍然有限,雖然 VMware 擁有 TPS(Transparent Page Sharing)、Memory Ballooning、Memory Compression...等機制,可以多榨出一些記憶體資源給 ESXi 虛擬化平台應用。

但是,若上述記憶體優化機制都用盡而 ESXi 虛擬化平台,其記憶體資源仍不足時此時 ESXi Hypervisor,便會執行「Swapping」的動作(如同 Windows 作業系統執行 Pagefile 一樣),雖然暫時能補足不夠的記憶體空間,讓 VM 虛擬主機能繼續運作,但卻直接影響並降低了實體伺服器的運作效能。

從 vSphere ESXi 5.0 版本開始,您可以規劃讓 ESXi SWAP File 存放在效能接近記憶體的 SSD 固態硬碟當中(支援 PCIe Flash Card、SAS/SATA SSD),並且從 vSphere ESXi 5.5 開始還可結合 vFRC(vSphere Flash Read Cache) 機制協同運作,以便虛擬化平台即使因記憶體資源不足產生 SWAP 時,仍能保持高效能的運作效率(詳請參考 VMware KB 2058983KB 2059285)。

圖 4、vFRC(vSphere Flash Read Cache)機制運作示意圖

同時,應該要選擇支援 NUMA(Non-uniform memory access)架構的實體伺服器,以避免 CPU 處理器與記憶體之間的資料存取行為,因為跨 NUMA 節點存取發生匯流排頻寬不足的問題進而產生存取瓶頸。此外,當採用支援 NUMA 架構的實體伺服器時,必須要注意實體記憶體必須平均分配,以避免因為 NUMA 節點內記憶體空間不足,發生 CPU 處理器仍需跨 NUMA 節點進行記憶體空間的存取。

圖 5、NUMA 架構運作示意圖

儲存設備(Storage)

幫實體伺服器規劃好 CPU/Memory 之後另一個重要的環節就是「儲存設備(Storage)」,不同的硬碟種類(SATA、SAS、SSD)、轉速(7200、10,000、15,000)RPM、磁碟陣列類型(RAID 10、5、6...等),都會影響儲存設備整體的 IOPS(Input/Output Operations Per Second)效能表現,簡單來說 IOPS 便是總合了 Random Read/Write 以及 Sequential Read/Write 的整體表現,通常 Sequential 測試數據上會比較亮眼,但實務上應用程式的資料存取行為通常為 Random Read/Write

在採購原則上,當然是效能最接近記憶體的 SSD 固態硬碟最好(且 PCIe Flash Card 會比 SAS/SATA SSD 更快),但事實上常常會令人陷入二難的局面,也就是如何在「效能(Performance)及容量(Capacity)」之間進行取捨,舉例來說 7,200 RPM SATA3(Serial ATA)主流硬碟,在空間容量上已經可以達到 3 ~ 4 TB 空間大小,並且在價格上也通常令人感到滿意,但是在 IOPS 效能表現方面大約為 75 左右。而 SSD(Solid State Drive)主流硬碟在容量上為 256 ~ 512 GB 空間大小,雖然在採購費用上是 SAS / SATA 硬碟的好幾倍並且空間也小上許多,但是 IOPS 效能數值隨便都可達 2,000 以上。

但 IOPS 效能並非只有硬碟介面及磁碟陣列模式會影響,還有包含其它快取機制在內,舉例來說 當伺服器安裝的磁碟陣列卡(RAID Card),在加裝了「快取 Cache(RAID Card Memory)」及「智慧型電池 BBU(Battery Backup Unit)」之後,便能開啟資料「寫入快取 (Write Cache with BBU)」機制,這樣的快取機制能有效降低磁碟陣列模式,所導致的資料寫入效能處罰影響。

此外,應採購支援 VAAI(VMware vStorage APIs for Array Integration)硬體加速功能的儲存設備,其中的 Hardware-Accelerated Cloning(或稱 Full Copy / Copy Offload) 機制,可以有效減少 ESXi 主機在複製作業上的工作負載如 Storage vMotion,而 Block Zeroing 機制除了可以加快 Eager Thick Disk 的產生時間之外,對於 Lazy Thick Disk 及 Thin Disk 虛擬磁碟來說,可以有效提升 Write I/O 的效能表現。

Scalable Lock Management(或稱 Atomic Test and Set,ATS)機制,可以有效減少 Locking-Related 工作負載的開銷,並且在處理 File System-Intensive 工作負載時,仍能有效提高 Thin Disk 的磁碟空間擴展速度。而 UNMAP 機制可使 Thin Disk 能自動完成「空間回收(Reclaim Space)」的任務,而不需要如傳統解決方案利用 SDelete 指令或 Storage vMotion 來釋放空間(因為 Space-Efficient Sparse Virtual Disks 機制,目前僅針對 VDI VM 作用)。

圖 6、VAAI – Full Copy 運作示意圖

週邊匯流排及介面卡(Peripheral Bus & Adapter)

在介面卡方面請採用通過 VMware Hardware Certification 驗證流程的介面卡,同時為了避免傳輸瓶頸卡在匯流排上,請採用速度較快的「快速週邊組件互連(PCI Express,Peripheral Component Interconnect Express)」,目前主流規格為 PCIe 3.0 x8 或 x16

挑選網路介面卡方面盡量選擇可減緩 ESXi 主機 CPU 工作負載的介面卡,例如,支援 NetQueue、Checksum Offload、TSO(TCP Segmentation Offload)、LRO(Large Receive Offload)...等卸載功能。

圖 7、NetQueue 運作示意圖

若採用 Fibre Channel 的 SAN 架構,可以調整 Queue Depth 數值以加速 Fibre Channel HBA Card 傳輸效能,舉例來說,在 vSphere ESXi 5.5 虛擬化平台中,若採用 QLogic HBA Card 可將 Queue Depth數值調整為「64」(詳請參考 VMware KB 1267)。值得注意的是,若安裝的 FC HBA 卡是採用 End-to-End 架構時(HBA 卡直接),則要避免傳輸速度不一致的情況,否則將容易發生傳輸效能不彰的情況(詳請參考 VMware KB 1006602)。

此外,介面卡該選擇 單埠(Single Port)、2埠(Dual Port)或者是 4 埠(Quad Port)? 若實體伺服器的 PCIe Slot 足夠的情況下,建議採用單埠(Single Port)的介面卡比較適合,主因是為了避免傳輸瓶頸卡在 PCIe Slot 匯流排,舉例來說,採用 PCIe 3.0 x1 傳輸只有 8Gb/s,若在 PCIe Slot中插上 2 埠 10G 網路卡,可想而知當工作負載接近滿載時,勢必會造成傳輸瓶頸卡在 PCIe Slot 匯流排的現象。因此,像這種情況就應該採用至少 PCIe 3.0 x4 (高達 32Gb/s)、PCIe 3.0 x8 (高達 64Gb/s)、PCIe 3.0 x4 (高達 128Gb/s)。

除了伺服器的匯流排需要注意外,「傳輸線材」的部份也值得注意,目前 10Gbps 網路環境逐漸普及中,但以往乙太網路環境中 Cat 5、Cat 5e 已經無法使用,至少應採用 Cat 6a 或 Cat 7 等級的纜線,才能達成在 10Gbase-T 網路環境中 100 公尺的最大理論傳輸距離(採用 Cat 6 則有 55 公尺的最大理論傳輸距離)。

BIOS/UEFI 設定

雖然在實體伺服器 CPU 處理器方面,我們已經選購了支援硬體輔助虛擬化技術,但其實主機板的 BIOS/UEFI也必須進行「啟用(Enabled)」才行,首先在前述介紹中第一、二代硬體輔助虛擬化技術,在 BIOS 當中並不會看到相同技術名詞,以採用 Intel CPU 處理器的伺服器來說,只會在 BIOS 當中看到「Virtualization Technology」項目,請確保該項目為「啟用(Enabled)」狀態。若您想讓 ESXi 虛擬化平台保持在高效率的運作環境上,請將 BIOS 當中的 Intel Turbo BoostAMD Turbo CORE 項目也進行「啟用(Enabled)」。

HT(Hyper-Threading)」項目則視運作環境需求後,再自行決定是否啟用或停用,因為 HT 機制雖然會將目前的核心數量提升一倍,但因為並非真正的運算核心(僅邏輯運作),所以當多線程的應用程式要進行 SMP 平行運算時,可能會反效果讓運作效能更差。「C1E」機制雖然可以在不影響效能的情況下降低電力的使用,且當 Intel Turbo Boost 或 AMD Turbo CORE 也啟用時,對於 Single-Threaded Workloads 有提升的效果,但對於 Highly Sensitive I/O Latency 工作負載來說則會嚴重降低效能,所以也必須視運作環境決定是否啟用或停用。

先前提到的 NUMA 機制中,除了實體記憶體應該平均分配之外,在 BIOS 中的設定名稱為「Node Interleaving」,此項目必須設定為「禁用(Disable)」才是「啟用 NUMA」機制,該項目若設定為啟用(Enabled)反而會禁用 NUMA 機制。

圖 8、將 Node Interleaving 設定為 Disabled 以啟用 NUMA 機制

在 BIOS 的電力設定部份,建議設定為最大效能(Maximum Performance),或者設定為「OS Controlled Mode」也就是把電力控制權交給屆時的 ESXi 虛擬化平台。最後,則將用不到的週邊裝置直接在 BIOS 層級就進行停用。

  • COM / LPT Ports
  • Floppy / CD / DVD Drives
  • USB controllers / USB Network Interfaces


4、ESXi 主機效能調校

VMware vSphere ESXi 為 Type 1 Hypervisor 運作架構,安裝完畢後便能在 ESXi 虛擬化平台上,同時運作多台 VM 虛擬主機,並且有效率的共享底層硬體資源,例如,中央處理器(CPU)、記憶體(Memory)、磁碟 I/O(Disk I/O)...等硬體資源。

電力配置優化

企業或組織導入虛擬化平台除了將實體伺服器進行整併之外,另一個關鍵因素便是當時間拉長來看時整個機房的電力節省,不同的實體伺服器及相關週邊配件也會導致不同的電力損耗,舉例來說 中央處理器一般都會有所謂「散熱設計功率(Thermal Design Power,TDP)」評等,應盡量挑選TDP數值較低的CPU處理器,在記憶體方面也會因為相關技術如「錯誤檢查和糾正(Error Checking and Correcting,ECC)」等,都會影響電力損耗大小。除此之外,實體伺服器採用的硬碟種類及轉速、網路卡、風扇...等,也將影響整體的電力損耗數值。

除了實體伺服器本身的硬體功能之外,所安裝的 VMware vSphere ESXi 的電源設定,也同樣會影響整體的效能及電力表現,在預設的情況下 VMware vSphere ESXi,其電源計劃設定值為「平衡(Balanced)」,也就是自動在運作效能及電力損耗之間取得一個平衡點。

但若您希望屆時其上運作的 VM 虛擬主機擁有高效能表現,那麼應該要將電源計劃調整為「高效能(High Performance)」,此時便會觸發啟動實體伺服器的硬體功能,例如,Intel Turbo BoostAMD Turbo CORE 技術,讓實體伺服器工作負載即使處於滿載情況時,效能表現仍維持最佳甚至更好,但缺點就是會消耗較多的電力。反觀若是電源計劃設定為「省電(Low Power)」,便會自動停用實體伺服器所支援的 Turbo 技術(詳請參考 VMware KB 1018206)。


圖 9、將 VMware vSphere ESXi 電源計劃調整為高效能(High Performance)

啟用 CBRC 讀取快取機制

從 VMware vSphere ESXi 5.0 版本開始,便支援 ESXi Host Caching 機制「CBRC(Content-Based Read Cache)」,也就是 VMware vSphere 內建的讀取快取機制,可以透過切割 ESXi 主機一塊實體記憶體空間(最大支援至 2 GB),達成降低原有儲存設備的 Read I/O Requests 工作負載。

請開啟 vSphere Client 連接到 ESXi Host 或 vCenter Server 後,依序點選【ESXi Host > Configuration > Software > Advanced Settings > CBRC】項目,便可以進行 CBRC 讀取快取機制的設定。

圖 10、設定 CBRC 讀取快取機制

在 CBRC 讀取快取機制設定視窗中,相關欄位的參數值設定及項目說明如下:

  • CBRC.DCacheMemReserved: 設定要從 ESXi Host 當中,劃分出多少實體記憶體空間讓 CBRC 讀取快取機制使用(單位為 MB),最小數值為 100 最大則為 2048,此實作調整為最大空間 2048。
  • CBRC.DCacheSize: 設定 CBRC Data Cache 大小(保持預設值即可)。
  • CBRC.DigestJournalBootInterval: 為了不影響 VM 啟動(Power On)作業,預設情況下延遲 10 分鐘後,才會啟動 Digest Journal 機制(保持預設值即可)。
  • CBRC.Enable: 決定 ESXi Host 是否要「啟用」Digest Reserved Cache Memory 機制。


運作 VMware Tools 的 VM 虛擬主機

在 VMware vSphere ESXi 虛擬化平台上運作的 VM 虛擬主機,都應該安裝 VMware Tools,除了將相關虛擬裝置進行最佳化之外,也與 ESXi Hypervisor 進行最緊密的結合,舉例來說,Memory Ballooning 機制,便是透過安裝於 VM 虛擬主機上的 VMware Tools 協同運作的。

圖 11、VM 虛擬主機應安裝並確保 VMware Tools 正常運作

VM 虛擬主機優化調校

由於 ESXi 虛擬化平台上運作數量可觀的 VM 虛擬主機,經過相關優化調校程序後,除了 VM 虛擬主機本身運作效能增加之外,對於 ESXi 主機整體的效能提升也很有幫助,雖然這些優化調校作業可能看似不起眼或沒感覺,但您可以想像若這些優化調校作業完成後每台 VM 虛擬主機可以提升 0.5% 效能,當一台 ESXi 主機上運作 30 台 VM 虛擬主機時,將可以帶來 15% 的整體效能提升,有效收到涓流點滴匯聚終成大海之效。

  • VM 虛擬主機(Guest OS)務必安裝最新版本 VMware Tools,以便與 ESXi Hypervisor 形成最佳化運作模式。
  • 採用最新的虛擬硬體版本,例如,ESXi 5.1 可運作虛擬硬體版本 9,而 ESXi 5.5 可運作最新的虛擬硬體版本 10
  • VM虛擬主機應採用 VMXNET 2 / 3 虛擬網路卡,而非 E1000 / E1000e 虛擬網路卡。
  • 移除或中斷連接未使用的媒體裝置如 SCSI 控制器、CD-ROM、COM Port、Floppy。
  • 停用 Guest OS 螢幕保護機制、排程備份(Backup)、磁碟重組(Defragmentation)機制。
  • 停用 Guest OS 當中不必要的系統服務,例如,SuperFetch、Windows Search、Scheduled Defrag...等。

圖 12、為 VM 虛擬主機移除不必要的媒體裝置如 Floppy

5、結語

當企業或組織在前期評估導入虛擬化平台之前,不管是在實體伺服器特色功能的選購方面,Hypervisor 的特性及優化調校方面,又或者是屆時 VM 虛擬主機當中的 Guest OS 運作及優化調校方式,都與原本未虛擬化環境上有不同之處(磁碟重組就是個例子)。因此,希望透過本篇文章的說明及討論,能為讀者帶來一些虛擬化架構的規劃及優化調校方面的概念。
文章標籤: ,