天天看點

Drbd+heartbeat+mysql的測試報告

一、原因分析

1、目前架構分析圖:

<a href="http://s3.51cto.com/wyfs02/M02/89/B5/wKioL1gasQ6i4sKMAAU4ouVcKQE537.png-wh_500x0-wm_3-wmp_4-s_2563946043.png" target="_blank"></a>

2、原因分析

由于平台業務網絡不穩定,DRBD的心跳指向網關題導,在網絡出現問題導緻腦裂,出現腦裂有兩種結果:

1、共享資源被瓜分、兩邊“服務”都起不來了;

2、兩邊“服務”都起來了,但同時讀寫“共享存儲”,導緻資料損壞

3、導緻腦裂發生的原因

    1、高可用伺服器之間心跳鍊路故障,導緻無法互相檢查心跳

2、高可用伺服器上開啟了防火牆,阻擋了心跳檢測

3、高可用伺服器上網卡位址等資訊配置不正常,導緻發送心跳失敗

4、其他服務配置不當等原因,如心跳方式不同,心跳廣播沖突,軟體BUG等

二、測試目的

<a href="http://s4.51cto.com/wyfs02/M00/89/B8/wKiom1gasTaiBQtbAAOOEm_V_MQ067.png-wh_500x0-wm_3-wmp_4-s_1446668340.png" target="_blank"></a>

通過使用一根專線作為心跳線,是否出現腦裂的兩種情況及對服務的影響,改造後的結構圖:

三、測試過程

1、停止MS上的心跳線

2、停止heartbeat服務

四、測試現象

   1、停止心跳線,資源不發生切換,但外網無法通過VIP通路,内網正常,需要執行arp

   2、停止S的上的服務(drbd,heartbeat)資源不切換,不對業務産生影響

   3、停止M上的服務,資源正常切換(autofail=off)

   4、DB服務停止,通過腳本檢測,服務資源切換

   5、MS一根心跳線時,S心跳停止恢複後會搶占資源,若可以添加兩根直連線,可以避免

五、測試結果

    使用專線作為心跳線,網絡更加穩定,在寫大量的資料時候,通過3層交換傳輸到對端,避免資料阻塞

六、測試建議

    根據目前的平台業務架構,建議添加兩根專線做為心跳線,提高網絡的健壯性,避免因為心跳導緻資源搶占或資源都放棄行為。

七、防止腦裂一些方案

1、加備援線路

2、檢測到裂腦時,強行關閉心跳檢測(遠端關閉主節點,控制電源的電路fence)

3、做好腦裂的監控報警

    本文轉自 DBAspace 51CTO部落格,原文連結:http://blog.51cto.com/dbaspace/1868844

繼續閱讀