求助關於heartbeat v2模式的資源切換問題
使用lvs + heartbeat v2模式 + ldirectord實現負載均衡加高可用性。
master,slave上管理的資源相同,是realserver,ldirectord兩個lsb腳本。
realserver功能是啟動ipvs,ldirectord是監控多個mysql資料庫,當出現資料庫出問題的時候及時從lvs中刪除。
基本master,slave故障切換都正常。
有個問題,當kill掉master上資源,heartbeat可以正常重啟這個資源。
如個重啟不了這個資源那麼應該切換到slave上,我測試的結果是沒有切換到slave機。
(上面說的kill掉的資源是ldirectord,通過ps aux|grep ldirectord找到的。)
cib.xml文件內容如下:
<resources>
<group id="group_1">
<primitive class="lsb" id="realserver_1" provider="heartbeat" type="realserver">
<operations>
<op id="realserver_1_mon" interval="30s" name="monitor" timeout="10s"/>
</operations>
</primitive>
<primitive class="lsb" id="ldirectord_2" provider="heartbeat" type="ldirectord">
<operations>
<op id="ldirectord_2_mon" interval="30s" name="monitor" timeout="10s"/>
</operations>
</primitive>
</group>
</resources>
<constraints>
<rsc_location id="rsc_location_group_1" rsc="group_1">
<rule id="prefered_location_group_1" score="100">
<expression attribute="#uname" id="prefered_location_group_1_expr" operation="eq" value="oracle110"/>
</rule>
</rsc_location>
</constraints>
《解決方案》
回復 #1 yunfei8888_ 的帖子
描述的不是很清晰,
應該理解是將ldirecord和mysqld都作為資源加入到cib.xml中
《解決方案》
個人理解有2點:
1. heartbeat對資源的監控可能不準確, 就是說,資源提供的monitor介面可能不是很準確,這樣會導致在資源down后(比如手工的down掉某個資源),heartbeat可能沒有檢測到,那麼就更談不上切換了。
2. heartbeat對資源down掉的處理方案的配置,記得有幾種:比如重啟3次還是切換,不太記得了。
說明:
有些資源類型和heartbeat集成的不是很好,手工處理該資源后,heartbeat不能檢測到,尤其是一些LSB類型的資源。