溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ceph心跳機制的示例分析

發(fā)布時間:2021-12-17 10:45:01 來源:億速云 閱讀:167 作者:小新 欄目:軟件技術

這篇文章將為大家詳細講解有關Ceph心跳機制的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1. 心跳介紹

心跳是用于節(jié)點間檢測對方是否故障的,以便及時發(fā)現(xiàn)故障節(jié)點進入相應的故障處理流程。

問題:

  • 故障檢測時間和心跳報文帶來的負載之間做權衡。

  • 心跳頻率太高則過多的心跳報文會影響系統(tǒng)性能。

  • 心跳頻率過低則會延長發(fā)現(xiàn)故障節(jié)點的時間,從而影響系統(tǒng)的可用性。

故障檢測策略應該能夠做到:

  • 及時:節(jié)點發(fā)生異常如宕機或網(wǎng)絡中斷時,集群可以在可接受的時間范圍內感知。

  • 適當?shù)膲毫Γ喊▽?jié)點的壓力,和對網(wǎng)絡的壓力。

  • 容忍網(wǎng)絡抖動:網(wǎng)絡偶爾延遲。

  • 擴散機制:節(jié)點存活狀態(tài)改變導致的元信息變化需要通過某種機制擴散到整個集群。

2. Ceph 心跳檢測

Ceph心跳機制的示例分析

ceph_heartbeat_mon.png

OSD報告給Monitor:

  • OSD有事件發(fā)生時(比如故障、PG變更)。

  • 自身啟動5秒內。

  • OSD周期性的上報給Monito

    • OSD檢查failure_queue中的伙伴OSD失敗信息。

    • 向Monitor發(fā)送失效報告,并將失敗信息加入failure_pending隊列,然后將其從failure_queue移除。

    • 收到來自failure_queue或者failure_pending中的OSD的心跳時,將其從兩個隊列中移除,并告知Monitor取消之前的失效報告。

    • 當發(fā)生與Monitor網(wǎng)絡重連時,會將failure_pending中的錯誤報告加回到failure_queue中,并再次發(fā)送給Monitor。

  • Monitor統(tǒng)計下線OSD

    • Monitor收集來自OSD的伙伴失效報告。

    • 當錯誤報告指向的OSD失效超過一定閾值,且有足夠多的OSD報告其失效時,將該OSD下線。

5. Ceph心跳檢測總結

Ceph通過伙伴OSD匯報失效節(jié)點和Monitor統(tǒng)計來自OSD的心跳兩種方式判定OSD節(jié)點失效。

  • 及時:伙伴OSD可以在秒級發(fā)現(xiàn)節(jié)點失效并匯報Monitor,并在幾分鐘內由Monitor將失效OSD下線。

  • 適當?shù)膲毫Γ?/strong>由于有伙伴OSD匯報機制,Monitor與OSD之間的心跳統(tǒng)計更像是一種保險措施,因此OSD向Monitor發(fā)送心跳的間隔可以長達600秒,Monitor的檢測閾值也可以長達900秒。Ceph實際上是將故障檢測過程中中心節(jié)點的壓力分散到所有的OSD上,以此提高中心節(jié)點Monitor的可靠性,進而提高整個集群的可擴展性。

  • 容忍網(wǎng)絡抖動:Monitor收到OSD對其伙伴OSD的匯報后,并沒有馬上將目標OSD下線,而是周期性的等待幾個條件:

    • 目標OSD的失效時間大于通過固定量osd_heartbeat_grace和歷史網(wǎng)絡條件動態(tài)確定的閾值。

    • 來自不同主機的匯報達到mon_osd_min_down_reporters。

    • 滿足前兩個條件前失效匯報沒有被源OSD取消。

  • 擴散:作為中心節(jié)點的Monitor并沒有在更新OSDMap后嘗試廣播通知所有的OSD和Client,而是惰性的等待OSD和Client來獲取。以此來減少Monitor壓力并簡化交互邏輯。

6. 心跳設置

6.1 配置監(jiān)視器/ OSD互動

您已完成初始Ceph的配置之后,您可以部署和運行的Ceph。當你執(zhí)行一個命令,如ceph health 或 ceph -s , Ceph的監(jiān)視器將報告 CEPH存儲集群的當前狀態(tài)。Ceph的監(jiān)視器通過每個 Ceph的OSD守護實例,以及相鄰的Ceph OSD守護實例,了解Ceph的存儲集群的相關狀態(tài)。Ceph的監(jiān)視器如果沒有收到報告,或者如果它接收Ceph的存儲集群的變化的報告,Ceph的監(jiān)視器更新的的 CEPH集群映射圖的狀態(tài)。

Ceph為Ceph的監(jiān)視器/ Ceph的OSD守護程序交互提供合理的默認設置。但是,您可以覆蓋默認值。以下部分描述如何用Ceph的監(jiān)視器和Ceph的OSD守護實例互動來達到Ceph的存儲集群監(jiān)控的目的。

6.2. OSDS檢查心跳

每個Ceph的OSD守護程序檢查其他Ceph的OSD守護進程的心跳每6秒。Ceph的配置文件下的[OSD]部分加入OSD   osd heartbeat interval ,或通過設定值在運行時,您可以更改心跳間隔。如果在20秒的寬限期內鄰居的Ceph的OSD守護進程不顯示心跳,Ceph的OSD守護進程可能考慮周邊的Ceph OSD守護掛掉,并向一個Ceph的Monitor報告,這將更新的CEPH集群地圖。一個OSD   osd heartbeat grace 可以在Ceph的配置文件下的[OSD]部分設置,或在運行時,你通過設置這個值改變這個寬限期。

