專利名稱:一種基于快速同步網(wǎng)絡(luò)的分布式文件系統(tǒng)監(jiān)控方法
技術(shù)領(lǐng)域:
本發(fā)明涉及并行文件系統(tǒng)的通信系統(tǒng),特別涉及一種基于快速同步網(wǎng)絡(luò)的分布式文件系統(tǒng)監(jiān)控方法。
背景技術(shù):
分布式系統(tǒng)中通信系統(tǒng)作為系統(tǒng)各節(jié)點(diǎn)之間的通信基礎(chǔ),具有重要的意義。由于分布式系統(tǒng)中的每一個(gè)節(jié)點(diǎn)均可能出現(xiàn)故障,而為了提高系統(tǒng)的可用性,需要在節(jié)點(diǎn)和服務(wù)出現(xiàn)故障之后,能夠快速的進(jìn)行故障檢測(cè)和定位,以便于系統(tǒng)的后續(xù)故障恢復(fù)和處理。因此分布式系統(tǒng)的監(jiān)控和檢測(cè)的速度和準(zhǔn)確率變得重要。傳統(tǒng)的系統(tǒng)監(jiān)控方法,通過節(jié)點(diǎn)之間相互發(fā)出服務(wù)狀態(tài)監(jiān)控消息,這種方法能夠檢測(cè)出系統(tǒng)故障,但是隨著系統(tǒng)規(guī)模的擴(kuò)大, 其對(duì)網(wǎng)絡(luò)中正常消息的干擾會(huì)急劇上升。同時(shí)故障檢測(cè)和通知的速度均存在問題。在這種背景下,本專利提出了一種利用快速同步網(wǎng)絡(luò)進(jìn)行分布式文件系統(tǒng)監(jiān)控的機(jī)制,有效的保證了可擴(kuò)展性和檢測(cè)通知的速度。
發(fā)明內(nèi)容
本發(fā)明的目的是解決隨著系統(tǒng)規(guī)模擴(kuò)到導(dǎo)致的文件系統(tǒng)監(jiān)控的可擴(kuò)展性和速度的問題,基于快速同步網(wǎng)絡(luò),提供了一種分布式系統(tǒng)監(jiān)控機(jī)制。本發(fā)明采用了一套快速同步網(wǎng)絡(luò),該快速同步網(wǎng)絡(luò)與每一個(gè)服務(wù)節(jié)點(diǎn)相互連接, 采用樹狀或者其他拓?fù)湫螤睿B接起來,構(gòu)成一個(gè)同步組,每一個(gè)服務(wù)節(jié)點(diǎn)在快速同步網(wǎng)絡(luò)中間有一個(gè)獨(dú)立的編號(hào)。對(duì)于同步組中間的節(jié)點(diǎn)上,存在一個(gè)同步代理模塊,用于獲取節(jié)點(diǎn)上運(yùn)行服務(wù)的狀態(tài),和同步組中間的其他節(jié)點(diǎn)之間進(jìn)行消息交互,包括報(bào)告自身的服務(wù)狀態(tài),獲取整個(gè)系統(tǒng)的節(jié)點(diǎn)服務(wù)狀態(tài)。在一個(gè)同步組中間,存在一個(gè)主節(jié)點(diǎn),用以周期性的發(fā)起狀態(tài)收集命令,向所有節(jié)點(diǎn)報(bào)告整個(gè)系統(tǒng)的運(yùn)行狀態(tài)。其他從節(jié)點(diǎn)負(fù)責(zé)處理主節(jié)點(diǎn)發(fā)出的狀態(tài)收集命令,收集本地節(jié)點(diǎn)服務(wù)狀態(tài),并向主節(jié)點(diǎn)應(yīng)答本節(jié)點(diǎn)的狀態(tài)。同時(shí)從節(jié)點(diǎn)負(fù)責(zé)接收來自主節(jié)點(diǎn)的系統(tǒng)狀態(tài)報(bào)告,根據(jù)該狀態(tài)報(bào)告進(jìn)行故障處理。當(dāng)系統(tǒng)規(guī)模擴(kuò)大之后,同步組可以分層,每一層內(nèi)部為一個(gè)同步組,內(nèi)部完成同步之后,由每一層提供的同步組的頭結(jié)點(diǎn)構(gòu)成的高一層同步組之間再進(jìn)行同步操作。當(dāng)主節(jié)點(diǎn)出現(xiàn)故障的時(shí)候,需要同步組能夠迅速檢查到主節(jié)點(diǎn)故障,并進(jìn)行換主操作。本發(fā)明實(shí)現(xiàn)了一種動(dòng)態(tài)換主方法。詳細(xì)步驟為Si,對(duì)于每一個(gè)從節(jié)點(diǎn),會(huì)周期性的檢測(cè)是否存在來自主節(jié)點(diǎn)的系統(tǒng)狀態(tài)報(bào)告消息;S2,如果發(fā)現(xiàn)主節(jié)點(diǎn)未報(bào)告,則增加主節(jié)點(diǎn)失敗計(jì)數(shù);如果主節(jié)點(diǎn)的失敗記錄超過閾值,則從節(jié)點(diǎn)向同步組中間上次活動(dòng)的序號(hào)最小的從節(jié)點(diǎn)發(fā)出接管命令,等待接管完成命令;
S3,該最小節(jié)點(diǎn)在接收到接管命令之后,向主節(jié)點(diǎn)發(fā)出狀態(tài)詢問命令,如果收到主節(jié)點(diǎn)的應(yīng)答命令,則無操作;否則,認(rèn)為主節(jié)點(diǎn)死機(jī),進(jìn)行主節(jié)點(diǎn)接管操作,在接管操作完成之后,向所有節(jié)點(diǎn)發(fā)出接管完成命令;S4,如果其他從節(jié)點(diǎn)在幾個(gè)周期內(nèi)未收到接管完成命令,則認(rèn)為該最小節(jié)點(diǎn)死機(jī), 繼續(xù)步驟S2,選出下一個(gè)可用的主節(jié)點(diǎn)為止;S5,新接管完成的主節(jié)點(diǎn)定期發(fā)起請(qǐng)求狀態(tài)查詢。本發(fā)明提出的一種基于快速同步網(wǎng)絡(luò)的分布式文件系統(tǒng)監(jiān)控機(jī)制,能夠快速同步系統(tǒng)中的每一個(gè)節(jié)點(diǎn)上服務(wù)的狀態(tài),對(duì)于N個(gè)節(jié)點(diǎn),全系統(tǒng)只需要發(fā)送3N個(gè)消息即可完成整個(gè)系統(tǒng)的狀態(tài)監(jiān)控和同步,因此具有較好的可擴(kuò)展性,能夠隨著系統(tǒng)規(guī)模進(jìn)行擴(kuò)展。同時(shí)采用了基于選舉的動(dòng)態(tài)換主方法,不存在單點(diǎn)故障。同時(shí)根據(jù)系統(tǒng)與其他節(jié)點(diǎn)的通信狀態(tài), 進(jìn)一步壓縮了同步消息的數(shù)量,降低了監(jiān)控的開銷。
以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中圖1為基于快讀同步網(wǎng)絡(luò)的監(jiān)控系統(tǒng)示意圖;圖2為節(jié)點(diǎn)監(jiān)控機(jī)制示意圖;圖3為多層次系統(tǒng)的同步方式示。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明的方法進(jìn)行說明??焖偻骄W(wǎng)絡(luò)的連接如圖1所示,快速同步網(wǎng)絡(luò)與每一套服務(wù)節(jié)點(diǎn)相互連接,同步網(wǎng)絡(luò)的具體實(shí)現(xiàn)形式不限定,可以為物理的獨(dú)立的管理網(wǎng)絡(luò),可以為和數(shù)據(jù)網(wǎng)絡(luò)一樣的物理網(wǎng)絡(luò)。節(jié)點(diǎn)監(jiān)控方式如圖2所示,對(duì)于同步組中間的狀態(tài)收集和同步方式分為如下幾個(gè)步驟步驟Si,頭節(jié)點(diǎn)根據(jù)當(dāng)前節(jié)點(diǎn)和其他節(jié)點(diǎn)的連接狀態(tài),以及在監(jiān)測(cè)時(shí)間間隔內(nèi)是否發(fā)送過消息,構(gòu)建狀態(tài)收集組,如果時(shí)間間隔內(nèi)發(fā)送過消息,則無需向該節(jié)點(diǎn)發(fā)送狀態(tài)收集命令;如果未發(fā)送消息,則將對(duì)應(yīng)節(jié)點(diǎn)加入到狀態(tài)收集組中步驟S2,頭結(jié)點(diǎn)向其他節(jié)點(diǎn)以廣播的方式發(fā)出狀態(tài)收集請(qǐng)求,等待其他節(jié)點(diǎn)應(yīng)答狀態(tài)通知步驟S3,同步組中其他節(jié)點(diǎn)在接收到狀態(tài)收集消息之后,檢測(cè)自己的服務(wù)狀態(tài),并向頭結(jié)點(diǎn)發(fā)出應(yīng)答通知。步驟S4,頭結(jié)點(diǎn)收集所有的應(yīng)答通知,如果有節(jié)點(diǎn)在規(guī)定時(shí)間內(nèi)未應(yīng)答,則認(rèn)為該節(jié)點(diǎn)上的服務(wù)未響應(yīng),如果死機(jī)次數(shù)超過規(guī)定閾值,則認(rèn)為該節(jié)點(diǎn)死機(jī),修改對(duì)應(yīng)的節(jié)點(diǎn)狀態(tài)。步驟S5,頭結(jié)點(diǎn)在完成收集應(yīng)答通知步驟之后,向同步組中的所有有效節(jié)點(diǎn)發(fā)出系統(tǒng)狀態(tài)通知。步驟S6,其他節(jié)點(diǎn)在接收到系統(tǒng)狀態(tài)通知之后,獲知系統(tǒng)中整個(gè)節(jié)點(diǎn)狀態(tài),根據(jù)狀態(tài)通知,進(jìn)行相應(yīng)的故障處理。
多層次系統(tǒng)的同步方式示例如圖3所示步驟Si,主節(jié)點(diǎn)0和次主節(jié)點(diǎn)1,次主節(jié)點(diǎn)2構(gòu)成一個(gè)同步組0,主節(jié)點(diǎn)0首先以廣播方式發(fā)起狀態(tài)收集請(qǐng)求,等待同步組的應(yīng)答步驟S2次主節(jié)點(diǎn)1和其內(nèi)部的從節(jié)點(diǎn)構(gòu)成一個(gè)次同步組1,次主節(jié)點(diǎn)1在收到主節(jié)點(diǎn)0發(fā)出的狀態(tài)收集請(qǐng)求,次主節(jié)點(diǎn)1以廣播的方式發(fā)起狀態(tài)收集請(qǐng)求,在內(nèi)部收集完成之后,向主節(jié)點(diǎn)0發(fā)送同步組0的應(yīng)答操作。同樣的次主節(jié)點(diǎn)2在次同步組2內(nèi)部發(fā)起狀態(tài)收集請(qǐng)求,在次同步組2內(nèi)部完成狀態(tài)收集之后,向主節(jié)點(diǎn)0發(fā)送同步組0的應(yīng)答操作。步驟S3,主節(jié)點(diǎn)0在收到次主節(jié)點(diǎn)1和次主節(jié)點(diǎn)2的應(yīng)答操作之后,計(jì)算全系統(tǒng)的狀態(tài),向次主節(jié)點(diǎn)發(fā)送系統(tǒng)狀態(tài)報(bào)告步驟S4,次主節(jié)點(diǎn)在接收到系統(tǒng)狀態(tài)報(bào)告之后,向各自的次同步組內(nèi)部廣播系統(tǒng)狀態(tài)。步驟S5,各個(gè)節(jié)點(diǎn)都接收到系統(tǒng)狀態(tài),完成一次同步操作。
權(quán)利要求
1.一種基于快速同步網(wǎng)絡(luò)的分布式文件系統(tǒng)監(jiān)控方法,其特征在于服務(wù)器節(jié)點(diǎn)通過快速同步網(wǎng)絡(luò)相互連接組成一個(gè)同步組,每個(gè)服務(wù)器節(jié)點(diǎn)在快速同步網(wǎng)絡(luò)中有獨(dú)立的編號(hào);在一個(gè)同步組中,設(shè)置一個(gè)主節(jié)點(diǎn)用于周期性發(fā)起狀態(tài)收集命令,向所有節(jié)點(diǎn)報(bào)告整個(gè)系統(tǒng)的運(yùn)行狀態(tài);其他從節(jié)點(diǎn)負(fù)責(zé)處理主節(jié)點(diǎn)發(fā)出的狀態(tài)收集命令,收集本地節(jié)點(diǎn)服務(wù)狀態(tài),并向主節(jié)點(diǎn)應(yīng)答本節(jié)點(diǎn)的狀態(tài);同時(shí)從節(jié)點(diǎn)負(fù)責(zé)接收來自主節(jié)點(diǎn)的系統(tǒng)狀態(tài)報(bào)告,根據(jù)該狀態(tài)報(bào)告進(jìn)行故障處理。
2.如權(quán)利要求1所述的方法,其特征在于所述同步組中存在一個(gè)同步代理模塊,用于獲取節(jié)點(diǎn)上運(yùn)行服務(wù)的狀態(tài),和同步組中間的其他節(jié)點(diǎn)之間進(jìn)行消息交互,包括報(bào)告自身的服務(wù)狀態(tài),獲取整個(gè)系統(tǒng)的節(jié)點(diǎn)服務(wù)狀態(tài)。
3.如權(quán)利要求1所述的方法,其特征在于所述同步組可以分層,每一層內(nèi)部為一個(gè)同步組,內(nèi)部完成同步之后,由每一層提供的同步組的頭結(jié)點(diǎn)構(gòu)成的高一層同步組之間再進(jìn)行同步操作。
4.如權(quán)利要求1所述的方法,其特征在于所述主節(jié)點(diǎn)在出現(xiàn)故障時(shí),同步組的換主方法為Si,對(duì)于每一個(gè)從節(jié)點(diǎn),系統(tǒng)周期性的檢測(cè)是否存在來自主節(jié)點(diǎn)的系統(tǒng)狀態(tài)報(bào)告消息;S2,如果發(fā)現(xiàn)主節(jié)點(diǎn)未報(bào)告,則增加主節(jié)點(diǎn)失敗計(jì)數(shù);如果主節(jié)點(diǎn)的失敗記錄超過閾值,則從節(jié)點(diǎn)向同步組中間上次活動(dòng)的序號(hào)最小的從節(jié)點(diǎn)發(fā)出接管命令,等待接管完成命令;S3,該最小節(jié)點(diǎn)在接收到接管命令之后,向主節(jié)點(diǎn)發(fā)出狀態(tài)詢問命令,如果收到主節(jié)點(diǎn)的應(yīng)答命令,則無操作;否則,認(rèn)為主節(jié)點(diǎn)死機(jī),進(jìn)行主節(jié)點(diǎn)接管操作,在接管操作完成之后,向所有節(jié)點(diǎn)發(fā)出接管完成命令;S4,如果其他從節(jié)點(diǎn)在幾個(gè)周期內(nèi)未收到接管完成命令,則認(rèn)為該最小節(jié)點(diǎn)死機(jī),繼續(xù)步驟S2,選出下一個(gè)可用的主節(jié)點(diǎn)為止,S5,新接管完成的主節(jié)點(diǎn)定期發(fā)起請(qǐng)求狀態(tài)查詢。
全文摘要
本發(fā)明提出的一種基于快速同步網(wǎng)絡(luò)的分布式文件系統(tǒng)監(jiān)控機(jī)制,能夠快速同步系統(tǒng)中的每一個(gè)節(jié)點(diǎn)上服務(wù)的狀態(tài),對(duì)于N個(gè)節(jié)點(diǎn),全系統(tǒng)只需要發(fā)送3N個(gè)消息即可完成整個(gè)系統(tǒng)的狀態(tài)監(jiān)控和同步,因此具有較好的可擴(kuò)展性,能夠隨著系統(tǒng)規(guī)模進(jìn)行擴(kuò)展。同時(shí)采用了基于選舉的動(dòng)態(tài)換主方法,不存在單點(diǎn)故障。同時(shí)根據(jù)系統(tǒng)與其他節(jié)點(diǎn)的通信狀態(tài),進(jìn)一步壓縮了同步消息的數(shù)量,降低了監(jiān)控的開銷。
文檔編號(hào)H04L29/08GK102387210SQ201110325988
公開日2012年3月21日 申請(qǐng)日期2011年10月25日 優(yōu)先權(quán)日2011年10月25日
發(fā)明者劉新春, 張攀勇, 王勇, 苗艷超, 袁重橋, 趙力, 邵宗有 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司