網管人 160 期 - HCIBench 壓測改善有依據 vSAN 架構營運擴充更平順


網管人雜誌

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





文章目錄

前言
HCIBench 儲存效能壓測工具
          HCIBench 運作元件及架構
實戰 HCIBench 儲存效能壓測工具
          HCIBench 部署前置作業
          部署 HCIBench Virtual Appliance
          存取 Controller VM Web UI 管理介面
          組態設定運作環境及壓測參數
          壓測前再次驗證 vSAN 運作環境
          執行儲存資源壓力測試作業
          查看 HCIBench 壓力測試報表
結語





前言

當企業或組織的 IT 管理人員,將 VMware vSAN 超融合基礎架構建置完成後,相信在營運服務上線之前應該會進行相關的容錯及壓力測試,例如,拔線測試 NIC Teaming 容錯移轉機制、部署 VM 虛擬主機估算所需花費的時間……等。

然而,對於建構好的 vSAN 超融合基礎架構能夠提供多少儲存資源運作效能,是否能夠以更精確且量化的數據來進行佐證,以便屆時營運服務上線後能夠針對 vSAN 節點主機擴充進行正確的評估,舉例來說,建置時 vSAN 儲存資源效能測試結果為 30 萬 IOPS,日後營運時當儲存資源效能已高達 25 萬 IOPS 的工作負載平均值時,管理人員便應開始考慮擴充 vSAN 節點主機,以便增加 IOPS 儲存效能及儲存空間。

圖 1、採用 vSAN All-Flash 架構,單台 vSAN 節點主機可提供高達 15 萬 IOPS 儲存效能

本文,將說明及實作演練透過在 VMware Labs Fling 中,擁有極高評價的 HCIBench 超融合基礎架構儲存效能壓測工具,針對 vSAN 超融合基礎架構進行各項儲存效能壓力測試。
VMworld 2018 大會中,有關 vSAN 儲存效能壓力測試的議程中,也都採用 HCIBench 進行壓測及報表分析作業。





HCIBench 儲存效能壓測工具

HCIBench(Hyper-Converged Infrastructure Benchmark)儲存效能壓測工具,是由 vSAN 上海研發團隊中的工程師所開發。簡單來說,HCIBench 是一款專門針對 vSAN 超融合基礎架構的儲存效能測試工具,管理人員可以透過 Virtual Appliance 的方式進行運作環境的部署作業,後續便可以透過 HCIBench Controller VM 虛擬主機,針對 vSAN 叢集產生大量的 VM 虛擬主機,然後同時併發執行儲存效能壓力測試。

值得一提的是,HCIBench 儲存效能壓力測試工具,在 VMware Labs Fling 中免費提供給管理人員使用。因此,企業及組織無須花費額外的費用,即可透過 HCIBench 針對 vSAN 超融合基礎架構,進行儲存效能壓力測試並產生測試報表。



HCIBench 運作元件及架構

在 HCIBench 運作架構中(如圖 2 所示),具備兩個不同的角色分別是擔任管理工作任務的 Controller VM 虛擬主機,以及負責儲存效能壓力測試的 Vdbench Guest VM 虛擬主機。

當管理人員透過 OVA 格式的 Virtual Appliance 虛擬設備,進行部署 Controller VM 虛擬主機的工作任務,並且在部署完成 Controller VM 虛擬主機和順利啟動後,將會運作下列四個核心元件:

  • RVC(Ruby vSphere Console): HCIBench 壓測工具的核心引擎,屆時將由此運作元件主導部署 Vdbench Guest VM 壓測虛擬主機、在壓測虛擬主機內部執行 Vdbench 壓測工具、透過 vSAN Observer 工具監控及收集儲存效能壓測力測試結果。
  • vSAN Observer: 當啟動儲存效能壓力測試工作任務時,負責監控 vSAN 叢集和 vSAN 節點主機的儲存效能表現。
  • Automation Bundle: 由 Ruby 和 Bash Script 所組成的自動化腳本,負責自動化部署 Vdbench Guest VM 壓測虛擬主機,包括壓測虛擬主機的 VMDK 虛擬磁碟初始化、屆時在壓測虛擬主機內部執行 Vdbench 壓測工具。
  • Configuration files: 在 HCIBench 運作架構中,負責儲存各式壓力測試及部署作業的組態設定檔。
  • Linux 壓測虛擬主機範本檔: 屆時大量部署 Vdbench Guest VM 壓測虛擬主機的範本檔案。