6.3. OSDS報告掛掉的OSD

默認情況下,Ceph的OSD守護程序必須向Ceph的監(jiān)視器報告三次:另一個Ceph的OSD守護程序已經(jīng)掛掉,在Ceph的Monitor承認該報告Ceph的OSD守護掛掉之前。在(早期V0.62版本之前)Ceph的配置文件下的[MON]部分添加  osd min down reports setting,或者通過設定值在運行時,您可以更改OSD報告的掛掉的最低數(shù)量 。默認情況下,只有一個Ceph的OSD守護進程是必需報告另一個Ceph的OSD守護進程。您可以更改向Ceph監(jiān)視器報告Ceph的OSD守護進程的Ceph的OSD Daemones 的數(shù)量,通過添加一個mon osd min down reporters設置在Ceph的配置文件中,或者通過設定值在運行時。

6.4. 凝視失敗的OSD報告

Ceph的OSD守護進程如果不能和Ceph的配置文件(或群集地圖)中定義的OSD守護同行,它將每30秒ping一個Ceph的監(jiān)視器,為了最新副本的集群映射圖。Ceph的配置文件 下的[OSD]部分加入  osd mon heartbeat interval  設置,或通過在運行時設定值,您可以更改Ceph的監(jiān)控心跳間隔。

6.5. OSDS報告其狀態(tài)

Ceph的OSD守護進程如果不向Ceph的監(jiān)視器報告,至少每120秒一次,Ceph的監(jiān)視器會考慮Ceph的OSD守護已經(jīng)掛掉。您可以更改Ceph的監(jiān)控報告間隔,通過加入 osd mon report interval max 設置在Ceph的配置文件的[OSD]部分,或者通過設置在運行時的值。Ceph的OSD守護進程會嘗試報告其狀態(tài)每30秒。在Ceph的配置文件下的[OSD]部分加入 osd mon report interval min s設置,或者通過設定值在運行時,您可以更改Ceph的OSD守護報告間隔。

7. 配置設置

修改心跳設置時,你應該將它們包括在 您的配置文件的[global]部分。

7.1 監(jiān)視器MONITOR設置

參數(shù)說明類型默認值
mon OSD min up ratioCeph的OSD未掛掉的最低比率在Ceph的OSD守護程序被仍定掛掉之前double0.3
mon OSD min in ratioCeph的OSD實例的最低比率在Ceph的OSD守護程序被仍定出局之前double0.3
mon osd laggy halflifelaggy估計會腐爛的秒數(shù)int60 * 60
mon osd laggy weightlaggy估計衰減的新樣本的權重double0.3
mon osd adjust heartbeat grace如果設置為true,Ceph將在laggy估計的基礎上擴展booltrue
mon osd adjust down out interval如果設置為true,Ceph基于laggy估計擴展booltrue
mon osd auto mark inCeph將標記任何引導的Ceph的OSD守護進程作為在 CEPH存儲集群boolfalse
mon osd auto mark auto out inCeph的標記引導Ceph的OSD守護 Ceph的存儲集群,集群中的自動標記booltrue
mon osd auto mark new in頭孢將迎來啟動新的Ceph的OSD守護在 Ceph的存儲集群booltrue
mon osd down out subtree limit最大的 CRUSH單位Ceph的類型,會自動標記出來Stringrack
mon osd report timeout寬限期秒下來在聲明反應遲鈍Ceph的OSD守護前32-bit Integer900
mon osd min down reportersCeph的OSD守護報告向下 Ceph的OSD守護所需的最低數(shù)量32-bit Integer1
mon osd min down reportsCeph的OSD守護的最低次數(shù)必須報告說,另一個Ceph的OSD守護下來32-bit Integer3

7.2 OSD設置

參數(shù)說明類型默認值
OSD heartbeat address一個Ceph的OSD守護進程的網(wǎng)絡地址的心跳AddressThe host address
OSD heartbeat interval多久Ceph的OSD守護坪及其同行(以秒計)32-bit Integer6
OSD heartbeat graceCeph的OSD當一個守護進程并沒有表現(xiàn)出心跳Ceph的存儲集群認為,經(jīng)過時間的32-bit Integer20
OSD mon heartbeat intervalCeph的的OSD守護坪一個Ceph的監(jiān)視器如果它沒有的CEPH OSD守護同行,多久32-bit Integer30
OSD mon report interval maxCeph的OSD守護進程報告Ceph的監(jiān)視器Ceph的監(jiān)視器前認為Ceph的OSD守護下來的時間以秒為單位的最大32-bit Integer120
OSD mon report inteval min秒為Ceph的OSD的守護Ceph的監(jiān)視器,以防止Ceph的監(jiān)視器考慮Ceph的OSD守護的最低數(shù)量32-bit Integer5 (有效范圍:應小于OSD 周一 報告 間隔 最大)
OSD mon ACK timeout等待的秒數(shù)為Ceph的監(jiān)視器確認請求統(tǒng)計32-bit Integer

關于“Ceph心跳機制的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI