ESXI 叢集出現HA heartbeat datastores數量錯誤, 但找不到vSphere HA Advanced Option按鈕? 用PowerCLI !

ESXI 叢集出現HA heartbeat datastores數量錯誤, 但找不到vSphere HA Advanced Option按鈕? 用PowerCLI !

大家好, 先跟各位拜個年, 祝各位蛇年進步, 電腦長開不當機

近來公司開始了對舊主機的虛擬化, 花了不大不小的資金在一套VMware ESXI 5.1系統配上IBM的V3500儲存設備

在新年前就剛好完成所有組裝跟系統配置程序了, 現在慢慢把舊系統移過去.

所以這陣子應該會分享一下這方面我遇到過的問題…

 

在這中間ESXI系統出現了HA heartbeat datastores for this host is 1, which is less than required: 2 這個警告

有關Heartbeat, HA這些詞彙作為IT PRO, 還有老闆, 當然是很關心的課題嚕…

所以也花一點時間看看這個錯誤訊息的相關資訊, 但想不到會申延到PowerCLI 的話題

所以也可以當這個是PowerCLI小教學吧

 

據知這問題只會出現在ESXi v5.0以上的系統

image

 

在Vmware的KB上已經有解決方案, 但在我的電腦上用不著! 原因是一個GUI介面的問題

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2004739

KB說明了在這些情況下就會出現這個警告訊息

1. ESXI Server處於叢集架構

2. 叢集中各Server只有一個中央儲存設備

3. 把vSphere HA功能開啟

 

這正好就是在描述我的系統…

在很多論壇中會建議直接無視這個訊息, 但如果你覺得這個真的很礙眼

在KB裡有如何關閉錯誤訊息的步驟, 但到了第3步Click VMware HA > Advanced Options.

我就卡關了…原本應該出現的Advanced options按鈕竟然一整個不見了.

image

考察了一下, 發現網絡上很多人也遇見到這個問題

從VMware方面應該暫時無解, 坊間傳言解決方法是調較Windows螢幕解釋度跟字體大小

但在我的電腦上還沒試出適合的大小, 而且這個也不算很好的解決方案吧

 

不過另類解決方法當然有噢 - 就是靠Vmware的指令模式 – PowerCLI

它是一個Powershell插件, 所以只能在有安裝Powershell的電腦上運作

先到VMware下載它的安裝程式

https://my.vmware.com/group/vmware/get-download?downloadGroup=VSPS510-PCLI-510R2

image

安裝程式發現我的Windows 8 Powershell 還沒設定好執行權限, 還是先設定比較好

image

記得用Administrator模式開啟PowerShell, 打入Set-ExecutionPolicy RemoteSigned命令, 按是(Y)確認

image

再來就可以繼續安裝了, 過程就不詳述..反正就是下一步下一步, 再來要重啟電腦

image

首次開啟PowerCLI, 先鍵入 Connect-VIServer IP-Address 或機器名稱

image

就會出現一個登入窗口

image

成功登入會再次出現命令字元

image

再來由於我要設定有關叢集的HA設定, 所以先把叢集名稱拿出來

$cluster = Get-ClusterName 叢集名稱

image

在來我們要把KB所說的參數加進系統裡面

das.ignoreInsufficientHbDatastore = true
需要用到以下指令
New-AdvancedSetting -Entity $cluster -Type ClusterHA -Name 'das.ignoreInsufficientHbDatastore' -Value true
記得要一句打完噢

image

再來把叢集的vSphere HA重啟一次

Set-Cluster -Cluster $cluster -HAEnabled:$false
 
Set-Cluster -Cluster $cluster -HAEnabled:$true

image

現在vSphere Client就不會再回報這個錯誤了

image

要改過來怎麼辦? 把指令倒過來打一次就好!

New-AdvancedSetting -Entity $cluster -Type ClusterHA -Name 'das.ignoreInsufficientHbDatastore' -Value false