圖 2、HCIBench 運作元件及運作架構示意圖





實戰 HCIBench 儲存效能壓測工具

在本文實作環境中,已經建置好 vSAN 6.7 Update 1 超融合基礎架構,接著將實際部署 HCIBench 儲存效能壓測工具,以便觀察 vSAN 超融合環境對於各式各樣儲存資源工作負載的效能表現。
有關建置 vSAN 超融合基礎架構的詳細資訊,請參考本雜誌《 第 154 期-了解 Update 1 增強版,動手打造 vSAN 6.7 叢集 》



HCIBench 部署前置作業

當管理人員準備好 vSAN 超融合環境,在部署 HCIBench 儲存效能壓測工具之前,請確認已經完成下列前置作業項目:

  • 確保 vSAN 叢集及 vSAN 節點主機已正常運作。
  • 建議管理人員將 HCIBench 壓測工具中,負責管理任務的 Controller VM 虛擬主機部署到 vSAN 叢集中。雖然,支援將 Controller VM 虛擬主機部署到「單機」的 ESXi 虛擬平台主機上,但是該台 ESXi 虛擬平台主機必須能夠存取 vCenter Server 管理平台才行。
  • 屆時,部署的大量 Vdbench Guest VM 壓測虛擬主機虛擬網路環境中,必須要有 DHCP Server 負責配發 IP 位址給壓測虛擬主機。倘若,該虛擬網路並沒有 DHCP Server 時,則可以配置與 Controller VM 虛擬主機使用同一段虛擬網路,它將會提供 DHCP Server 特色功能來配發 IP 位址。
  • 管理人員除了從 VMware Flings 網站上,下載 HCIBench OVA 檔案之外,還需要額外下載開放原始碼中,負責產生 Disk I/O 工作負載的指令碼工具壓測執行檔 Vdbench 檔案。




部署 HCIBench Virtual Appliance

在本文實作環境中,採用最新的 HCIBench 1.6.8.7 版本進行部署作業,預設情況下部署的 HCIBench Virtual Appliance 虛擬設備,便是 HCIBench 運作架構中負責管理任務的 Controller VM,部署完成後相關的虛擬硬體配置及已安裝的軟體套件資訊如下:

  • 虛擬硬體配置: 8 vCPU、8GB vRAM、16GB vDisk。
  • 作業系統版本: Photon OS 1.0
  • 安裝軟體套件: Ruby 2.3.0、Rubygem 2.5.1、Rbvmoni 1.8.2、RVC 1.8.0、sshpass 1.05、Apache 2.4.18、Tomcat 8.54、JDK 1.8u102


請管理人員登入 HTML 5 管理介面後,依序點選「vCenter Server > Datacenter > Cluster > Actions > Deploy OVF Template」項目,在 Select an OVF template 頁面中,請點選 Choose Files 鈕後選擇「HCIBench_1.6.8.7.ova」檔案。

在 Select a name and folder 頁面中,請為此台 HCIBench 虛擬主機命名(本文為 HCIBench),並選擇所要存放的 vSphere Datacenter。接著,在 Select a compute resource 頁面中,選擇 HCIBench 虛擬主機所要運作的 vSAN 叢集和 vSAN 節點主機。

在 Review details 頁面中,將會再次顯示 HCIBench 虛擬主機的相關資訊,以便管理人員確認繼續進行部署作業(如圖 3 所示)。

圖 3、再次檢視部署 HCIBench 虛擬主機的組態設定

在 License agreements 頁面中,請勾選「I accept all license agreements」項目,以便同意使用者授權條款。在 Select storage 頁面中,請選擇要將 HCIBench 虛擬主機存放於哪個 Datastore 儲存資源中,本文選擇存放於 vsanDatastore 儲存資源中。

