網管人雜誌
本文刊載於 網管人雜誌第 124 期 - 2016 年 5 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。文章目錄
1、前言2、VSAN 運作架構
3、VSAN 6.2 新功能
重複資料刪除與壓縮
啟用並觀察儲存空間節省資訊
EC 編碼技術
啟用 EC 編碼技術資料容錯機制
QoS 服務品質管控
組態設定 IOPS 儲存資源
IOPS 效能監控服務
開啟效能服務
增強健康狀態監控
安裝健康狀態監控服務
如何進行故障排除作業
主動式健康狀態測試
4、結語
1、前言
VMware Virtual SAN(簡稱 VSAN),是 VMware 的「軟體定義儲存(Software-Defined Storage,SDS)」技術。簡單來說,透過 VSAN 技術便能夠將多台 x86 實體伺服器中,配置於實體伺服器的「本機硬碟(Local Hard Disk)」串連起來,進而將叢集當中所有叢集節點主機的儲存資源整合起來,成為一個巨大的儲存資源池並且能夠互相共用。VMware VSAN 最初版本,是在 2014 年 3 月時隨著 vSphere 5.5 Update 1 版本開始內建,也就是VMware VSAN 1.0 版本。接著在隔年,也就是 2015 年 3 月時隨著 vSphere 6.0 的發佈,直接與vSphere 最新版本對齊成為 VSAN 6.0 版本(原訂新版本為 VSAN 2.0)。
半年後,於 2015 年 9 月時推出 VSAN 6.1 版本,其中最具代表性的功能便是「延伸叢集(Stretched Cluster)」,以及「支援 2 Nodes VSAN」運作架構。現在,第四世代的最新 VSAN 6.2 版本已經在 2016 年 2 月時推出,此版本當中的重要特色功能如下:
- 重複資料刪除與壓縮: 能夠有效減少重複的資料區塊並進行壓縮的動作,最多可達 7 倍的儲存空間節省效率。
- EC 編碼技術: 最多能夠讓儲存空間增加 2 倍,並且能夠讓資料靈活度維持不變,同時透過同位元資料保護技術,可以允許 1 或 2 個儲存元件故障損壞,所以也稱為 RAID 5 / RAID 6。
- QoS 服務品質管控: 監控及管理每一台 VM 虛擬主機的 IOPS 儲存資源,避免部分 VM 虛擬主機暴增的儲存資源需求,影響到其它台 VM 虛擬主機的正常運作。
- 支援 IPv6 網路環境: 支援 IPv4-Only、IPv6-Only、IPv4/IPv6-Both 的網路環境。
- IOPS 效能監控: 可以針對不同的對象,例如,叢集、ESXi 主機、VM 虛擬主機…等,即時查看IOPS 儲存效能表現,便於管理人員找出效能瓶頸的元兇。
- 增強健康狀態監控: 除了方便管理人員隨時監控 VSAN 運作健康狀態之外,同時幫助管理人員進行 VSAN 組態設定上的故障排除作業。
圖 1、VMware Virtual SAN 版本演進及新增功能示意圖
2、VSAN 運作架構
VMware VSAN 軟體定義儲存技術,採用「原則 (Policy)」方式的儲存管理機制稱之為(Storage Policy-Based Management,SPBM)。透過 SPBM 及 vSphere API 機制,能夠將儲存資源抽象化並整合為資源池之後,提供給 vSphere 管理人員佈建 VM 虛擬主機的能力,同時針對不同的 VM 虛擬主機服務等級,採取不同的 VM 虛擬主機儲存原則,針對不同等級的 VM 虛擬主機進行佈建的動作。簡單來說,便是透過 SPBM 儲存管理機制,將 VM 虛擬主機的儲存資源擺放在適合的位置。
圖 2、VMware VSAN 佈建 VM 虛擬主機運作概念示意圖
在儲存空間的運作架構中,支援採用「Hybrid」儲存資源運作架構,也就是在「磁碟群組(Disk Group)」當中,採用 PCIe Flash / SSD / Ultra DIMM / NVMe 當成資料快取用途,在快取空間方面的比例為「30 % 寫入(Write)」以及「70 % 讀取(Read)」,在資料儲存空間方面則採用儲存空間大,但 I/O 效能較為普通的 SAS / NL-SAS / SATA 機械式硬碟即可。
若是採用「All-Flash」儲存資源運作架構時,在資料快取的部份則與 Hybrid 運作架構有很大的差異,其中「100 % 寫入(Write)」資料快取部分,採用 PCIe Flash / SSD / Ultra DIMM / NVMe…等快閃記憶儲存資源負責,而「100 % 讀取(Read)」資料儲存部分,則是由一般的 SSD 固態硬碟負責。
圖 3、VMware VSAN Hybrid / All-Flash 運作架構示意圖
3、VSAN 6.2 新功能
事實上,當企業或組織採用 VMware VSAN 軟體定義儲存技術,並建構 All-Flash 運作架構時,因為儲存空間相較於 Hybrid 運作架構來說更為寶貴。因此從 VSAN 6.2 版本開始,當企業或組織在建構 All-Flash 運作架構時,可以搭配「重複資料刪除與壓縮(Deduplication / Compression)」及「EC 編碼技術(Erasure Coding)」等儲存空間最佳化技術,以節省寶貴的快閃儲存資源空間並提高整體使用率。重複資料刪除與壓縮
透過重複資料刪除與壓縮技術,最高可以幫 All-Flash 運作架構節省「7 倍」的儲存空間。簡單來說,當重複資料刪除與壓縮技術啟用後,資料區塊不斷寫入 VSAN 的快取層級時,系統便會檢視是否有重複的資料區塊,當發現相同內容的資料區塊時便會進行「重複資料刪除(Deduplication)」與「壓縮(Compress)」處理作業,然後移動到資料層級當中。在重複資料刪除的部分,VSAN 會以 4 KB Block Size 為單位進行處理,當重複資料區塊經過壓縮作業後,則會縮小成 2 KB Block Size 並儲存至資料層級當中。
當然,儲存空間節省的比例在實務上,必須要視資料區塊重複比例及資料類型而定,舉例來說,若是影音檔案(Video)的話,那麼重複資料刪除與壓縮的比例就會偏低,倘若是一般文件檔案(Document)的話,那麼節省空間的比例便會提升許多。
圖 4、VMware VSAN 重複資料刪除與壓縮技術運作示意圖
啟用並觀察儲存空間節省資訊
預設情況下,重複資料刪除與壓縮技術為「停用(Disabled)」狀態,若要進行啟用的話操作步驟非常簡單,只要登入 vSphere Web Client 管理介面,依序點選「Cluster > Manage > Settings > Virtual SAN > General > Edit Settings」,在彈出的編輯 Virtual SAN 設定視窗中,在 Deduplication and compression 欄位下拉式選單中,選擇至「啟用(Enabled)」項目即可(如圖 5 所示)。值得注意的是,當你為 VSAN Cluster 啟用重複資料刪除與壓縮技術後,在 VSAN Cluster 當中的每台叢集節點主機當中,每個「磁碟群組(Disk Group)」都會重新進行格式化的動作,因此這可能需要花費相當長的一段時間。
但是,在資料區塊重新格式化動作的執行期間,於 VSAN Cluster 當中運作的 VM 虛擬主機,並不會受到任何影響。此外,在目前的 VSAN 6.2 版本當中,「重複資料刪除」與「壓縮」這 2 個儲存空間最佳化機制,並無法單獨啟用只能一同啟用。
圖 5、啟用重複資料刪除與壓縮技術
同時,當 vSphere 管理人員為 VSAN Cluster 啟用重複資料刪除與壓縮技術後,那麼在 VSAN 的「物件空間保留區(Object space reservation)」的儲存原則,只能設定為「0 % 或 100 %」(預設值為 0 %)。
在目前的 VSAN 6.2 版本當中,啟用重複資料刪除與壓縮技術後,便不允許物件空間保留區儲存原則設定為 1 % ~ 99 %。
當 VSAN Cluster 順利啟用重複資料刪除與壓縮技術,並且完成重新格式化的動作之後,那麼在 vSphere Web Client 管理介面中,便可以看到目前節省多少儲存空間以及空間節省倍數。
圖 6、查看節省多少儲存空間以及空間節省倍數
EC 編碼技術
在 VSAN 6.2 版本中,第 2 種儲存空間最佳化技術就是在 SPBM 儲存原則當中,加入新的「容錯方法(Fault Tolerance Method,FTM)」,讓 vSphere 管理人員可以選擇要採用的資料容錯方式。在 VSAN 6.2 版本以前,預設情況下將會採用「鏡像(Mirroring)」也就是 RAID-1 的資料容錯方式。現在,當企業或組織建構 All-Flash 運作架構後,可以選擇採用「EC 編碼技術(Erasure Coding)」,也就是 RAID-5 / RAID-6 的資料容錯方式。
雖然,舊有的 RAID-1 在資料寫入效能方面更為出色,但是消耗的儲存空間更多。採用新式的 EC 編碼技術 RAID-5 / RAID-6 資料容錯機制,除了效能表現接近原有的 RAID-1 之外,在儲存空間方面最多可以「減少 50 %」的消耗,以充份節省寶貴的快閃儲存資源。
在下列表格中,我們可以看到當 VSAN Cluster 採用不同的「容許的故障次數(Number of Failures to Tolerate,FTT)」儲存原則時,舊有的 RAID-1(Mirroring)以及新式的 RAID-5 / RAID-6(Erasure Coding),在儲存空間的消耗比例:
因為 2 種資料可用性及可用空間的不同,因此對於 VSAN Cluster 當中叢集節點主機的數量,也會有最低主機數量要求及建議主機數量。下列表格,便是採用不同的容許故障次數儲存原則時,在 VSAN Cluster 當中分別需要的叢集節點主機數量:
因此,當 vSphere 管理人員建構 All-Flash 運作架構,並且採用 RAID-5 / RAID-6(Erasure Conding)資料容錯機制時,當設定「容許故障次數 FTT = 1」儲存原則時,如圖 7 所示可以看到在 VSAN Cluster 當中,每台叢集節點主機當中都將包含 1 份「同位元(Parity)」,以便達成資料容錯運作架構。
圖 7、FTT = 1 時,RAID-5 / RAID-6(Erasure Conding)資料容錯機制
倘若希望得到更高的資料可用性時,可以設定「容許故障次數 FTT = 2」的儲存原則,如圖 8 所示可以看到在 VSAN Cluster 當中,每台叢集節點主機當中都將包含 1 份「同位元(Parity)」,但叢集節點主機數量必須至少 6 台,以便達成更高可用性的資料容錯運作架構。
圖 8、FTT = 2 時,RAID-5 / RAID-6(Erasure Conding)資料容錯機制
啟用 EC 編碼技術資料容錯機制
同樣的,在 All-Flash 運作架構中,當 vSphere 管理人員在 VSAN Cluster 建立 SPBM 儲存原則時,只要在 Failure tolerance method 下拉式選單中,選擇至「RAID-5/6(Erasure Coding)-Capacity」項目(如圖 9 所示),即可採用新式的 EC 編碼技術達成資料高可用性及空間節省的目的。此外,在組態設定視窗當中你可以看到,倘若我們在 FTT 儲存原則欄位輸入數值「1」的話(也就是 FTT = 1),那麼當 VM 虛擬主機的虛擬磁碟的儲存空間為 100 GB 時,那麼在資料高可用性的情況下只會使用「133.33 GB」,若設定 FTT = 2 的話,那麼在資料高可用性的情況下則會使用「150 GB」的儲存空間。
圖 9、在 All-Flash 運作架構中啟用新式的 EC 編碼技術
QoS 服務品質管控
在虛擬化平台當中,眾多 VM 虛擬主機將會共享同一個或多個儲存資源。然而,有時可能會發生部分 VM 虛擬主機,因為突然爆增的 IOPS 儲存需求,例如,報表主機平時可能只消耗 300 IOPS 儲存資源,但是在月底進行結算時由於大量的資料需要進行分析運算,可能爆增至消耗 6000 IOPS 的儲存資源。因此,在企業或組織的資料中心當中,將有可能因為部分 IOPS 儲存需求爆增的 VM 虛擬主機,造成所謂的「吵鬧鄰居(Noisy Neighbor)」現象。簡單來說,就是這幾台 IOPS 爆增的 VM 虛擬主機,因為大量消耗儲存資源進而導致影響其它 VM 虛擬主機的運作。
在 VSAN 6.2 版本中,新增儲存資源 QoS 服務品質管控機制的 SPBM 儲存原則。透過 SPBM 儲存原則針對 VSAN 當中的「物件(Object)」,進行 IOPS 儲存資源的存取限制,以避免在 VSAN Cluster 運作環境當中的 VM 虛擬主機,發生吵鬧鄰居的現象。
因為是針對 VSAN 物件進行 IOPS 儲存資源的限制,所以並非是以整台 VM 虛擬主機為單位,而是以「VMDK 虛擬磁碟」為單位,並且當 vSphere 管理人員設定並套用 SPBM 儲存原則後,並不會影響到線上 VM 虛擬主機的運作。
組態設定 IOPS 儲存資源
當 vSphere 管理人員希望針對 VSAN 物件,設定 IOPS 儲存資源管控機制時,只要在建立 VSAN SPBM 儲存原則時,在 IOPS limit for object 欄位中填入該物件的 IOPS 最大使用數值即可(如圖 10 所示)。值得注意的是,在 VSAN 6.2 版本當中 IOPS 計算的資料區塊大小基準為「32 KB」,不管是資料的「讀取」或「寫入」都採用同樣大小的資料區塊。倘若,在你的 VSAN Cluster 運作環境中,你將資料區塊大小設定為 64 KB 時,那麼若是設定 IOPS 為 200 IOPS 的話,則實際上該 VSAN 物件將僅會得到 100 IOPS 的儲存資源。
圖 10、組態設定 VSAN 物件 IOPS 儲存資源
IOPS 效能監控服務
雖然,我們可以針對 VSAN 物件進行 IOPS 儲存資源管控,避免運作環境發生吵鬧鄰居的情況。但是,在過去的 VSAN 版本當中並沒有簡單的方式,能夠觀察到 VSAN Cluster 當中各項運作元件的 IOPS 儲存資源使用情況。現在,在 VSAN 6.2 版本當中,透過啟用「效能服務(Performance Service)」之後,便能夠在 vSphere Web Client 管理介面中,直接看到 VSAN Cluster、ESXi 主機、VM 虛擬主機、磁碟群組…等,各項運作元件的 IOPS 儲存資源使用情況。
開啟效能服務
vSphere 管理人員只要登入 vSphere Web Client 管理介面後,編輯 VSAN Cluster當中的組態設定,便可以「開啟(Turned On)」效能服務,開始收集 VSAN 各項運作元件的 IOPS 使用情況。值得注意的是,當你為 VSAN Cluster 啟用效能服務之後,所統計的 IOPS 儲存資源使用情況數據,並非儲存在 vCenter Server 資料庫當中,而是儲存在獨立的 VSAN 物件當中,並且根據收集的 IOPS 儲存資源資料量,此 VSAN 物件的儲存空間最大可至 255 GB。
圖 11、為 VSAN Cluster 啟用效能服務
當 VSAN Cluster 順利啟用效能服務之後,便可以針對各項運作元件即時或選擇區間,查看 IOPS 儲存資源的使用情況。如圖 12 所示,便是查看 VSAN Cluster 內 ESXi 主機層級中,其上運作的 VM 虛擬主機整體 IOPS 儲存資源使用情況。
圖 12、查看 ESXi 主機層級中 VM 虛擬主機整體 IOPS 儲存資源使用情況
增強健康狀態監控
在前一版 VSAN 6.1 時,便開始內建「健康狀態檢查外掛程式(Health Check Plug-in)」,能夠有效協助管理人員進行硬體、韌體、驅動程式相容性檢查、網路即時診斷機制…等,以便確保整個 VSAN Cluster 內所有進階組態設定的一致性。在目前最新 VSAN 6.2 版本當中,則是增強整個健康狀態監控機制,舉例來說,在 VSAN HCL 硬體相容性檢查項目中,除了能夠進行 VSAN Cluster 叢集節點的 HCL 硬體組態進行檢測之外,現在還能定期更新 HCL Database 內容,以便因應不斷更新的硬體伺服器規格。
安裝健康狀態監控服務
在 VSAN Cluster 運作環境中,安裝健康狀態監控服務也很簡單。首先,若採用的是 vCSA(vCenter Server Appliance)的話,那麼登入後只要使用「rpm -Uvh」指令搭配相對應版本的 RPM 檔案,然後執行「/usr/lib/vmware-vpx/vsan-health/health-rpm-post-install.sh」指令,即可完成安裝動作。若是採用 Windows vCenter Server 的話,則需要在安裝 MSI 檔案後,重新啟動「VMware Virtual Center Server」服務即可完成安裝動作。
有關 vCenter Server 安裝健康狀態監控服務的詳細資訊,請參考 VMware KB 2109874。
安裝動作完成後,預設情況下 VSAN 健康狀態監控服務為「停用」狀態,此時只要登入 vSphere Web Client 管理介面,依序點選「Cluster > Monitor > Virtual SAN > Health」項目,然後點選「立即啟用(Enable now)」即可。
預設情況下,啟用 VSAN 健康狀態監控服務後,系統將會每隔「60 分鐘」便進行檢查的動作。如果,你希望調整此預設組態的話,請依序點選「Cluster > Manage > Settings > Virtual SAN > Health」後,按下「Edit settings」鈕即可進行調整。
圖 13、啟用 VSAN 健康狀態監控服務
現在,你應該已經看到各種 VSAN 健康狀態監控項目,同時你可以展開每個監控項目,了解整個檢查作業的細項。值得注意的是,倘若是從舊版本的 VSAN 健康狀態監控服務升級上來的話,那麼應該要按下「Retest」鈕,讓 VSAN Cluster 能夠重新套用新的 VSAN 健康狀態監控版本,並且再次進行健康狀態檢查的動作。
圖 14、查看 VSAN 健康狀態監控項目詳細資訊
如何進行故障排除作業
那麼,當 VSAN Cluster 健康狀態發生問題時,該如何進行故障排除作業呢? 首先,我們可以在偵測到健康狀態為「警告或錯誤」的項目,展開子項目後查看是哪個細項發生問題,如圖 15 所示我們可以看到,目前「Advanced Virtual SAN configuration in sync」子項目發生錯誤。此時,你可以先按下「Ask VMware」鈕,便會出現 VMware KB 資訊了解目前發生警告或錯誤的原因,以及如何進行故障排除作業。在此次實作環境當中,錯誤發生的原因是 VSAN Cluster 當中的 esxi04 叢集節點主機,因為「VSAN.ClomRepairDelay」的組態設定值,與 VSAN Cluster 其它叢集節點主機不同所導致。
圖 15、透過 VSAN 健康狀態監控進行故障排除作業
主動式健康狀態測試
除了預設每隔 60 分鐘進行整體 VSAN Cluster 健康狀態測試之外,vSphere 管理人員也可以隨時進行「主動式健康狀態測試(Proactive health checks)」。在目前的 VSAN 6.2 版本中,支援 3 種主動式健康狀態測試項目:- VM 虛擬主機建立作業測試
- Multicast 效能測試
- Storage 效能測試
vSphere 管理人員,只要登入 vSphere Web Client 管理介面後,依序點選「Cluster > Monitor > Virtual SAN > Proactive Tests」項目,然後點選希望進行主動式健康狀態測試的項目後,按下「綠色三角形」圖示即可進行主動測試作業。
圖 16、進行主動式健康狀態測試
4、結語
透過本文的說明,相信讀者已經了解到最新的 VSAN 6.2 版本有哪些特色功能,能夠幫助企業或組織建構更高資料可用性,以及儲存資源的高可擴充性及靈活度。同時,我們可以看到針對 All-Flash 高階軟體定義儲存運作架構,也推出相對應的儲存空間最佳化機制,以便節省寶貴的快閃記憶體儲存資源。此外,增強的 VSAN 健康狀態監測機制,除了能夠有效幫助 vSphere 管理人員,掌管整個 VSAN Cluster 運作架構之外,還能夠幫助進行基礎架構的組態設定故障排除作業,以便管理人員能夠在運作架構發生警告或錯誤時,在最短時間內排除問題讓企業或組織的線上服務,能夠在快速恢復原有的良好運作狀態。