分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法、中心節(jié)點及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法。所述方法包括以下步驟:中心節(jié)點為工作節(jié)點配置心跳包發(fā)送的第一時間間隔;所述中心節(jié)點接收所述工作節(jié)點發(fā)送的心跳包,獲取所述工作節(jié)點的工作狀態(tài)參數(shù);所述中心節(jié)點將所述工作狀態(tài)參數(shù)與預(yù)定閾值比較,當(dāng)所述工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為所述工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。此外,提供了相應(yīng)的中心節(jié)點和系統(tǒng),通過所述方法、中心節(jié)點和系統(tǒng),解決了在業(yè)務(wù)負載過重和網(wǎng)絡(luò)情況不佳等情況下心跳異常的問題,實現(xiàn)了根據(jù)實際的負載情況和網(wǎng)絡(luò)不佳情況時自動調(diào)整心跳間隔,大幅提升了分布式存儲集群可靠性和可用性。
【專利說明】
分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法、中心節(jié)點及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及計算機網(wǎng)絡(luò)存儲領(lǐng)域,尤其涉及一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法、中心節(jié)點及系統(tǒng)。
【背景技術(shù)】
[0002]分布式存儲系統(tǒng),是將數(shù)據(jù)分散存儲在多臺獨立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規(guī)模存儲應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲系統(tǒng)采用可擴展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。
[0003]分布式存儲的系統(tǒng)架構(gòu)需要心跳機制的支持,以確認各節(jié)點的狀態(tài),并對異常的狀態(tài)及時處理。心跳間隔設(shè)定的過大,則工作正常的節(jié)點無法對處于異常狀態(tài)的節(jié)點及時做出處理,例如判定離線,啟動數(shù)據(jù)恢復(fù)或者數(shù)據(jù)迀移等。相反心跳間隔設(shè)定的過小,則對于網(wǎng)絡(luò)的異常抖動,對于業(yè)務(wù)負載過重,無法及時響應(yīng)心跳消息的場景而做出錯誤的判斷。降低存儲系統(tǒng)的可靠性。
[0004]目前業(yè)內(nèi)的分布式存儲系統(tǒng)對于心跳的設(shè)置都是設(shè)定一個固定值,無法根據(jù)復(fù)雜的網(wǎng)絡(luò)環(huán)境進行自動的動態(tài)配置,例如不能根據(jù)存儲系統(tǒng)的整體負載變化以及節(jié)點的工作狀態(tài)等實際情況,自動地調(diào)整心跳間隔。心跳間隔的過長或過短都會使得判斷的錯誤,導(dǎo)致監(jiān)控結(jié)果的不真實準(zhǔn)確,造成系統(tǒng)資源浪費或吃緊,從而使得節(jié)點工作狀態(tài)不穩(wěn)定,影響分布式存儲系統(tǒng)整體的可靠性和可用性。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)中心跳間隔的值固定,不能應(yīng)付現(xiàn)實操作中的復(fù)雜情況,導(dǎo)致監(jiān)控不準(zhǔn)確的問題,本發(fā)明實施例提供一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法、中心節(jié)點及系統(tǒng)。
[0006]本發(fā)明實施例一方面提供一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法,所述分布式存儲系統(tǒng)包括中心節(jié)點和多個工作節(jié)點,所述方法包括以下步驟:
[0007]所述中心節(jié)點為所述多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0008]所述中心節(jié)點接收所述多個工作節(jié)點發(fā)送的心跳包,獲取所述多個工作節(jié)點的工作狀態(tài)參數(shù);
[0009]所述中心節(jié)點將所述工作狀態(tài)參數(shù)與預(yù)定閾值比較:
[0010]當(dāng)所述工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。
[0011]本發(fā)明實施例另一方面提供一種用于分布式存儲系統(tǒng)的中心節(jié)點,包括:用于配置心跳包發(fā)送時間間隔的時間間隔配置單元、工作狀態(tài)參數(shù)解析單元、比較單元,
[0012]其中,所述時間間隔配置單元用于為所述分布式存儲系統(tǒng)中的多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0013]所述工作狀態(tài)參數(shù)解析單元用于接收所述多個工作節(jié)點發(fā)送的心跳包,獲取所述多個工作節(jié)點的工作狀態(tài)參數(shù);
[0014]所述比較單元用于將所述工作狀態(tài)參數(shù)與預(yù)定閾值比較,將比較結(jié)果發(fā)送給所述時間間隔配置單元;
[0015]所述時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)所述工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。
[0016]本發(fā)明實施例另一方面提供一種分布式存儲系統(tǒng),包括:中心節(jié)點和多個工作節(jié)點,其特征在于,所述中心節(jié)點為根據(jù)本發(fā)明實施例提供的用于分布式存儲系統(tǒng)的中心節(jié)點。
[0017]本發(fā)明實施例提供的一種可以廣泛適用于各種分布式存儲系統(tǒng)的自動調(diào)整心跳間隔的方法,解決了在業(yè)務(wù)負載過重和網(wǎng)絡(luò)情況不佳等情況下心跳異常的問題,實現(xiàn)了根據(jù)實際的負載情況和網(wǎng)絡(luò)不佳情況時自動調(diào)整心跳間隔,大幅提升了分布式存儲集群可靠性和可用性。
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1為本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法實施例流程圖;
[0020]圖2為當(dāng)外部負載過大時,本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法實施例應(yīng)用場景圖;
[0021]圖3為當(dāng)節(jié)點出現(xiàn)故障時,本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法實施例應(yīng)用場景圖;
[0022]圖4為當(dāng)節(jié)點磁盤容量出現(xiàn)偏差時,本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法實施例應(yīng)用場景圖;
[0023]圖5為本發(fā)明用于分布式存儲系統(tǒng)的中心節(jié)點實施例結(jié)構(gòu)示意圖;
【具體實施方式】
[0024]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0025]分布式存儲系統(tǒng)中一般包括兩類節(jié)點,一類為工作節(jié)點,工作節(jié)點為多個,另一類為中心節(jié)點,也即總控節(jié)點。
[0026]中心節(jié)點,該節(jié)點是系統(tǒng)的中心控制節(jié)點,主要用于維護數(shù)據(jù)分布信息,執(zhí)行工作機管理,數(shù)據(jù)定位,故障檢測和恢復(fù),負載均衡等全局調(diào)度工作。
[0027]系統(tǒng)中的所有資源都存儲在工作節(jié)點上。工作節(jié)點通過心跳(Heartbeat,定時發(fā)送)機制將節(jié)點負載相關(guān)的信息,如CPU,內(nèi)存,磁盤,網(wǎng)絡(luò)等資源使用率,讀寫次數(shù)及讀寫數(shù)據(jù)量等發(fā)送給中心節(jié)點,并接受中心節(jié)點統(tǒng)一管理。所謂心跳機制,是收發(fā)心跳數(shù)據(jù)包(簡稱心跳包)的機制,心跳包是遵循心跳數(shù)據(jù)包協(xié)議定義的、周期性、循環(huán)發(fā)送的數(shù)據(jù)包,用于判斷網(wǎng)絡(luò)節(jié)點是否“存活”,即是否還在連接。實際運用時,首先需設(shè)計各網(wǎng)絡(luò)節(jié)點都支持心跳數(shù)據(jù)包協(xié)議,各網(wǎng)絡(luò)節(jié)點按照一定心跳機制向其它網(wǎng)絡(luò)節(jié)點發(fā)送心跳包,用于判斷對方(設(shè)備、進程或其它網(wǎng)元)是否正常運行,如果在指定時間段內(nèi)未收到對方響應(yīng),即沒有收到對方發(fā)回的心跳包,則認為與對方的連接已經(jīng)中斷,這樣可檢測TCP的異常斷開,如突然斷電、網(wǎng)絡(luò)中斷。雖然我們知道TCP是面向連接的,但是如果遇見拔網(wǎng)線,斷電等物理層的一些特殊情況,TCP還是沒有辦法快速的知道異常,所以心跳包的使用可以幫我們解決這些問題。
[0028]目前業(yè)內(nèi)分布式存儲系統(tǒng)對于心跳的設(shè)置都是設(shè)定為一個固定值,心跳間隔設(shè)定的過大,則工作正常的節(jié)點無法對處于異常狀態(tài)的節(jié)點及時做出處理,例如判定離線,啟動數(shù)據(jù)恢復(fù)或者數(shù)據(jù)迀移等。相反心跳間隔設(shè)定的過小,則對于網(wǎng)絡(luò)的異常抖動,對于業(yè)務(wù)負載過重,無法及時響應(yīng)心跳消息的場景而做出錯誤的判斷。
[0029]為此,本發(fā)明實施例提供了一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法。如圖1所示,本發(fā)明實施例提供的一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法的流程圖,所述方法包括以下步驟:
[0030]SlOl:中心節(jié)點為多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0031]其中第一時間間隔為心跳包的初始心跳時間間隔,各節(jié)點以該時間間隔定期發(fā)送心跳包。
[0032]S102:中心節(jié)點接收多個工作節(jié)點發(fā)送的心跳包,獲取多個工作節(jié)點的工作狀態(tài)參數(shù);
[0033]其中中心節(jié)點通過系統(tǒng)配置好的固定的時間間隔周期性獲取多個工作節(jié)點的工作狀態(tài)參數(shù)。其周期設(shè)置可根據(jù)歷史統(tǒng)計數(shù)據(jù),比如業(yè)務(wù)負載突然增大或突然變小發(fā)生的時間周期,節(jié)點出現(xiàn)故障的時間規(guī)律性等綜合因素進行考慮,以免設(shè)置過大或過小。
[0034]S103:中心節(jié)點將所述工作狀態(tài)參數(shù)與預(yù)定閾值比較:
[0035]系統(tǒng)中的預(yù)定閾值可以以配置文件形式存儲在系統(tǒng)中,方便中心節(jié)點獲取。
[0036]S104:當(dāng)所述工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。
[0037]其中,中心節(jié)點為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔的同時,還會向各節(jié)點發(fā)送的消息,所述消息基于TCP的消息,消息包括消息頭和消息體,例如消息體內(nèi)容為“延長心跳間隔”其可根據(jù)本領(lǐng)域技術(shù)人員已知的開發(fā)語言來實現(xiàn)。
[0038]需要注意的是,中心節(jié)點的數(shù)量可以根據(jù)集群的需要設(shè)置,可以為一個或多個,當(dāng)設(shè)置多個時就構(gòu)成了一個監(jiān)控集群。
[0039]這樣通過適時延長心跳包發(fā)送間隔,防止在業(yè)務(wù)負載過重、網(wǎng)絡(luò)的異常抖動等情境下因無法及時響應(yīng)心跳消息而做出錯誤的判斷。有效的提升了分布式集群系統(tǒng)的可靠性和可用性。
[0040]如圖2,表示了當(dāng)出現(xiàn)負載變化時應(yīng)用本發(fā)明的本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法的實施例。在此實施例中,步驟S102中所述工作狀態(tài)參數(shù)為多個工作節(jié)點組成的集群的業(yè)務(wù)負載參數(shù),所述預(yù)定閾值為業(yè)務(wù)負載閾值;所述方法步驟如下:
[0041]-中心節(jié)點為多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0042]各工作節(jié)點根據(jù)心跳包發(fā)送的第一時間間隔定期向中心節(jié)點發(fā)送心跳包。
[0043]-中心節(jié)點接收多個工作節(jié)點發(fā)送的心跳包,獲取多個工作節(jié)點組成的集群的業(yè)務(wù)負載參數(shù);
[0044]中心節(jié)點會周期性的獲取各工作節(jié)點組成的集群的業(yè)務(wù)負載參數(shù)。
[0045]-中心節(jié)點將所述業(yè)務(wù)負載參數(shù)與業(yè)務(wù)負載閾值比較:
[0046]當(dāng)中心節(jié)點獲取的所述業(yè)務(wù)負載參數(shù)大于或等于業(yè)務(wù)負載閾值時,中心節(jié)點向多個工作節(jié)點發(fā)送“延長心跳間隔”的消息,并為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔;
[0047]當(dāng)所述業(yè)務(wù)負載參數(shù)小于業(yè)務(wù)負載閾值時,中心節(jié)點向多個工作節(jié)點發(fā)送“縮短心跳間隔”的消息,為所述多個工作節(jié)點配置心跳包發(fā)送的第三時間間隔,所述第三時間間隔小于第一時間間隔。
[0048]這樣,當(dāng)出現(xiàn)負載的過大或過小時,中心節(jié)點及時響應(yīng)并重新配置心跳包的發(fā)送時間間隔,各工作節(jié)點接收到中心節(jié)點的消息,根據(jù)調(diào)整后的心跳時間間隔向中心節(jié)點發(fā)送心跳包。一方面防止了負載過大時心跑間隔設(shè)定的過小,系統(tǒng)無法及時響應(yīng)心跳包消息而做出錯誤判斷,另一方面防止負載過小時心跳間隔設(shè)定的過大,無法對出現(xiàn)異常的節(jié)點做出及時響應(yīng)和處理。有效提高了分布式存儲系統(tǒng)的可靠性和可用性。
[0049]如圖3,表示了當(dāng)出現(xiàn)網(wǎng)絡(luò)節(jié)點異常情況時應(yīng)用本發(fā)明的本發(fā)明的本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法的實施例。在此實施例中,步驟S102中所述工作狀態(tài)參數(shù)為多個工作節(jié)點中停發(fā)心跳包的工作節(jié)點的故障數(shù)量,所述預(yù)定閾值為節(jié)點故障數(shù)量閾值;所述方法步驟如下:
[0050]-中心節(jié)點為多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0051]各工作節(jié)點根據(jù)心跳包發(fā)送的第一時間間隔定期向中心節(jié)點發(fā)送心跳包。
[0052]-中心節(jié)點接收多個工作節(jié)點發(fā)送的心跳包,獲取多個工作節(jié)點中停發(fā)心跳包的工作節(jié)點的故障數(shù)量;
[0053]中心節(jié)點接收各工作節(jié)點發(fā)送的心跳包,并回發(fā)“ACK”消息進行響應(yīng)。當(dāng)其中某個節(jié)點心跳包超時時,就認定此節(jié)點發(fā)生故障。
[0054]單臺服務(wù)器故障的概率是不高的,然而,只要集群的規(guī)模足夠大,每天都可能有機器故障發(fā)生,系統(tǒng)需要能夠自動處理。容錯是分布式存儲系統(tǒng)設(shè)計的重要目標(biāo),只有實現(xiàn)了自動化容錯,才能減少人工運維成本,實現(xiàn)分布式存儲的規(guī)模效應(yīng)。節(jié)點故障會影響系統(tǒng)服務(wù),在故障檢測以及故障恢復(fù)的過程中,不能提供寫服務(wù)及強一致性讀服務(wù)。
[0055]其中節(jié)點故障的判斷,可依據(jù)節(jié)點向中心節(jié)點報告的系統(tǒng)消息來判斷,如果在指定時間內(nèi),中心節(jié)點沒有收到節(jié)點報告的系統(tǒng)消息,則認為節(jié)點故障。在本實施例中,采用節(jié)點向中心節(jié)點定期發(fā)送心跳包的方法來實現(xiàn),當(dāng)然也可以采用本領(lǐng)域技術(shù)人員已知的其它方法進行判斷。-中心節(jié)點將所述故障數(shù)量與節(jié)點故障數(shù)量閾值比較:
[0056]當(dāng)所述故障數(shù)量大于或等于節(jié)點故障數(shù)量閾值時,在中心節(jié)點啟動數(shù)據(jù)恢復(fù)和/或數(shù)據(jù)重分布之前,中心節(jié)點向其它未出現(xiàn)故障的節(jié)點發(fā)送“延長心跳間隔”的消息,并為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔;當(dāng)中心節(jié)點完成數(shù)據(jù)恢復(fù)和/或數(shù)據(jù)重分布后,中心節(jié)點獲取到故障數(shù)量小于節(jié)點故障數(shù)量閾值的信息時,中心節(jié)點向多個工作節(jié)點發(fā)送“恢復(fù)正常心跳間隔”的消息,例如維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。
[0057]這里,需要注意的是,對于節(jié)點故障時是否啟動異常處理機制,如啟動數(shù)據(jù)恢復(fù)/或數(shù)據(jù)重分布等會引起集群進入高負載狀態(tài)的程序,有時系統(tǒng)會設(shè)置一個開關(guān)程序,即打開時默認進行心跳相應(yīng)調(diào)整的操作,反之關(guān)閉時,對其不進行心跳的相應(yīng)調(diào)整操作。
[0058]本發(fā)明實施例中,可根據(jù)存儲數(shù)據(jù)的重要性預(yù)設(shè)節(jié)點故障數(shù)量閾R,當(dāng)存儲數(shù)據(jù)副本數(shù)量設(shè)定為N時(N多2時數(shù)據(jù)副本才具有冗余性,一般設(shè)定為3或者更高),其中,I彡R彡(N-1),當(dāng)R = I時即為有一個數(shù)據(jù)節(jié)點故障即開始執(zhí)行數(shù)據(jù)副本恢復(fù)操作,而當(dāng)RXN-1)時可能出現(xiàn)數(shù)據(jù)副本丟失的風(fēng)險。具體實施時,分布式存儲系統(tǒng)還可以根據(jù)系統(tǒng)的運行狀態(tài)或者設(shè)置的數(shù)據(jù)副本的數(shù)量,調(diào)整節(jié)點故障數(shù)量閾R。
[0059]優(yōu)選地,節(jié)點故障數(shù)量閾值設(shè)為1,即認為只要分布式存儲系統(tǒng)中出現(xiàn)節(jié)點故障就啟動數(shù)據(jù)恢復(fù)等操作。這樣,當(dāng)分布式存儲系統(tǒng)中出現(xiàn)一定數(shù)據(jù)量的節(jié)點故障時,中心節(jié)點及時響應(yīng)并重新配置心跳包的發(fā)送時間間隔,各工作節(jié)點接收到中心節(jié)點的消息,根據(jù)調(diào)整后的心跳時間間隔向中心節(jié)點發(fā)送心跳包。通過調(diào)整心跳包發(fā)送時間間隔,當(dāng)節(jié)點故障時,防止心跳間隔設(shè)定的過小,系統(tǒng)無法及時響應(yīng)心跳包消息而做出錯誤判斷,例如判定離線,啟動數(shù)據(jù)恢復(fù)或者數(shù)據(jù)迀移等。有效提高了分布式存儲系統(tǒng)的可靠性和可用性。
[0060]如圖4,表示了當(dāng)出現(xiàn)網(wǎng)絡(luò)節(jié)點磁盤容量出現(xiàn)偏差時應(yīng)用本發(fā)明分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法的實施例。在此實施例中,步驟S102中所述工作狀態(tài)參數(shù)為多個工作節(jié)點組成的集群的集群平均剩余容量百分比和多個工作節(jié)點的磁盤剩余容量百分比,所述預(yù)定閾值為磁盤容量偏差閾值;所述方法步驟如下:
[0061]-中心節(jié)點為多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0062]各工作節(jié)點根據(jù)心跳包發(fā)送的第一時間間隔定期向中心節(jié)點發(fā)送心跳包。
[0063]-中心節(jié)點接收多個工作節(jié)點發(fā)送的心跳包,獲取集群平均剩余容量百分比以及多個工作節(jié)點的磁盤剩余容量百分比;
[0064]中心節(jié)點接收各工作節(jié)點發(fā)送的心跳包,并回發(fā)“ACK”消息進行響應(yīng)。
[0065]-中心節(jié)點將所述磁盤剩余容量百分比與所述集群平均剩余容量百分比相比獲得偏差,所述偏差例如等于所述磁盤剩余容量百分比減去所述集群平均剩余容量百分比:
[0066]當(dāng)所述偏差大于或等于磁盤容量偏差閾值時,在中心節(jié)點啟動數(shù)據(jù)均衡之前,中心節(jié)點向其它節(jié)點發(fā)送“延長心跳間隔”的消息,并為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔;
[0067]當(dāng)中心節(jié)點完成數(shù)據(jù)均衡后,中心節(jié)點獲取磁盤剩余容量百分比,并與集群平均剩余容量百分比相比,當(dāng)其偏差小于磁盤容量偏差閾值時,中心節(jié)點向多個工作節(jié)點發(fā)送“恢復(fù)正常心跳間隔”的消息,例如維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。
[0068]這樣,當(dāng)分布式存儲系統(tǒng)中工作節(jié)點出現(xiàn)磁盤剩余容量百分比與集群平均剩余容量百分比的偏差大于系統(tǒng)預(yù)設(shè)的磁盤容量偏差閾值時,為了更有效的利用磁盤剩余空間,而啟動數(shù)據(jù)均衡,中心節(jié)點及時響應(yīng)并重新配置心跳包的發(fā)送時間間隔,各工作節(jié)點接收到中心節(jié)點的消息,根據(jù)調(diào)整后的心跳時間間隔向中心節(jié)點發(fā)送心跳包。這樣防止心跳間隔設(shè)定的過小,系統(tǒng)無法及時響應(yīng)心跳包消息而做出錯誤判斷。在保證分布式存儲系統(tǒng)資源有效利用的前提下,有效提高了分布式存儲系統(tǒng)的可靠性和可用性。進一步地,參照圖5本發(fā)明提供了一種用于分布式存儲系統(tǒng)的中心節(jié)點,包括:用于配置心跳包發(fā)送時間間隔的時間間隔配置單元、工作狀態(tài)參數(shù)解析單元、比較單元,
[0069]其中,時間間隔配置單元用于為分布式存儲系統(tǒng)中的多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔;
[0070]工作狀態(tài)參數(shù)解析單元用于接收多個工作節(jié)點發(fā)送的心跳包,獲取多個工作節(jié)點的工作狀態(tài)參數(shù);
[0071]比較單元用于將工作狀態(tài)參數(shù)與預(yù)定閾值比較,將比較結(jié)果發(fā)送給時間間隔配置單元;
[0072]時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。
[0073]更進一步地,中心節(jié)點中工作狀態(tài)參數(shù)包括多個工作節(jié)點組成的集群的業(yè)務(wù)負載參數(shù),預(yù)定閾值包括業(yè)務(wù)負載閾值;
[0074]比較單元用于將業(yè)務(wù)負載參數(shù)與業(yè)務(wù)負載閾值比較,將比較結(jié)果發(fā)送給時間間隔配置單元;
[0075]時間間隔配置單元用于接收比較結(jié)果,當(dāng)業(yè)務(wù)負載參數(shù)大于或等于業(yè)務(wù)負載閾值時,為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,第二時間間隔大于第一時間間隔;
[0076]當(dāng)業(yè)務(wù)負載參數(shù)小于業(yè)務(wù)負載閾值時,多個工作節(jié)點配置心跳包發(fā)送的第三時間間隔,所述第三時間間隔小于第一時間間隔。
[0077]更進一步地,中心節(jié)點中工作狀態(tài)參數(shù)包括多個工作節(jié)點中停發(fā)心跳包的工作節(jié)點的故障數(shù)量,預(yù)定閾值包括節(jié)點故障數(shù)量閾值;
[0078]比較單元用于將故障數(shù)量與節(jié)點故障數(shù)量閾值比較,將比較結(jié)果發(fā)送給時間間隔配置單元;
[0079]時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)故障數(shù)量大于或等于節(jié)點故障數(shù)量閾值時,為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,第二時間間隔大于第一時間間隔;
[0080]當(dāng)故障數(shù)量小于節(jié)點故障數(shù)量閾值時,維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。
[0081]更進一步地,中心節(jié)點中工作狀態(tài)參數(shù)包括多個工作節(jié)點組成的集群的集群平均剩余容量百分比和多個工作節(jié)點的磁盤剩余容量百分比,預(yù)定閾值包括磁盤容量偏差閾值;
[0082]比較單元用于將集群平均剩余容量百分比和磁盤剩余容量百分比之間的偏差與磁盤容量偏差閾值相比較,將比較結(jié)果發(fā)送給時間間隔配置單元;
[0083]時間間隔配置單元用于接收比較結(jié)果,當(dāng)偏差大于或等于磁盤容量偏差閾值時,為多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,第二時間間隔大于第一時間間隔;
[0084]當(dāng)偏差小于磁盤容量偏差閾值時,維持多個工作節(jié)點發(fā)送心跳包的第一時間間隔。
[0085]此外,本發(fā)明還提供了一種分布式存儲系統(tǒng),包括:根據(jù)本發(fā)明實施例提供的任一項所述的中心節(jié)點和多個工作節(jié)點。
[0086]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0087]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0088]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種分布式存儲系統(tǒng)節(jié)點狀態(tài)監(jiān)控方法,所述分布式存儲系統(tǒng)包括中心節(jié)點和多個工作節(jié)點,所述方法包括以下步驟: 所述中心節(jié)點為所述多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔; 所述中心節(jié)點接收所述多個工作節(jié)點發(fā)送的心跳包,獲取所述多個工作節(jié)點的工作狀態(tài)參數(shù);所述中心節(jié)點將所述工作狀態(tài)參數(shù)與預(yù)定閾值比較: 當(dāng)所述工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述工作狀態(tài)參數(shù)包括所述多個工作節(jié)點組成的集群的業(yè)務(wù)負載參數(shù),所述預(yù)定閾值包括業(yè)務(wù)負載閾值; 所述中心節(jié)點將所述業(yè)務(wù)負載參數(shù)與業(yè)務(wù)負載閾值比較: 當(dāng)所述業(yè)務(wù)負載參數(shù)大于或等于業(yè)務(wù)負載閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔; 當(dāng)所述業(yè)務(wù)負載參數(shù)小于業(yè)務(wù)負載閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第三時間間隔,所述第三時間間隔小于第一時間間隔。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述工作狀態(tài)參數(shù)包括所述多個工作節(jié)點中停發(fā)心跳包的工作節(jié)點的故障數(shù)量,所述預(yù)定閾值包括節(jié)點故障數(shù)量閾值; 所述中心節(jié)點將所述故障數(shù)量與節(jié)點故障數(shù)量閾值比較: 當(dāng)所述故障數(shù)量大于或等于節(jié)點故障數(shù)量閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔; 當(dāng)所述故障數(shù)量小于節(jié)點故障數(shù)量閾值時,維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述工作狀態(tài)參數(shù)包括所述多個工作節(jié)點組成的集群的集群平均剩余容量百分比和所述多個工作節(jié)點的磁盤剩余容量百分比,所述預(yù)定閾值包括磁盤容量偏差閾值; 所述中心節(jié)點將所述磁盤剩余容量百分比與所述集群平均剩余容量百分比相比獲得偏差: 當(dāng)所述偏差大于或等于磁盤容量偏差閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔; 當(dāng)所述偏差小于磁盤容量偏差閾值時,維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。5.一種用于分布式存儲系統(tǒng)的中心節(jié)點,包括:用于配置心跳包發(fā)送時間間隔的時間間隔配置單元、工作狀態(tài)參數(shù)解析單元、比較單元, 其中,所述時間間隔配置單元用于為所述分布式存儲系統(tǒng)中的多個工作節(jié)點配置心跳包發(fā)送的第一時間間隔; 所述工作狀態(tài)參數(shù)解析單元用于接收所述多個工作節(jié)點發(fā)送的心跳包,獲取所述多個工作節(jié)點的工作狀態(tài)參數(shù); 所述比較單元用于將所述工作狀態(tài)參數(shù)與預(yù)定閾值比較,將比較結(jié)果發(fā)送給所述時間間隔配置單元; 所述時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)所述工作狀態(tài)參數(shù)大于或等于預(yù)定閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔。6.根據(jù)權(quán)利要求5所述的中心節(jié)點,所述工作狀態(tài)參數(shù)包括所述多個工作節(jié)點組成的集群的業(yè)務(wù)負載參數(shù),所述預(yù)定閾值包括業(yè)務(wù)負載閾值; 所述比較單元用于將所述業(yè)務(wù)負載參數(shù)與業(yè)務(wù)負載閾值比較,將比較結(jié)果發(fā)送給所述時間間隔配置單元; 所述時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)所述業(yè)務(wù)負載參數(shù)大于或等于業(yè)務(wù)負載閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔; 當(dāng)所述業(yè)務(wù)負載參數(shù)小于業(yè)務(wù)負載閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第三時間間隔,所述第三時間間隔小于第一時間間隔。7.根據(jù)權(quán)利要求5所述的中心節(jié)點,所述工作狀態(tài)參數(shù)包括所述多個工作節(jié)點中停發(fā)心跳包的工作節(jié)點的故障數(shù)量,所述預(yù)定閾值包括節(jié)點故障數(shù)量閾值; 所述比較單元用于將所述故障數(shù)量與節(jié)點故障數(shù)量閾值比較,將比較結(jié)果發(fā)送給所述時間間隔配置單元; 所述時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)所述故障數(shù)量大于或等于節(jié)點故障數(shù)量閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔; 當(dāng)所述故障數(shù)量小于節(jié)點故障數(shù)量閾值時,維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。8.根據(jù)權(quán)利要求5所述的中心節(jié)點,所述工作狀態(tài)參數(shù)包括所述多個工作節(jié)點組成的集群的集群平均剩余容量百分比和所述多個工作節(jié)點的磁盤剩余容量百分比,所述預(yù)定閾值包括磁盤容量偏差閾值; 所述比較單元用于將所述集群平均剩余容量百分比和磁盤剩余容量百分比之間的偏差與所述磁盤容量偏差閾值相比較,將比較結(jié)果發(fā)送給所述時間間隔配置單元; 所述時間間隔配置單元用于接收所述比較結(jié)果,當(dāng)所述偏差大于或等于磁盤容量偏差閾值時,為所述多個工作節(jié)點配置心跳包發(fā)送的第二時間間隔,所述第二時間間隔大于第一時間間隔; 當(dāng)所述偏差小于磁盤容量偏差閾值時,維持所述多個工作節(jié)點發(fā)送心跳包的第一時間間隔。9.一種分布式存儲系統(tǒng),包括:中心節(jié)點和多個工作節(jié)點,其特征在于,所述中心節(jié)點為根據(jù)權(quán)利要求5-8中任一項所述的中心節(jié)點。
【文檔編號】H04L29/08GK105897499SQ201510888065
【公開日】2016年8月24日
【申請日】2015年12月7日
【發(fā)明人】陳積
【申請人】樂視云計算有限公司