在 Select networks 頁面中(如圖 4 所示),需要選擇 Controller VM 虛擬主機所要採用的虛擬網路環境,其中「VM Network」虛擬網路為屆時 Vdbench Guest VM 壓測虛擬主機的虛擬網路環境,這段虛擬網路應該具備 DHCP Server 以便配發 IP 位址,倘若實作環境中並沒有架設 DHCP Server 的話,則可以配置與 Controller VM 虛擬主機同一段虛擬網路,由 Controller VM 虛擬主機提供 DHCP Server 服務。至於「Management Network」虛擬網路,則是屆時管理人員存取 Controller VM 虛擬主機 Web UI 圖形介面的網路環境。

圖 4、選擇 Controller VM 虛擬主機採用的虛擬網路環境

在 Customize template 頁面中(如圖 5 所示),請配置 Controller VM 虛擬主機的網路資訊,例如,預設閘道、IP 位址、DNS 伺服器、子網路遮罩。同時,請在 Root Credential 欄位中,填入 Controller VM 虛擬主機的管理者密碼。

圖 5、組態設定 Controller VM 虛擬主機的網路資訊及管理者密碼

最後,在 Ready to complete 頁面中,再次檢視部署 HCIBench Controller VM 虛擬主機的資訊無誤後,即可按下 Finish 鈕立即進行部署作業。



存取 Controller VM Web UI 管理介面

當 HCIBench Controller VM 虛擬主機部署作業完畢後,管理人員便可以開啟瀏覽器於網址列鍵入「https://HCIBench_IP:8443」(本文實作環境為 https://hcibench.vsan.weithenn.org:8443),即可存取 Controller VM Web UI 管理介面(如圖 6 所示),預設管理者登入帳號為「root」,管理者密碼則是剛才部署時所設定的 Root Credential。
當管理人員需要登入 Controller VM 虛擬主機的 Console 時,也請採用相同的管理者帳號及密碼登入。
圖 6、登入 Controller VM Web UI 管理介面



組態設定運作環境及壓測參數

順利登入 Controller VM Web UI 管理介面後,在管理介面中共有五大組態設定項目,包含,vSphere 環境組態設定、vSAN 叢集組態設定、Vdbench 壓測 VM 虛擬主機組態設定、Vdbench 壓測設定檔、Vdbench 組態設定檔產生器

vSphere 環境組態設定
首先,在 vSphere 環境組態設定的部份(如圖 7 所示),管理人員必須填入 vSphere 虛擬環境相關組態內容:

  • vCenter Hostname/IP: 請填入 vCenter Server 管理平台的 FQDN 名稱或 IP 位址,本文實作環境為「vcsa.vsan.weithenn.org」。
  • vCenter Username: 請填入 vCenter Server 管理平台的管理者帳號,本文實作環境為「Administrator@vsan.weithenn.org」。
  • vCenter Password: 請填入 vCenter Server 管理平台的管理者密碼
  • Datacenter Name: 請填入 vSphere 架構中 Datacenter 名稱,本文實作環境為「Datacenter」。
  • Cluster Name: 請填入 vSphere 架構中叢集名稱,本文實作環境為「Cluster」。
  • Resource Pool Name: 請填入 vSphere 架構中資源集區名稱,本文實作環境未建立資源集區所以可不填。
  • VM Folder Name: 請填入 vSphere 架構中 VM 虛擬主機資料夾名稱,本文實作環境未建立 VM 虛擬主機資料夾所以可不填。
  • Network Name: 請填入 Vdbench Guest VM 壓測虛擬主機的虛擬網路連接埠名稱,未指定的話將採用預設值「VM Network」,本文實作環境為「MGMT-DPortGroup」。預設情況下,部署的 Vdbench Guest VM 壓測虛擬主機,將會透過 DHCP Server 自動取得動態配發的 IP 位址,倘若管理人員希望 Vdbench Guest VM 壓測虛擬主機採用「固定 IP 位址」的話,請勾選「Set Internal Static IP for Vdbench Client VMs」選項。
  • Datastore Name: 指定部署 Vdbench Guest VM 壓測虛擬主機的 Datastore 儲存資源。倘若,管理人員希望壓測虛擬主機能夠同時部署到「多個」Datastore 儲存資源時,可以每行填入一個 Datastore 名稱即可,屆時系統便會平均部署到多個 Datastore 儲存資源,舉例來說,組態設定 2 個 Datastore 儲存資源並部署 100 台壓測虛擬主機時,便會分別部署 50 台壓測虛擬主機至每個 Datastore 儲存資源中。
  • Storage Policy: 指定部署的 Vdbench Guest VM 壓測虛擬主機,要採用哪個 vSAN SPBM 儲存原則管理機制,未指定的話將採用預設值「vSAN Default Storage Policy」。
  • Clear Read/Write Cache Before Each Testing: 當管理人員勾選此項目後,系統於 Vdbench 測試作業執行前,會先執行清空 vSAN 快取內容的動作。

