ceph_osd故障檢測


1.     當前monitor可以通過3種途徑檢測到osd離線

1)      Osd自主上報

 

2)      Osd通過投票的方式(滿足一下條件之一,mon會將osd標記為down)

a)      投票攜帶了Force/Immediate標識(和其他osd建立鏈接時返回econnrefused)

b)      有效票數已經達到閾值mon_osd_min_down_reporters(默認為2)(同一故障域只會記1票)

<1>   選擇每個pg的Up與Acting中的osd

<2>   選擇在編號上與本osd相鄰的前一個和后一個狀態為Up的osd

<3>   如果該osd的心跳伙伴個數小於最小值osd_heartbeat_min_peers(默認為10),則以本osd編號作為基准,依次選擇集群中下一個狀態為Up,編號相鄰的osd,直至達到最小值

Note: osd之間的心跳采用單播(點對點)的方式(如果集群較大,采用廣播可能會導致廣播風暴)

3)      周期性向monitor發送beacon消息進行保活

Osd周期性向monitor發送beacon消息進行保活osd_beacon_report_interval(默認100秒),超過mon_osd_report_timeout(默認 300秒)沒有收到osd的beacon消息,則將該osd標記為Down

2.     osd心跳

1)      osd之間的心跳:

       OSD 之間每 osd_heartbeat_interval(默認 2 秒)會有一個來回心跳包的檢測,該心跳包會分別從public和cluster網分別發出,當一個 OSD 在 osd_heartbeat_grace(默認 7 秒)時間內沒有收到其他 OSD 心跳的時候,那么這個 OSD 會向 MON 匯報說另一個 OSD 心跳已經超時。當MON 收到多個來自不同故障域的 OSD 都匯報了同一個 OSD 的心跳問題,就會將這個 OSD mark DOWN

2)      OSD向mon報告自己的狀態:

       OSD每最小osd_beacon_report_interval(默認100秒),如果一 OSD 在 mon_osd_report_timeout(默認300秒) 時間內沒向mon報告過自己的狀態,mon就認為它 down 了。

3)      Osd向mon報告自己的事件

       從一 OSD 啟動或其它可報告事件發生以來,osd_mon_report_interval_min(默認3秒)時間內必須向監視器報告一次,監視器允許 OSD 報告的最大間隔為osd_mon_report_interval_max(默認為15秒),超時將認為 OSD 掛了( down )

4)      Osd心跳參數:

osd_heartbeat_interval

描述:默認值2,osd發送heartbeat給其他osd的間隔時間

 

osd_heartbeat_grace

描述:默認值7,OSD 多久沒心跳就會被集群認為它掛( down )了

5)      Osd向mon心跳參數

osd_beacon_report_interval

描述:默認值100,osd報告beacon消息間隔

 

mon_osd_report_timeout

描述:默認值300,宣布無響應 OSD down 前的寬限期,秒

 

mon_osd_adjust_heartbeat_grace

描述:默認值false,設置為 true 時, Ceph 將根據滯后量伸縮

6)      Osd事件參數:

osd_mon_report_interval_min

描述:默認值3,從一 OSD 啟動或其它可報告事件發生以來,多長時間內必須向監視器報告一次

 

osd_mon_report_interval_max

描述:默認值15,監視器允許 OSD 報告的最大間隔,超時將認為 OSD 掛了( down )

 

mon_osd_down_out_interval

描述:默認值10800,在 OSD 停止響應多少秒后把它標記為 down 且 out

 

mon_osd_adjust_down_out_interval

描述:默認值false,設置為 true 時, Ceph 將根據滯后量伸縮

 

3.     參考資料:

1、http://wiki.xsky.com

2、《ceph之rados設計原理與實現》

3、http://docs.ceph.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM