前幾日,存儲部門的同事要求我檢查某個集羣中所有ESX服務器的HBA卡狀態,一般來說我們每臺ESX服務器會配置2塊雙口HBA卡,使用每塊卡的其中一個口連接到SAN交換機,再去做zone。因此,只要檢測這些HBA卡的端口狀態是否正常即可。
如果你的ESX服務器數量不多,完全可以通過vSphere Client一臺臺檢查。但是如果你的集羣裏有100臺ESX主機呢?下面是一個用PowerCLI5.0寫的簡單腳本進行自動化檢測:
- $vmhosts = Get-VMHost -Location "你的集羣名字"
- foreach ( $vmhost in $vmhosts ){
- $HBAs = Get-VMHostHBA -VMHost $vmhost
- foreach ($HBA in $HBAs){
- $Result = $HBA.Device+","+$HBA.VMHost+","+$HBA.Status
- Add-Content c:\temp\HBA.csv -value $Result
- }
- }
此腳本可以實現對某個集羣裏所有的ESX服務器HBA端口進行檢測,只要修改上邊的中文爲你得集羣名字即可。
此腳本我在生產環境中已經使用過,沒有發現問題。