圖 7、vSphere 環境組態設定

vSAN 叢集組態設定
在 vSAN 叢集組態設定的部份(如圖 8 所示),管理人員必須填入 vSAN 叢集及節點主機相關組態內容:

  • Deploy on Hosts: 預設情況下,系統將會針對 vSAN 叢集中的所有 vSAN 節點主機進行部署作業,倘若管理人員希望僅將 Vdbench Guest VM 壓測虛擬主機,部署於特定 vSAN 節點主機的話請勾選此項目。
  • Hosts: 當管理人員勾選「Deploy on Hosts」項目後,必須於此欄位指定 vSAN 節點主機的 FQDN 或 IP 位址,以便稍後將 Vdbench Guest VM 壓測虛擬主機,部署於這些指定的 vSAN 節點主機上。值得注意的是,倘若指定的 vSAN 節點主機數量超過「5 台」時,為了避免部署時產生大量的 vSAN 網路流量,系統一次只會在 5 台 vSAN 節點主機進行部署作業。
  • Host Username: 指定 vSAN 節點主機的管理者帳號
  • Host Password: 指定 vSAN 節點主機的管理者密碼
  • EAST RUN: 此選項專為 vSAN 超融合基礎架構環境設計,系統將會採用多種儲存資源工作負載進行壓力測試。
  • Re-Use The Existing VMs If Possible: 此選項勾選後,若下一次的壓力測試參數選項跟此次的測試條件符合時,便保留所有已經部署的 Vdbench Guest VM 壓測虛擬主機,否則便會刪除並重新部署 Vdbench Guest VM 壓測虛擬主機。

圖 8、vSAN 叢集組態設定

Vdbench 壓測 VM 虛擬主機組態設定
在 Vdbench 壓測 VM 虛擬主機組態設定部份(如圖 9 所示),管理人員必須填入 Vdbench 壓測 VM 虛擬主機相關組態內容。值得注意的是,倘若剛才勾選「EASY RUN」選項的話,此組態設定頁面將被取代:

  • VM Name Prefix: 指定 Vdbench Guest VM 壓測虛擬主機的命名規則
  • Number of VMs: 指定部署 Vdbench Guest VM 壓測虛擬主機的數量
  • Number of Data Disk: 指定部署 Vdbench Guest VM 壓測虛擬主機時,每台壓測虛擬主機需要掛載的 VMDK 虛擬磁碟數量,預設值為 8 個
  • Size of Data Disk: 指定壓測虛擬主機掛載的 VMDK 虛擬磁碟空間大小,預設值為 10GB

圖 9、Vdbench 壓測 VM 虛擬主機組態設定

Vdbench 壓測設定檔
在 Vdbench 壓測設定檔部份(如圖 10 所示),管理人員必須填入此次壓測的相關組態內容:
Test Name: 指定此次儲存資源壓力測試名稱,此測試名稱將會在 Controller VM 中的「/opt/output/results」路徑下,建立測試名稱資料夾。倘若,未指定將會採用預設值名稱「resultsTIMESTAMP」。

  • Select a Vdbench parameter file: 此下拉選單中,將會顯示過去曾經測試過的儲存資源壓力測試項目。
  • Generate Vdbench Parameter File by Yourself: 建立儲存資源壓力測試相關參數組態設定檔,例如,資料讀取及寫入比例、Disk I/O 資料區塊大小……等。
  • Upload a Vdbench parameter file: 若管理人員已經有組態設定檔,即可進行上傳後直接使用。
  • Prepare Virtual Disk Before Testing: 此下拉選單中,管理人員可以選擇是否要針對 Vdbench Guest VM 壓測虛擬主機,所掛載的 VMDK 虛擬磁碟進行初始化的動作,預設值為「NONE」。倘若,選擇「ZERO」選項時,由於將會預先初始化 VMDK 虛擬磁碟,所以能夠有效避免第一次進行資料寫入的效能懲罰。當 vSAN 叢集啟用重複資料刪除功能時,則建議採用「RANDOM」選項。
  • Testing Duration(seconds): 指定儲存資源壓力測試時間,單位為「」。
  • Clean up VMs: 當管理人員希望儲存資源壓力測試完畢後,便刪除所有 Vdbench Guest VM 壓測虛擬主機的話,請勾選「Clean up VMs after testing」項目。

