上週,一篇很有意思的 VMware 知識庫文章(由Ron Oglesby分享)引起了我的注意。
本週早些時候,我注意到 Ron 熱衷於尋找各種不同接口中的當前 VSAN 組件數:RVC(vSphere Ruby控制檯),在 Windows和 Linux 上或通過 vSphere API 均可使用。最近,我甚至還使用 vSphere API 創建了一些腳本(請參見此處和此處 ),來遠程查詢每個 ESXi 主機的 VSAN 組件數。我非常喜歡這種從管理角度出發、無須登錄每單個 ESXi 主機的做法。
閱讀了VMware 知識庫文章 2071379 之後,我明白了 Ron 提出問題的原因,因爲我也感覺此知識庫文章是不完整的。當然,對於不具有懷疑眼光的人來說,這個問題可能不明顯,因爲此知識庫文章確實回答了一些問題,但它並沒有切實深入到任何對客戶有用的詳細細節。這篇文章提到,當達到某特定主機 VSAN 組件數閾值的 80% 時,VSAN 能夠觸發警報。但沒有說明此警報是如何以及在哪裏觸發的細節。首先,這裏所提到的警報是針對 vCenter Server 的。其次,這是通過使用文章中提到的 VOB(VMkernel 監控)ID 實現的。實際上,您可以基於這些 ESXi 主機生成的 VOB 來創建 vCenter 警報。關於這一內容,我曾在幾篇文章中闡述過,如關於爲您的 EXSi 主機檢測重複 IP 地址的文章。創建此類 vCenter 警報的過程相當簡單,而且我認同應默認創建這個警報(我會給工程團隊提出相關內部建議)。
以下是創建vCenter Server 警報的步驟,以便在達到 80% VSAN 組件數閾值時發出通知:
第 1 步- 創建新的 vCenter Server 警報並命名,然後爲主機選擇“Monitor specific event…(監控特定事件…)”,並確保已啓用。
第 2 步– 爲“事件”添加esx.problem.vob.vsan.lsom.componentthreshold
第 3 步– 可將操作保留爲空,這樣將僅生成一個常規 vSphere 警報,或者也可指定一個操作。
創建完 vCenter 警報之後,我們可能需要檢測其是否能在嵌套 ESXi VSAN 環境 或實際 VSAN 環境中正常運行。下一問題是我們怎樣創建 2400 個 VSAN 組件?無需費時費力地手動創建 2400 個虛擬機,我們可以利用 ESXi Shell 中一個小巧的工具輕鬆完成,名爲/usr/lib/vmware/osfs/bin/objtool
免責聲明:本文所用工具和腳本主要用於教育和參考目的。以下命令將創建一個名爲object-1、大小爲 1KB 的對象,使用 VSAN 策略 hostFailuresToTolerate=0 & forceProvisioning=1:
/usr/lib/vmware/osfs/bin/objtoolcreate -s 1KB -a 3 -n object-1 -p “((\”hostFailuresToTolerate\” i0)(\”forceProvisioning\” i1))”
對於此特定測試,我們只想快速創建 2400 個 VSAN 組件。爲此,您需要大約 32GB 內存以達到所支持 VSAN 組件的最大量。對於“真實”的 VSAN 環境來說,這個要求不成問題,但是,對於我的嵌套 ESXi 環境來說,我必須爲此測試增加資源配置。因爲 VSAN 是分佈式對象存儲,所以創建的對象將隨機存儲在 VSAN 羣集中。爲了迅速達到 2400 個組件,我還把 3 個 ESXi 主機中的 2 個設爲“維護模式”,以確保所有對象都創建在第一個 ESXi 主機中。
最後,爲了輔助自動創建 VSAN 對象,我編寫了可在 ESXi Shell 中運行的快速腳本
創建的每個對象都將有一個關聯的 UUID,後者將保存在臨時文件 /tmp/uuid 中,在確認vCenter 警報有效之後,可使用下列腳本來刪除對象。
達到 2400 VSAN 組件數後,您就可以看到,之前創建的警報因達到 80% 閾值而觸發。
歡迎在微博上關注我,這樣在我發佈博客文章後您就會收到通知,並可以讓您瞭解更多有關 VMware 存儲的信息:@VMware中國
————————————————————————————————————————————
作者:William Lam
現任 VMwareR&D 主管工程師,隸屬 SDDC 新興解決方案團隊的一員。目前,他在 VMware 公司從事原型設計,構建新解決方案並將其推向市場。他的工作主要側重於從 API 和 SDK 這兩個角度進行軟件定義的數據中心 (SDDC) 自動化以及 SDDC 通用集成和操作。他還與 VMware 內部的多個工程團隊緊密合作,幫助提供設計和架構方面的前期反饋。最後,通過客戶互動和反饋,他不斷應對客戶的挑戰、堅持滿足客戶的需求,從而更好地改進 VMware 產品。