上週,一篇頗有意思的 VMware 知識庫文章(由Ron Oglesby分享)引發了個人注意。api
本週早些時候,我注意到 Ron 熱衷於尋找各類不一樣接口中的當前 VSAN 組件數:RVC(vSphere Ruby控制檯),在 Windows和 Linux 上或經過 vSphere API 都可使用。最近,我甚至還使用 vSphere API 建立了一些腳本(請參見此處和此處 ),來遠程查詢每一個 ESXi 主機的 VSAN 組件數。我很是喜歡這種從管理角度出發、無須登陸每單個 ESXi 主機的作法。ruby
閱讀了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…(監控特定事件…)」,並確保已啓用。ide
第 2 步– 爲「事件」添加esx.problem.vob.vsan.lsom.componentthreshold工具
第 3 步– 可將操做保留爲空,這樣將僅生成一個常規 vSphere 警報,或者也可指定一個操做。測試
建立完 vCenter 警報以後,咱們可能須要檢測其是否能在嵌套 ESXi VSAN 環境 或實際 VSAN 環境中正常運行。下一問題是咱們怎樣建立 2400 個 VSAN 組件?無需費時費力地手動建立 2400 個虛擬機,咱們能夠利用 ESXi Shell 中一個小巧的工具輕鬆完成,名爲/usr/lib/vmware/osfs/bin/objtoolui
免責聲明:本文所用工具和腳本主要用於教育和參考目的。如下命令將建立一個名爲object-1、大小爲 1KB 的對象,使用 VSAN 策略 hostFailuresToTolerate=0 & forceProvisioning=1:spa
/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 產品。