圖 10、Vdbench 壓測設定檔

Vdbench 組態設定檔產生器
最後,在 Vdbench 組態設定檔產生器部份(如圖 11 所示),管理人員必須在「Upload the Vdbench File」區塊中,按下 Choose File 鈕並上傳 Vdbench 執行檔,最後按下「Save Configuration」鈕以便儲存此次壓測參數設定及內容。

圖 11、上傳 Vdbench 執行檔並儲存此次壓測參數



壓測前再次驗證 vSAN 運作環境

順利完成上述儲存資源壓力測試多項參數後,便可以按下「Validate」鈕,進行壓力測試前的環境驗證工作任務(如圖 12 所示),以便確保稍後的壓力測試能夠順利執行。

此時,管理人員可以切換至 vCenter Server 管理介面,將會發現 HCIBench 依據剛才填寫的參數,嘗試連接至 vCenter Server 並部署 Vdbench Guest VM 壓測虛擬主機,並且於完成驗證運作環境後刪除壓測虛擬主機。

圖 12、壓測前再次驗證 vSAN 運作環境



執行儲存資源壓力測試作業

現在,管理人員可以按下「Test」鈕,讓 HCIBench 立即執行儲存資源壓力測試作業(如圖 13 所示)。此時,系統便會依據剛才管理人員組態設定的儲存壓力測試參數,產生 Vdbench Guest VM 壓測虛擬主機,並透過 Vdbench 執行檔進行不同工作負載的儲存資源壓力測試作業。

圖 13、HCIBench 執行儲存資源壓力測試作業

此時,管理人員可以切換到 vCenter Server 管理介面,依序點選「Cluster > Monitor > vSAN > Performance」項目,便可以查看 HCIBench 執行儲存資源壓力測試作業,對於 vSAN 叢集產生多少的儲存資源工作負載及效能表現,例如,IOPS、Throughput、Latency、Congestions、Outstanding IO(如圖 14 所示)。

圖 14、HCIBench 執行儲存資源壓力測試作業時,vSAN 叢集工作負載及效能表現



查看 HCIBench 壓力測試報表

當 HCIBench 執行儲存資源壓力測試作業完畢後,管理人員便可以開啟瀏覽器於網址列鍵入「http://hcibench.vsan.weithenn.org/results」,依序點選剛才「壓測名稱」的路徑後,便可以查看 HCIBench 此次的儲存資源壓力測試報表內容,例如,產生多少台 Vdbench Guest VM 壓測虛擬主機、vSAN 叢集此次壓測的 IOPS 儲存效能表現、壓測時網路延遲時間、資料讀取及寫入的延遲時間……等(如圖 15 所示)。

圖 15、查看 HCIBench 儲存資源壓力測試報表

繼續深入點選 result 路徑中資料夾及檔案,當點選至「stats.html」檔案時,便可以觀看 vSAN Observer 的詳細分析圖表(如圖 16 所示)。

圖 16、觀看 vSAN Observer 的詳細分析圖表





結語

透過本文的說明及實作演練相信讀者已經了解,如何透過 HCIBench 儲存效能壓力測試工具,評估企業或組織所建構的 vSAN 超融合基礎架構,針對不同的儲存工作負載能有怎樣的儲存效能表現,以便日後營運服務上線時,能夠正確評估何時該擴充 vSAN 叢集中的 vSAN 節點主機。