一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,屬于計算機系統(tǒng)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]隨著云計算等分布式系統(tǒng)的蓬勃發(fā)展,分布式系統(tǒng)正被越來越多的用戶所使用。而分布式系統(tǒng)由大量的計算機組成集群向用戶提供服務(wù),隨著計算機數(shù)量的增加,系統(tǒng)出現(xiàn)錯誤的概率大大增加。因此可能導(dǎo)致運行在這些節(jié)點上的用戶任務(wù)出錯,更可能給用戶帶來不可估量的損失。因此,分布式任務(wù)故障冗余對于分布式系統(tǒng)的高可靠性、高可用性以及用戶友好性等是不可或缺的。
【發(fā)明內(nèi)容】
[0003]為解決現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種提升任務(wù)高可靠性、系統(tǒng)高可用性以及用戶友好性的適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,能夠快速、準確的檢測到分布式任務(wù)的故障情況,并且能夠及時在集群其它節(jié)點重啟該故障任務(wù)為主要目的;以對用戶使用簡單、透明為次要目的。
[0004]為了實現(xiàn)上述目標(biāo),本發(fā)明采用如下的技術(shù)方案:
[0005]—種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,其特征是,具體包括以下步驟:
[0006]I)通過對外接口接受故障冗余管理:所述對外接口提供給上層任務(wù)調(diào)用,將任務(wù)信息添加進故障冗余任務(wù)隊列內(nèi),上層任務(wù)進而獲得故障冗余管理;
[0007]2)節(jié)點內(nèi)任務(wù)故障冗余:集群中每個節(jié)點上的管理程序負責(zé)維護本節(jié)點上的任務(wù)信息,對在本節(jié)點上運行的任務(wù)進行故障冗余,并負責(zé)將本節(jié)點上的任務(wù)信息同步更新到集群管理節(jié)點上;
[0008]3)任務(wù)信息同步:集群中每個節(jié)點將本節(jié)點上的任務(wù)信息同步更新匯總到集群管理節(jié)點上;
[0009]4)節(jié)點間任務(wù)故障冗余:集群管理節(jié)點上的管理程序負責(zé)維護整個集群內(nèi)的任務(wù)信息,對故障的任務(wù)進行節(jié)點間故障冗余,將集群管理節(jié)點上的任務(wù)信息同步更新到備用節(jié)點;節(jié)點間故障冗余成功后,任務(wù)恢復(fù)成功信息由集群管理節(jié)點向故障節(jié)點立刻同步;
[0010]5)集群管理節(jié)點選舉:集群中存在多臺集群管理備用節(jié)點,當(dāng)集群管理節(jié)點故障時,立即從備用管理節(jié)點選舉出一臺可用的節(jié)點對外提供集群管理功能,達到集群管理節(jié)點故障冗余;
[0011]6)任務(wù)信息備份冗余:集群管理節(jié)點上的任務(wù)信息同步更新到備用節(jié)點上;
[0012]7)通過退出接口退出故障冗余管理:所述退出接口提供給上層任務(wù)退出時調(diào)用,將任務(wù)信息從故障冗余任務(wù)隊列內(nèi)刪除,上層任務(wù)進而退出故障冗余管理。
[0013]前述的一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,其特征是,所述步驟2)中,對任務(wù)信息的維護包括對任務(wù)信息的更新和刪除操作;通過輪詢方式來檢測任務(wù)是否故障,當(dāng)任務(wù)故障發(fā)生時,在節(jié)點內(nèi)對任務(wù)恢復(fù),如果恢復(fù)次數(shù)超過所配置的次數(shù)限制,則節(jié)點內(nèi)任務(wù)故障冗余失敗。
[0014]前述的一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,其特征是,在所述步驟3)中任務(wù)信息由每臺節(jié)點向集群管理節(jié)點周期性同步;節(jié)點內(nèi)故障冗余失敗后,任務(wù)信息由故障節(jié)點向集群管理節(jié)點立刻同步。
[0015]前述的一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,其特征是,所述步驟4)中對任務(wù)信息的維護包括對任務(wù)信息的添加、更新和刪除操作;當(dāng)節(jié)點內(nèi)故障冗余失敗后,進行節(jié)點間故障冗余,集群管理節(jié)點首先查看任務(wù)是否有指定的啟動節(jié)點集合,如果有則在指定節(jié)點集合中選擇一臺節(jié)點負載最小的節(jié)點恢復(fù)該任務(wù),如果沒有指定節(jié)點集合,則在集群中選擇一臺節(jié)點負載最小的節(jié)點恢復(fù)該任務(wù)。
[0016]前述的一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,其特征是,所述步驟5)中集群管理節(jié)點周期性的發(fā)送心跳組播報文,備用節(jié)點周期性的接收該心跳報文;當(dāng)備用節(jié)點超過一定時間未收到心跳報文后,判定集群管理節(jié)點失效,備用節(jié)點升為集群管理節(jié)點;當(dāng)某一集群管理節(jié)點收到其它集群節(jié)點管理節(jié)點心跳報文后,當(dāng)前節(jié)點會與發(fā)送心跳報文節(jié)點進行IP地址整數(shù)值比較,本機數(shù)值大時,則本機降為備用節(jié)點并停止發(fā)送心跳報文,本機數(shù)值小時,繼續(xù)發(fā)送心跳報文直至在一定時間內(nèi)沒有收到其它集群管理節(jié)點的心跳報文,則該節(jié)點作為新的集群管理節(jié)點并將該集群管理節(jié)點信息通知到集群的每個節(jié)點。
[0017]前述的一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,其特征是,所述步驟6)中集群管理節(jié)點周期性的將任務(wù)信息同步更新到備用節(jié)點,并且當(dāng)有任務(wù)狀態(tài)發(fā)生添加或退出或故障的變化時立刻將任務(wù)變化信息同步更新到備用節(jié)點。
[0018]本發(fā)明所達到的有益效果:1、任務(wù)的可靠性提高,分布式任務(wù)在集群中運行故障時可以在節(jié)點內(nèi)、節(jié)點間及時恢復(fù),提高了集群分布式任務(wù)的可靠性;2、系統(tǒng)的可用性提高,管理程序采用了主備冗余技術(shù),且任務(wù)故障冗余管理對于用戶來說是透明的,用戶在使用過程中感覺不到任務(wù)故障冗余的存在;3、可移植性好,不需要借助任何操作系統(tǒng)自帶軟件;4、具有跨平臺能力,服務(wù)程序可以部署在不同的操作系統(tǒng)服務(wù)器上;5、使用簡單,用戶只需要調(diào)用幾個接口即可使用故障冗余;6、部署簡單,只需要部署管理程序、動態(tài)庫即可運行。
【附圖說明】
[0019]圖1是本發(fā)明中任務(wù)狀態(tài)轉(zhuǎn)換圖;
[0020]圖2是本發(fā)明中節(jié)點間通信示意圖;
[0021]圖3是本發(fā)明中集群管理節(jié)點選舉算法流程圖;
【具體實施方式】
[0022]下面結(jié)合附圖對本發(fā)明作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。
[0023]本發(fā)明涉及一種適用于集群系統(tǒng)的分布式任務(wù)故障冗余方法,包括以下步驟:
[0024]I)通過對外接口接受故障冗余管理:對外接口提供給上層任務(wù)調(diào)用,將任務(wù)信息添加進故障冗余任務(wù)隊列內(nèi),上層任務(wù)進而獲得故障冗余管理。
[0025]2)節(jié)點內(nèi)任務(wù)故障冗余:集群中每個節(jié)點上的管理程序負責(zé)維護本節(jié)點上的任務(wù)信息,對在本節(jié)點上運行的任務(wù)進行故障冗余,并負責(zé)將本節(jié)點上的任務(wù)信息同步更新到集群管理節(jié)點上;對任務(wù)信息的維護包括對任務(wù)信息的更新和刪除操作;通過輪詢方式來檢測任務(wù)是否故障,當(dāng)任務(wù)故障發(fā)生時,在節(jié)點內(nèi)對任務(wù)恢復(fù),如果恢復(fù)次數(shù)超過所配置的次數(shù)限制,則節(jié)點內(nèi)任務(wù)故障冗余失敗。
[0026]3)任務(wù)信息同步:集群中每個節(jié)點將本節(jié)點上的任務(wù)信息同步更新匯總到集群管理節(jié)點上;任務(wù)信息由每臺節(jié)點向集群管理節(jié)點周期性同步;節(jié)點內(nèi)故障冗余失敗后,任務(wù)信息由故障節(jié)點向集群管理節(jié)點立刻同步。
[0027]4)節(jié)點間任務(wù)故障冗余:集群管理節(jié)點上的管理程序負責(zé)維護整個集群內(nèi)的任務(wù)信息,對故障的任務(wù)進行節(jié)點間故障冗余,將集群管理節(jié)點上的任務(wù)信息同步更新到備用節(jié)點;節(jié)點間故障冗余成功后,任務(wù)恢復(fù)成功信息由集群管理節(jié)點向故障節(jié)點立刻同步;對任務(wù)信息的維護包括對任務(wù)信息的添加、更新和刪除操作;當(dāng)節(jié)點內(nèi)故障冗余失敗后,進行節(jié)點間故障冗余,集群管理節(jié)點首先查看任務(wù)是否有指定的啟動節(jié)點集合,如果有則在指定節(jié)點集合中選擇一臺節(jié)點負載最小的節(jié)點恢復(fù)該任務(wù),如果沒有指定節(jié)點集合,則在集群中選擇一臺節(jié)點負載最小的節(jié)點恢復(fù)該任務(wù)。
[0028]5)集群管理節(jié)點選舉:集群中存在多臺集群管理備用節(jié)點,當(dāng)集群管理節(jié)點故障時,立即從備用管理節(jié)點選舉出一臺可用的節(jié)點對外提供集群管理功能,達到集群管理節(jié)點故障冗余;集群管理節(jié)點周期性的發(fā)送心跳組播報文,備用節(jié)點周期性的接收該心跳報文;當(dāng)備用