專利名稱:分布式文件系統(tǒng)及其故障處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,并且特別地,涉及一種分布式文件系統(tǒng)及其故障處理方法。
背景技術(shù):
為了保證分布式文件系統(tǒng)的高可靠性,對(duì)于分布式文件系統(tǒng)中的關(guān)鍵服務(wù),如元數(shù)據(jù)服務(wù)、數(shù)據(jù)服務(wù)等,都需要通過冗余的方式來提高其可靠性。對(duì)于可靠性的實(shí)現(xiàn)方法,一般有兩種(I)主備方式主節(jié)點(diǎn)進(jìn)行系統(tǒng)服務(wù),備份節(jié)點(diǎn)不工作,處于備份狀態(tài),一旦主節(jié)點(diǎn)出現(xiàn)故障,則將服務(wù)切換到備份節(jié)點(diǎn),由備份節(jié)點(diǎn)提供服務(wù),當(dāng)故障節(jié)點(diǎn)修復(fù)完成之后,變成新的備份節(jié)點(diǎn),等待后續(xù)切換;(2)熱備模式在該模式下,正常情況下,高可靠組中間的所有節(jié)點(diǎn)都向外提供不同的服務(wù),同時(shí)互為備份。當(dāng)某一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),高可靠組中的其他節(jié)點(diǎn)接管故障節(jié)點(diǎn)的服務(wù)?,F(xiàn)有的高可用系統(tǒng),一般支持雙機(jī)高可用,通過兩個(gè)節(jié)點(diǎn)之間的心跳消息判定節(jié)點(diǎn)故障并進(jìn)行備份系統(tǒng)的切換。或采用多機(jī)均衡方式,該方式實(shí)現(xiàn)中存在一個(gè)前端節(jié)點(diǎn),和多個(gè)后端服務(wù)節(jié)點(diǎn),前端節(jié)點(diǎn)負(fù)責(zé)監(jiān)控后端節(jié)點(diǎn),并將服務(wù)請(qǐng)求轉(zhuǎn)向到后端服務(wù)節(jié)點(diǎn),后端服務(wù)節(jié)點(diǎn)定期向前端節(jié)點(diǎn)報(bào)告節(jié)點(diǎn)狀態(tài),并對(duì)傳入的請(qǐng)求進(jìn)行服務(wù)。多機(jī)機(jī)群方式,指多個(gè)節(jié)點(diǎn)組成一個(gè)高可靠性組,節(jié)點(diǎn)內(nèi)部的某一個(gè)節(jié)點(diǎn)出現(xiàn)故障,系統(tǒng)內(nèi)部的其他節(jié)點(diǎn)根據(jù)規(guī)則進(jìn)行接管。現(xiàn)有的高可靠性系統(tǒng)的協(xié)議實(shí)現(xiàn)較為簡(jiǎn)單,如雙機(jī)熱備份的方式只支持雙機(jī)的服務(wù)備份,多機(jī)負(fù)載均衡只支持單一的服務(wù),同時(shí)需要復(fù)雜的前端節(jié)點(diǎn)的服務(wù)重定向。同時(shí)多機(jī)機(jī)群方式在實(shí)現(xiàn)上往往比較復(fù)雜。分布式文件系統(tǒng)對(duì)可靠性的需求相對(duì)復(fù)雜,在節(jié)點(diǎn)出現(xiàn)故障之后,需要通知可靠性組中相關(guān)節(jié)點(diǎn)準(zhǔn)備接管,選擇一個(gè)負(fù)載低的節(jié)點(diǎn)接管服務(wù);在系統(tǒng)恢復(fù)之后,需要進(jìn)行上線處理。對(duì)于分布式文件系統(tǒng)的特殊環(huán)境來說,現(xiàn)有可靠性協(xié)議支持不足。并且,在目前的方案中,恢復(fù)后重新上線的節(jié)點(diǎn)不能夠投入工作,導(dǎo)致系統(tǒng)中可工作和進(jìn)行后續(xù)備份的節(jié)點(diǎn)數(shù)量減少,既不利于提高系統(tǒng)的可靠性,還會(huì)導(dǎo)致系統(tǒng)的資源利用率降低。針對(duì)相關(guān)技術(shù)中分布式文件系統(tǒng)可靠性低、系統(tǒng)資源利用率差的問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中分布式文件系統(tǒng)可靠性低、系統(tǒng)資源利用率差的問題,本發(fā)明提出一種分布式文件系統(tǒng)及其故障處理方法,能夠重啟故障節(jié)點(diǎn)且對(duì)其重新分配任務(wù),保證文件系統(tǒng)的不間斷服務(wù),有效應(yīng)對(duì)故障情況,并提高分布式文件系統(tǒng)的可靠性和資源利用率。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式文件系統(tǒng)的故障處理方法,其特征在于,故障處理方法包括在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);故障節(jié)點(diǎn)向備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求,且故障節(jié)點(diǎn)進(jìn)行重啟;分布式文件系統(tǒng)對(duì)重啟后的故障節(jié)點(diǎn)分配任務(wù)。此外,該方法還包括通過以下方式確定分布式文件系統(tǒng)中的節(jié)點(diǎn)是否出現(xiàn)故障在分布式文件系統(tǒng)中節(jié)點(diǎn)的監(jiān)控進(jìn)程在預(yù)定周期內(nèi)未收到該節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送的心跳消息的情況下,分布式文件系統(tǒng)中的其他部分或全部節(jié)點(diǎn)向該節(jié)點(diǎn)發(fā)送待響應(yīng)消息;如果該節(jié)點(diǎn)無法對(duì)來自其他節(jié)點(diǎn)的待響應(yīng)消息進(jìn)行響應(yīng),則確定該節(jié)點(diǎn)為故障節(jié)點(diǎn)。其中,該方法進(jìn)一步包括服務(wù)進(jìn)程按預(yù)定周期向監(jiān)控進(jìn)程發(fā)送心跳消息; 監(jiān)控進(jìn)程實(shí)時(shí)查詢服務(wù)進(jìn)程的心跳消息。另外,從分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn)包括選擇分布式文件系統(tǒng)中負(fù)載最輕的節(jié)點(diǎn)作為備份節(jié)點(diǎn)接管故障節(jié)點(diǎn)的服務(wù)??蛇x地,故障節(jié)點(diǎn)向備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求包括故障節(jié)點(diǎn)的服務(wù)進(jìn)程通過數(shù)據(jù)網(wǎng)絡(luò)向分布式文件系統(tǒng)中的備份節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送接管請(qǐng)求。其中,在故障節(jié)點(diǎn)向備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求之后,故障處理方法進(jìn)一步包括備份節(jié)點(diǎn)接收接管請(qǐng)求,該備份節(jié)點(diǎn)的服務(wù)進(jìn)程進(jìn)行服務(wù)的接管。另外,分布式文件系統(tǒng)對(duì)重啟后的故障節(jié)點(diǎn)分配任務(wù)包括根據(jù)分布式文件系統(tǒng)中除了重啟后的故障節(jié)點(diǎn)之外其他部分或全部節(jié)點(diǎn)的負(fù)載對(duì)該重啟后的故障節(jié)點(diǎn)分配任務(wù)。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種分布式文件系統(tǒng),包括多個(gè)節(jié)點(diǎn)、選擇模塊、任務(wù)分配模塊;其中,選擇模塊用于在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);每個(gè)節(jié)點(diǎn)包括重啟操作模塊,用于在所在節(jié)點(diǎn)出現(xiàn)故障的情況下對(duì)所在節(jié)點(diǎn)進(jìn)行
重啟;任務(wù)分配模塊,用于對(duì)分布式文件系統(tǒng)中重啟后的故障節(jié)點(diǎn)分配任務(wù)。此外,該分布式文件系統(tǒng)還包括確定模塊,用于在分布式文件系統(tǒng)中節(jié)點(diǎn)的監(jiān)控進(jìn)程在預(yù)定周期內(nèi)未收到該節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送的心跳消息、且該節(jié)點(diǎn)無法對(duì)來自其他節(jié)點(diǎn)的待響應(yīng)消息進(jìn)行響應(yīng)的情況下,確定該節(jié)點(diǎn)為故障節(jié)點(diǎn)。
其中,任務(wù)分配模塊用于根據(jù)分布式文件系統(tǒng)中除了重啟后的故障節(jié)點(diǎn)之外其他部分或全部節(jié)點(diǎn)的負(fù)載,對(duì)該重啟后的故障節(jié)點(diǎn)分配任務(wù)。本發(fā)明通過在確定分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從其他節(jié)點(diǎn)中選擇負(fù)載最輕的節(jié)點(diǎn)作為備份節(jié)點(diǎn),向其發(fā)送接管請(qǐng)求,備份節(jié)點(diǎn)的服務(wù)進(jìn)程進(jìn)行服務(wù)的接管,且重啟故障節(jié)點(diǎn)再對(duì)其進(jìn)行任務(wù)分配,能夠保證文件系統(tǒng)的不間斷服務(wù),有效應(yīng)對(duì)故障情況,提高分布式文件系統(tǒng)的可靠性。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的故障處理方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的故障處理方法的實(shí)現(xiàn)原理示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的故障處理方法中故障節(jié)點(diǎn)確定及通知的原理不意圖;圖4是根據(jù)本發(fā)明的實(shí)施例的分布式文件系統(tǒng)的框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。根據(jù)本發(fā)明的實(shí)施例,提供了一種分布式文件系統(tǒng)的故障處理方法。如圖1所示,根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的故障處理方法,包括步驟101,在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);步驟103,故障節(jié)點(diǎn)向備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求,且故障節(jié)點(diǎn)進(jìn)行重啟;步驟105,分布式文件系統(tǒng)對(duì)重啟后的故障節(jié)點(diǎn)分配任務(wù)。此外,該方法還可以包括通過以下方式確定分布式文件系統(tǒng)中的節(jié)點(diǎn)是否出現(xiàn)故障在分布式文件系統(tǒng)中節(jié)點(diǎn)的監(jiān)控進(jìn)程在預(yù)定周期內(nèi)未收到該節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送的心跳消息的情況下,分布式文件系統(tǒng)中的其他部分或全部節(jié)點(diǎn)向該節(jié)點(diǎn)發(fā)送待響應(yīng)消息;如果該節(jié)點(diǎn)無法對(duì)來自其他節(jié)點(diǎn)的待響應(yīng)消息進(jìn)行響應(yīng),則確定該節(jié)點(diǎn)為故障節(jié)點(diǎn)。其中,在上述方法中,服務(wù)進(jìn)程按預(yù)定周期向監(jiān)控進(jìn)程發(fā)送心跳消息;監(jiān)控進(jìn)程實(shí)時(shí)查詢服務(wù)進(jìn)程的心跳消息。另外,從分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn)包括
選擇分布式文件系統(tǒng)中負(fù)載最輕的節(jié)點(diǎn)作為備份節(jié)點(diǎn)接管故障節(jié)點(diǎn)的服務(wù)??蛇x地,故障節(jié)點(diǎn)向備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求包括故障節(jié)點(diǎn)的服務(wù)進(jìn)程通過數(shù)據(jù)網(wǎng)絡(luò)向分布式文件系統(tǒng)中的備份節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送接管請(qǐng)求。其中,在故障節(jié)點(diǎn)向備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求之后,根據(jù)本發(fā)明的分布式文件系統(tǒng)的故障處理方法可以進(jìn)一步包括備份節(jié)點(diǎn)接收接管請(qǐng)求,該備份節(jié)點(diǎn)的服務(wù)進(jìn)程進(jìn)行服務(wù)的接管。另外,分布式文件系統(tǒng)對(duì)重啟后的故障節(jié)點(diǎn)分配任務(wù)包括根據(jù)分布式文件系統(tǒng)中除了重啟后的故障節(jié)點(diǎn)之外其他部分或全部節(jié)點(diǎn)的負(fù)載對(duì)該重啟后的故障節(jié)點(diǎn)分配任務(wù)。根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的故障處理方法可以采用面向分布式文件系統(tǒng)的可靠性組協(xié)議實(shí)現(xiàn)方法。如圖2所示,這種可靠性組協(xié)議實(shí)現(xiàn)方法的實(shí)現(xiàn)主要借助于兩類進(jìn)程,即,監(jiān)控進(jìn)程和服務(wù)進(jìn)程。監(jiān)控進(jìn)程和服務(wù)進(jìn)程之間采用定期心跳的方式來交換系統(tǒng)狀態(tài),同時(shí),監(jiān)控進(jìn)程和可靠性組中的其他監(jiān)控進(jìn)程通過監(jiān)控網(wǎng)絡(luò)定期交換心跳消息,獲取組中間其他節(jié)點(diǎn)的狀態(tài)??煽啃越M中的服務(wù)進(jìn)程通過數(shù)據(jù)網(wǎng)絡(luò)連接,進(jìn)行數(shù)據(jù)交互;監(jiān)控進(jìn)程通過監(jiān)控網(wǎng)絡(luò)連接,交互心跳消息和監(jiān)控命令。這里,進(jìn)程之間通信的網(wǎng)絡(luò)可以包括多種網(wǎng)絡(luò),例如,可以是以太網(wǎng),也可以是高性能的通信網(wǎng)絡(luò),如Infiniband,此外,也可以是串口、USB等設(shè)備。服務(wù)進(jìn)程負(fù)責(zé)實(shí)現(xiàn)實(shí)際的分布式文件系統(tǒng)服務(wù),并定期和監(jiān)控進(jìn)程交換心跳消息,報(bào)告服務(wù)的狀態(tài)。在實(shí)際應(yīng)用中,系統(tǒng)中監(jiān)控進(jìn)程和服務(wù)進(jìn)程之間的監(jiān)控流程如下第一步,在系統(tǒng)初始化時(shí)監(jiān)控進(jìn)程啟動(dòng),根據(jù)配置文件配置可靠性組信息,讀取系統(tǒng)可靠性組配置,并啟動(dòng)本地服務(wù)進(jìn)程;第二步,在服務(wù)進(jìn)程啟動(dòng)之后,啟動(dòng)對(duì)應(yīng)的心跳線程,通過消息向監(jiān)控進(jìn)程報(bào)告服務(wù)狀態(tài),并發(fā)出心跳消息,心跳消息的傳輸方式為共享內(nèi)存,或者系統(tǒng)提供的socket、消息隊(duì)列等;第三步,監(jiān)控進(jìn)程查詢服務(wù)進(jìn)程的心跳消息,確定服務(wù)進(jìn)程的狀態(tài),如果發(fā)現(xiàn)服務(wù)進(jìn)程故障,則通過監(jiān)控網(wǎng)絡(luò)和可靠性組中間的其他監(jiān)控進(jìn)程交互,決定對(duì)服務(wù)進(jìn)程的動(dòng)作。監(jiān)控進(jìn)程也向外發(fā)出監(jiān)控進(jìn)程心跳消息,如果其他監(jiān)控進(jìn)程發(fā)現(xiàn)某一個(gè)節(jié)點(diǎn)死機(jī),同時(shí)通過數(shù)據(jù)網(wǎng)絡(luò)驗(yàn)證節(jié)點(diǎn)死機(jī),則通知可靠性組里面的監(jiān)控進(jìn)程進(jìn)行接管服務(wù)的協(xié)議交互;第四步,監(jiān)控進(jìn)程之間通過協(xié)議交互決定需要對(duì)該故障服務(wù)進(jìn)程做何種處理;第五步,監(jiān)控進(jìn)程如果決定需要重啟服務(wù)進(jìn)程,則直接跳到第一步,重啟服務(wù)進(jìn)程。如果其他監(jiān)控進(jìn)程通過協(xié)議交互認(rèn)為需要重啟機(jī)器,則通過管理接口如IPMI接口重啟物理機(jī)器。本步驟操作均需要在第四步的協(xié)議交互完成之后進(jìn)行。在判斷某個(gè)節(jié)點(diǎn)出現(xiàn)服務(wù)失效的情況下,本發(fā)明可以采用以下協(xié)議處理步驟監(jiān)控進(jìn)程通過定期監(jiān)視服務(wù)進(jìn)程的心跳消息確定服務(wù)進(jìn)程是否故障,通過其他監(jiān)控進(jìn)程的心跳消息和數(shù)據(jù)網(wǎng)絡(luò)上的數(shù)據(jù)消息確定節(jié)點(diǎn)是否死機(jī);發(fā)現(xiàn)節(jié)點(diǎn)服務(wù)狀態(tài)異常后,向可靠性組內(nèi)部的其他節(jié)點(diǎn)發(fā)送通知消息,報(bào)告節(jié)點(diǎn)服務(wù)異常;
可靠性組內(nèi)部通過選舉協(xié)議進(jìn)行選擇,根據(jù)當(dāng)前服務(wù)的負(fù)載情況,選擇一個(gè)負(fù)載輕的節(jié)點(diǎn)作為接管節(jié)點(diǎn),通知接管節(jié)點(diǎn)接管故障節(jié)點(diǎn)上的服務(wù);接管節(jié)點(diǎn)在接收到接管請(qǐng)求之后,通知服務(wù)進(jìn)程進(jìn)行服務(wù)的接管,當(dāng)服務(wù)進(jìn)程完成對(duì)故障節(jié)點(diǎn)的服務(wù)接管之后,通知故障節(jié)點(diǎn)上的監(jiān)控節(jié)點(diǎn)準(zhǔn)備重啟服務(wù)進(jìn)程,如果故障節(jié)點(diǎn)死機(jī),則直接通過IPMI接口重啟節(jié)點(diǎn)I的物理機(jī)器,并重啟故障上的監(jiān)控進(jìn)程和服務(wù)進(jìn)程;故障節(jié)點(diǎn)在進(jìn)程重啟動(dòng)成功,將狀態(tài)改為備份節(jié)點(diǎn)狀態(tài),等待后續(xù)節(jié)點(diǎn)故障的服務(wù)切換。具體地,圖3示出了在判斷某個(gè)節(jié)點(diǎn)出現(xiàn)服務(wù)失效的情況下的協(xié)議處理步驟。如圖3所示,處理過程包括步驟SI,發(fā)現(xiàn)服務(wù)故障或者節(jié)點(diǎn)故障,如果監(jiān)控進(jìn)程在一定時(shí)間內(nèi)未接收到服務(wù)進(jìn)程發(fā)送過來的心跳消息,同時(shí)通過系統(tǒng)接口確定服務(wù)進(jìn)程死機(jī),則認(rèn)為該服務(wù)故障。例如,如圖3所示,如果其他節(jié)點(diǎn)通過數(shù)據(jù)網(wǎng)絡(luò)和監(jiān)控網(wǎng)絡(luò)發(fā)現(xiàn)節(jié)點(diǎn)I長(zhǎng)時(shí)間未發(fā)送心跳消息,認(rèn)為節(jié)點(diǎn)I死機(jī)。步驟S2,發(fā)現(xiàn)節(jié)點(diǎn)I服務(wù)狀態(tài)異常后,向可靠性組內(nèi)部的其他節(jié)點(diǎn)發(fā)送通知消息,報(bào)告節(jié)點(diǎn)I服務(wù)異常。步驟S3,可靠性組內(nèi)部通過選舉協(xié)議進(jìn)行選擇,根據(jù)當(dāng)前服務(wù)的負(fù)載情況,選擇一個(gè)負(fù)載輕的節(jié)點(diǎn)作為接管節(jié)點(diǎn)(節(jié)點(diǎn)2),通知節(jié)點(diǎn)2進(jìn)行節(jié)點(diǎn)I服務(wù)的接管。步驟S4,節(jié)點(diǎn)2在接收到接管請(qǐng)求之后,通知服務(wù)進(jìn)程進(jìn)行服務(wù)的接管,當(dāng)服務(wù)進(jìn)程完成對(duì)節(jié)點(diǎn)I的服務(wù)接管之后,通知節(jié)點(diǎn)I上的監(jiān)控進(jìn)程準(zhǔn)備重啟服務(wù)進(jìn)程,如果節(jié)點(diǎn)I為死機(jī)狀態(tài),則直接通過IPMI接口重啟節(jié)點(diǎn)I的物理機(jī)器,并重啟節(jié)點(diǎn)I上的監(jiān)控進(jìn)程和服務(wù)進(jìn)程。節(jié)點(diǎn)I上的進(jìn)程重啟動(dòng)成功,將狀態(tài)改為備份節(jié)點(diǎn)狀態(tài),等待后續(xù)節(jié)點(diǎn)故障的服務(wù)切換。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了 一種分布式文件系統(tǒng)。如圖4所示,根據(jù)本發(fā)明的實(shí)施例提供的分布式文件系統(tǒng)包括選擇模塊、多個(gè)節(jié)點(diǎn)、任務(wù)分配模塊;選擇模塊41,用于在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);多個(gè)節(jié)點(diǎn)42,每個(gè)節(jié)點(diǎn)包括重啟操作模塊,用于在所在節(jié)點(diǎn)出現(xiàn)故障的情況下對(duì)所在節(jié)點(diǎn)進(jìn)行重啟;任務(wù)分配模塊43,用于對(duì)分布式文件系統(tǒng)中重啟后的故障節(jié)點(diǎn)分配任務(wù)。此外,該分布式文件系統(tǒng)還包括確定模塊(未示出),用于在分布式文件系統(tǒng)中節(jié)點(diǎn)的監(jiān)控進(jìn)程在預(yù)定周期內(nèi)未收到該節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送的心跳消息、且該節(jié)點(diǎn)無法對(duì)來自其他節(jié)點(diǎn)的待響應(yīng)消息進(jìn)行響應(yīng)的情況下,確定該節(jié)點(diǎn)為故障節(jié)點(diǎn)。其中,任務(wù)分配模塊43用于根據(jù)分布式文件系統(tǒng)中除了重啟后的故障節(jié)點(diǎn)之外其他部分或全部節(jié)點(diǎn)的負(fù)載,對(duì)該重啟后的故障節(jié)點(diǎn)分配任務(wù)。綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過在確定分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從其他節(jié)點(diǎn)中選擇負(fù)載最輕的節(jié)點(diǎn)作為備份節(jié)點(diǎn),向其發(fā)送接管請(qǐng)求,備份節(jié)點(diǎn)的服務(wù)進(jìn)程進(jìn)行服務(wù)的接管,且重啟故障節(jié)點(diǎn)再對(duì)其進(jìn)行任務(wù)分配,能夠保證可靠性組中節(jié)點(diǎn)服務(wù)的高可靠性,在系統(tǒng)故障時(shí)通過協(xié)議實(shí)現(xiàn)故障節(jié)點(diǎn)服務(wù)接管并重啟服務(wù),以保證不間斷的文件系統(tǒng)服務(wù),該方案有效應(yīng)對(duì)故障情況,降低了可靠性的實(shí)現(xiàn)難度,提高分布式文件系統(tǒng)的可靠性。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種分布式文件系統(tǒng)的故障處理方法,其特征在于,所述故障處理方法包括在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從所述分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);所述故障節(jié)點(diǎn)向所述備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求,且所述故障節(jié)點(diǎn)進(jìn)行重啟;所述分布式文件系統(tǒng)對(duì)重啟后的所述故障節(jié)點(diǎn)分配任務(wù)。
2.根據(jù)權(quán)利要求1所述的故障處理方法,其特征在于,進(jìn)一步包括通過以下方式確定所述分布式文件系統(tǒng)中的節(jié)點(diǎn)是否出現(xiàn)故障在所述分布式文件系統(tǒng)中節(jié)點(diǎn)的監(jiān)控進(jìn)程在預(yù)定周期內(nèi)未收到所述該節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送的心跳消息的情況下,所述分布式文件系統(tǒng)中的其他部分或全部節(jié)點(diǎn)向該節(jié)點(diǎn)發(fā)送待響應(yīng)消息;如果該節(jié)點(diǎn)無法對(duì)來自其他節(jié)點(diǎn)的待響應(yīng)消息進(jìn)行響應(yīng),則確定該節(jié)點(diǎn)為故障節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求2所述的故障處理方法,其特征在于,進(jìn)一步包括所述服務(wù)進(jìn)程按預(yù)定周期向所述監(jiān)控進(jìn)程發(fā)送心跳消息;所述監(jiān)控進(jìn)程實(shí)時(shí)查詢所述服務(wù)進(jìn)程的心跳消息。
4.根據(jù)權(quán)利要求1所述的故障處理方法,其特征在于,從所述分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn)包括選擇所述分布式文件系統(tǒng)中負(fù)載最輕的節(jié)點(diǎn)作為備份節(jié)點(diǎn)接管所述故障節(jié)點(diǎn)的服務(wù)。
5.根據(jù)權(quán)利要求1所述的故障處理方法,其特征在于,所述故障節(jié)點(diǎn)向所述備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求包括所述故障節(jié)點(diǎn)的服務(wù)進(jìn)程通過數(shù)據(jù)網(wǎng)絡(luò)向所述分布式文件系統(tǒng)中的備份節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送接管請(qǐng)求。
6.根據(jù)權(quán)利要求1所述的故障處理方法,其特征在于,在所述故障節(jié)點(diǎn)向所述備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求之后,所述故障處理方法進(jìn)一步包括備份節(jié)點(diǎn)接收所述接管請(qǐng)求,該備份節(jié)點(diǎn)的服務(wù)進(jìn)程進(jìn)行服務(wù)的接管。
7.根據(jù)權(quán)利要求1所述的故障處理方法,其特征在于,所述分布式文件系統(tǒng)對(duì)重啟后的所述故障節(jié)點(diǎn)分配任務(wù)包括根據(jù)所述分布式文件系統(tǒng)中除了重啟后的所述故障節(jié)點(diǎn)之外其他部分或全部節(jié)點(diǎn)的負(fù)載對(duì)該重啟后的所述故障節(jié)點(diǎn)分配任務(wù)。
8.一種分布式文件系統(tǒng),其特征在于,包括多個(gè)節(jié)點(diǎn)、選擇模塊、任務(wù)分配模塊;其中,所述選擇模塊用于在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從所述分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);每個(gè)節(jié)點(diǎn)包括重啟操作模塊,用于在所在節(jié)點(diǎn)出現(xiàn)故障的情況下對(duì)所在節(jié)點(diǎn)進(jìn)行重啟;任務(wù)分配模塊,用于對(duì)所述分布式文件系統(tǒng)中重啟后的故障節(jié)點(diǎn)分配任務(wù)。
9.根據(jù)權(quán)利要求8所述的分布式文件系統(tǒng),其特征在于,進(jìn)一步包括確定模塊,用于在所述分布式文件系統(tǒng)中節(jié)點(diǎn)的監(jiān)控進(jìn)程在預(yù)定周期內(nèi)未收到所述該節(jié)點(diǎn)的服務(wù)進(jìn)程發(fā)送的心跳消息、且該節(jié)點(diǎn)無法對(duì)來自其他節(jié)點(diǎn)的待響應(yīng)消息進(jìn)行響應(yīng)的情況下,確定該節(jié)點(diǎn)為故障節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求8所述的分布式文件系統(tǒng),其特征在于,所述任務(wù)分配模塊用于根據(jù)所述 分布式文件系統(tǒng)中除了重啟后的故障節(jié)點(diǎn)之外其他部分或全部節(jié)點(diǎn)的負(fù)載,對(duì)該重啟后的故障節(jié)點(diǎn)分配任務(wù)。
全文摘要
本發(fā)明公開了一種分布式文件系統(tǒng)及其故障處理方法,其中,該方法包括在分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從所述分布式文件系統(tǒng)中的其他節(jié)點(diǎn)中選擇備份節(jié)點(diǎn);所述故障節(jié)點(diǎn)向所述備份節(jié)點(diǎn)發(fā)送接管請(qǐng)求,且所述故障節(jié)點(diǎn)進(jìn)行重啟;所述分布式文件系統(tǒng)對(duì)重啟后的所述故障節(jié)點(diǎn)分配任務(wù)。借助于本發(fā)明的上述技術(shù)方案,通過在確定分布式文件系統(tǒng)中存在故障節(jié)點(diǎn)的情況下,從其他節(jié)點(diǎn)中選擇負(fù)載最輕的節(jié)點(diǎn)作為備份節(jié)點(diǎn),向其發(fā)送接管請(qǐng)求,備份節(jié)點(diǎn)的服務(wù)進(jìn)程進(jìn)行服務(wù)的接管,且重啟故障節(jié)點(diǎn)再對(duì)其進(jìn)行任務(wù)分配,能夠保證文件系統(tǒng)的不間斷服務(wù),有效應(yīng)對(duì)故障情況,提高分布式文件系統(tǒng)的可靠性。
文檔編號(hào)H04L1/22GK103019889SQ20121056448
公開日2013年4月3日 申請(qǐng)日期2012年12月21日 優(yōu)先權(quán)日2012年12月21日
發(fā)明者張攀勇, 苗艷超, 趙力 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司