Ceph心跳機(jī)制的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Ceph心跳機(jī)制的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供平武網(wǎng)站建設(shè)、平武做網(wǎng)站、平武網(wǎng)站設(shè)計(jì)、平武網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、平武企業(yè)網(wǎng)站模板建站服務(wù),10余年平武做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

1. 心跳介紹

心跳是用于節(jié)點(diǎn)間檢測(cè)對(duì)方是否故障的,以便及時(shí)發(fā)現(xiàn)故障節(jié)點(diǎn)進(jìn)入相應(yīng)的故障處理流程。

問(wèn)題:

  • 故障檢測(cè)時(shí)間和心跳報(bào)文帶來(lái)的負(fù)載之間做權(quán)衡。

  • 心跳頻率太高則過(guò)多的心跳報(bào)文會(huì)影響系統(tǒng)性能。

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

故障檢測(cè)策略應(yīng)該能夠做到:

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

  • 適當(dāng)?shù)膲毫Γ喊▽?duì)節(jié)點(diǎn)的壓力,和對(duì)網(wǎng)絡(luò)的壓力。

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

  • 擴(kuò)散機(jī)制:節(jié)點(diǎn)存活狀態(tài)改變導(dǎo)致的元信息變化需要通過(guò)某種機(jī)制擴(kuò)散到整個(gè)集群。

2. Ceph 心跳檢測(cè)

Ceph心跳機(jī)制的示例分析

ceph_heartbeat_mon.png

OSD報(bào)告給Monitor:

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

  • 自身啟動(dòng)5秒內(nèi)。

  • OSD周期性的上報(bào)給Monito

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

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

    • 收到來(lái)自failure_queue或者failure_pending中的OSD的心跳時(shí),將其從兩個(gè)隊(duì)列中移除,并告知Monitor取消之前的失效報(bào)告。

    • 當(dāng)發(fā)生與Monitor網(wǎng)絡(luò)重連時(shí),會(huì)將failure_pending中的錯(cuò)誤報(bào)告加回到failure_queue中,并再次發(fā)送給Monitor。

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

    • Monitor收集來(lái)自O(shè)SD的伙伴失效報(bào)告。

    • 當(dāng)錯(cuò)誤報(bào)告指向的OSD失效超過(guò)一定閾值,且有足夠多的OSD報(bào)告其失效時(shí),將該OSD下線。

5. Ceph心跳檢測(cè)總結(jié)

Ceph通過(guò)伙伴OSD匯報(bào)失效節(jié)點(diǎn)和Monitor統(tǒng)計(jì)來(lái)自O(shè)SD的心跳兩種方式判定OSD節(jié)點(diǎn)失效。

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

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

  • 容忍網(wǎng)絡(luò)抖動(dòng):Monitor收到OSD對(duì)其伙伴OSD的匯報(bào)后,并沒(méi)有馬上將目標(biāo)OSD下線,而是周期性的等待幾個(gè)條件:

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

    • 來(lái)自不同主機(jī)的匯報(bào)達(dá)到mon_osd_min_down_reporters。

    • 滿足前兩個(gè)條件前失效匯報(bào)沒(méi)有被源OSD取消。

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

6. 心跳設(shè)置

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

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

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

6.2. OSDS檢查心跳

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

6.3. OSDS報(bào)告掛掉的OSD

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

6.4. 凝視失敗的OSD報(bào)告

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

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

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

7. 配置設(shè)置

修改心跳設(shè)置時(shí),你應(yīng)該將它們包括在 您的配置文件的[global]部分。

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

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

7.2 OSD設(shè)置

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

關(guān)于“Ceph心跳機(jī)制的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

分享文章:Ceph心跳機(jī)制的示例分析-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article4/dsheie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司、面包屑導(dǎo)航、品牌網(wǎng)站制作、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)