專利名稱:一種提高元數(shù)據(jù)服務(wù)可靠性的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種提高元數(shù)據(jù)服務(wù)可靠性的方法及其系統(tǒng)。
背景技術(shù):
元數(shù)據(jù)常稱之為“數(shù)據(jù)的數(shù)據(jù)”,網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)為降低服務(wù)器開銷,提高傳輸速率,多將元數(shù)據(jù)和數(shù)據(jù)分離,采用專用元數(shù)據(jù)服務(wù)器負(fù)責(zé)管理元數(shù)據(jù),這樣數(shù)據(jù)傳輸就不需要經(jīng)過服務(wù)器中轉(zhuǎn),只需要事先獲取足夠元數(shù)據(jù)信息。元數(shù)據(jù)服務(wù)器由此成為聯(lián)系客戶節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)的樞紐,也容易形成單一失效點(diǎn),因而需要尋求提高元數(shù)據(jù)服務(wù)可靠性的方法。
傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)多采用主從互備方式提供可靠的元數(shù)據(jù)服務(wù),如龐麗萍,何飛躍,岳建輝等,“并行文件系統(tǒng)集中式元數(shù)據(jù)管理高可用系統(tǒng)設(shè)計(jì)”,計(jì)算機(jī)工程與科學(xué),2004年第26卷第11期。主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器通過“心跳”檢測(cè)互連。當(dāng)監(jiān)測(cè)到主元數(shù)據(jù)服務(wù)器因故障而中斷服務(wù)后,從元數(shù)據(jù)服務(wù)器承擔(dān)主元數(shù)據(jù)服務(wù)器功能。引入互備方式后,主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器都出現(xiàn)故障的概率比起單個(gè)故障概率要小,元數(shù)據(jù)服務(wù)的可靠性也就相應(yīng)的提高。
然而,主從互備方式因自身特點(diǎn)限制,未能充分發(fā)揮存儲(chǔ)系統(tǒng)中其他節(jié)點(diǎn)資源的作用,導(dǎo)致不能在可靠性方面做進(jìn)一步的突破;當(dāng)主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器都出現(xiàn)故障后,盡管存儲(chǔ)系統(tǒng)其他部分仍運(yùn)轉(zhuǎn)正常,但由于服務(wù)器的中心樞紐作用,系統(tǒng)卻無法提供存儲(chǔ)服務(wù)的。為此,本發(fā)明提出的一種提高元數(shù)據(jù)服務(wù)可靠性的方法及其系統(tǒng),充分利用存儲(chǔ)系統(tǒng)中的其他節(jié)點(diǎn)資源,很大程度上提高元數(shù)據(jù)服務(wù)的可靠性。
發(fā)明內(nèi)容
本發(fā)明提供一種提高元數(shù)據(jù)服務(wù)可靠性的方法及其系統(tǒng),目的是充分利用系統(tǒng)的節(jié)點(diǎn)資源,提高元數(shù)據(jù)服務(wù)的可靠性,在元數(shù)據(jù)服務(wù)角度達(dá)到系統(tǒng)的“零故障”率。
本發(fā)明的一種提高元數(shù)據(jù)服務(wù)可靠性的方法,包括如下步驟(1)正常運(yùn)行步驟,正常狀況下,主元數(shù)據(jù)服務(wù)器運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù);通過檢測(cè)通道連接從元數(shù)據(jù)服務(wù)器,啟動(dòng)監(jiān)控進(jìn)程監(jiān)視對(duì)方狀態(tài),同時(shí)啟動(dòng)選取進(jìn)程,從存儲(chǔ)節(jié)點(diǎn)中選取平均相對(duì)負(fù)載最輕的做為備用元數(shù)據(jù)服務(wù)器;從元數(shù)據(jù)服務(wù)器啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(2)主元數(shù)據(jù)服務(wù)器故障步驟,當(dāng)監(jiān)測(cè)到主元數(shù)據(jù)服務(wù)器出現(xiàn)故障后,從元數(shù)據(jù)服務(wù)器接管元數(shù)據(jù)服務(wù)請(qǐng)求,運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟用故障屏蔽進(jìn)程,屏蔽主元數(shù)據(jù)服務(wù)器故障對(duì)系統(tǒng)造成的影響,啟動(dòng)切換子進(jìn)程,將客戶節(jié)點(diǎn)的元數(shù)據(jù)請(qǐng)求切換到從元數(shù)據(jù)服務(wù)器,并啟動(dòng)修復(fù)子進(jìn)程對(duì)主元數(shù)據(jù)服務(wù)器進(jìn)行修復(fù);同時(shí)啟動(dòng)選取進(jìn)程,在存儲(chǔ)節(jié)點(diǎn)上選取出平均相對(duì)負(fù)載最輕的做為第二備用元數(shù)據(jù)服務(wù)器;(3)備用元數(shù)據(jù)服務(wù)器升位步驟,備用元數(shù)據(jù)服務(wù)器承擔(dān)從元數(shù)據(jù)服務(wù)器的功能,啟動(dòng)監(jiān)控進(jìn)程,與從元數(shù)據(jù)服務(wù)器互相監(jiān)測(cè)對(duì)方狀態(tài),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它與從元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(4)從元數(shù)據(jù)服務(wù)器故障步驟,當(dāng)監(jiān)測(cè)到從元數(shù)據(jù)服務(wù)器出現(xiàn)故障時(shí),已升位的備用元數(shù)據(jù)服務(wù)器接管元數(shù)據(jù)服務(wù)請(qǐng)求,運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)故障屏蔽進(jìn)程,屏蔽從元數(shù)據(jù)服務(wù)器故障對(duì)系統(tǒng)的影響,啟動(dòng)修復(fù)子進(jìn)程對(duì)從元數(shù)據(jù)服務(wù)器進(jìn)行修復(fù),并啟動(dòng)加入子進(jìn)程,判斷主元數(shù)據(jù)服務(wù)器是否修復(fù),若修復(fù)則加入系統(tǒng)提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證主元數(shù)據(jù)服務(wù)器和備用元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性,然后運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)切換子進(jìn)程,客戶節(jié)點(diǎn)的請(qǐng)求切換到主元數(shù)據(jù)服務(wù)器,而備用元數(shù)據(jù)服務(wù)器繼續(xù)承擔(dān)從元數(shù)據(jù)服務(wù)器功能,終止對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性,第二備用元數(shù)據(jù)服務(wù)器繼續(xù)做備用元數(shù)據(jù)服務(wù)器;如果主元數(shù)據(jù)服務(wù)器還在修復(fù)階段,則將備用元數(shù)據(jù)服務(wù)器提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù),啟動(dòng)切換子進(jìn)程,客戶端請(qǐng)求切換到備用元數(shù)據(jù)服務(wù)器,啟動(dòng)選取進(jìn)程,在存儲(chǔ)節(jié)點(diǎn)上選取出平均相對(duì)負(fù)載最輕的做為第三備用元數(shù)據(jù)服務(wù)器。
(5)第二備用元數(shù)據(jù)服務(wù)器升位步驟,如果主元數(shù)據(jù)服務(wù)器沒完成修復(fù),備用元數(shù)據(jù)服務(wù)器轉(zhuǎn)換為主元數(shù)據(jù)服務(wù)器,第二備用元數(shù)據(jù)服務(wù)器承擔(dān)從元數(shù)據(jù)服務(wù)器功能,啟動(dòng)監(jiān)控進(jìn)程,與備用元數(shù)據(jù)服務(wù)器互相監(jiān)測(cè)對(duì)方狀態(tài),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和備用元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性。
所述的提高元數(shù)據(jù)服務(wù)可靠性的方法,其特征在于(1)所述對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程提供元數(shù)據(jù)的查詢定位以及更新操作;(2)所述存儲(chǔ)資源管理進(jìn)程管理存儲(chǔ)系統(tǒng)中所有的存儲(chǔ)節(jié)點(diǎn);(3)所述元數(shù)據(jù)復(fù)制進(jìn)程保證從元數(shù)據(jù)服務(wù)器和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(4)所述監(jiān)控進(jìn)程周期性檢測(cè)對(duì)方對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程是否正常運(yùn)行;(5)所述故障屏蔽進(jìn)程,包括3個(gè)子進(jìn)程A切換子進(jìn)程,發(fā)生故障后自動(dòng)將客戶端元數(shù)據(jù)請(qǐng)求切換到另一元數(shù)據(jù)服務(wù)器,提供不間斷的元數(shù)據(jù)服務(wù);B修復(fù)子進(jìn)程,對(duì)發(fā)生故障的元數(shù)據(jù)服務(wù)器進(jìn)行必要的修復(fù);C加入子進(jìn)程,在元數(shù)據(jù)服務(wù)器修復(fù)完成后加入到整個(gè)系統(tǒng)中。
所述的提高元數(shù)據(jù)服務(wù)可靠性的方法,其特征在于所述選取進(jìn)程,選取平均相對(duì)負(fù)載最輕的存儲(chǔ)節(jié)點(diǎn)時(shí),存儲(chǔ)節(jié)點(diǎn)的負(fù)載值為系統(tǒng)隊(duì)列長(zhǎng)度、CPU利用率、內(nèi)存利用率、磁盤可用空間和網(wǎng)絡(luò)吞吐量的加權(quán)和;存儲(chǔ)節(jié)點(diǎn)選做備用元數(shù)據(jù)服務(wù)器之后,更新對(duì)應(yīng)的負(fù)載值。
本發(fā)明的提高元數(shù)據(jù)服務(wù)可靠性的系統(tǒng),包括客戶節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)和元數(shù)據(jù)服務(wù)器,三者通過網(wǎng)絡(luò)互連,客戶節(jié)點(diǎn)發(fā)送文件或?qū)ο蟛僮髡?qǐng)求,包括元數(shù)據(jù)請(qǐng)求和數(shù)據(jù)請(qǐng)求;存儲(chǔ)節(jié)點(diǎn)提供存儲(chǔ)服務(wù);元數(shù)據(jù)服務(wù)器包括主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器,它們各自包括對(duì)象元數(shù)據(jù)服務(wù)模塊、存儲(chǔ)資源管理模塊和高可用模塊,三個(gè)模塊通過統(tǒng)一的接口對(duì)外提供元數(shù)據(jù)服務(wù),(1)對(duì)象元數(shù)據(jù)服務(wù)模塊提供元數(shù)據(jù)的查詢定位以及更新操作;(2)存儲(chǔ)資源管理模塊管理存儲(chǔ)系統(tǒng)中所有的存儲(chǔ)節(jié)點(diǎn);(3)高可用性模塊保證元數(shù)據(jù)服務(wù)的可靠性,包括元數(shù)據(jù)復(fù)制模塊、故障屏蔽模塊和監(jiān)控模塊,(3.1)元數(shù)據(jù)復(fù)制模塊保證從元數(shù)據(jù)服務(wù)器和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(3.2)故障屏蔽模塊屏蔽元數(shù)據(jù)服務(wù)器的故障信息,提供透明持續(xù)的元數(shù)據(jù)請(qǐng)求服務(wù)功能,包括3個(gè)子模塊A.切換子模塊,發(fā)生故障后自動(dòng)將客戶端元數(shù)據(jù)請(qǐng)求切換到另一元數(shù)據(jù)服務(wù)器,提供不間斷的元數(shù)據(jù)服務(wù);B.修復(fù)子模塊,對(duì)發(fā)生故障的元數(shù)據(jù)服務(wù)器進(jìn)行必要的修復(fù);C.加入子模塊,在元數(shù)據(jù)服務(wù)器修復(fù)完成后加入到整個(gè)系統(tǒng)中;(3.3)監(jiān)控模塊,周期性檢測(cè)對(duì)方對(duì)象元數(shù)據(jù)服務(wù)模塊和存儲(chǔ)資源管理模塊是否正常運(yùn)行;其特征在于(1)所述高可用性模塊包括選取模塊,根據(jù)歷史訪問記錄和自身負(fù)載處理能力,從存儲(chǔ)節(jié)點(diǎn)中選取負(fù)載較輕的存儲(chǔ)節(jié)點(diǎn)做為備用元數(shù)據(jù)服務(wù)器;(2)所述存儲(chǔ)節(jié)點(diǎn)被選取為備用元數(shù)據(jù)服務(wù)器時(shí),加載主元數(shù)據(jù)服務(wù)器或從元數(shù)據(jù)服務(wù)器的所有功能模塊。
依本發(fā)明的方法,屏蔽出現(xiàn)故障的服務(wù)器,透明切換客戶節(jié)點(diǎn)請(qǐng)求到下一個(gè)主元數(shù)據(jù)服務(wù)器,并選取新的備用元數(shù)據(jù)服務(wù)器,構(gòu)成了主從備鏈?zhǔn)皆獢?shù)據(jù)服務(wù)模式,極大提高元數(shù)據(jù)服務(wù)可靠性,系統(tǒng)在元數(shù)據(jù)服務(wù)角度達(dá)到“零故障”率;系統(tǒng)不需增加額外設(shè)備保證元數(shù)據(jù)服務(wù)的連續(xù)性;充分挖掘存儲(chǔ)節(jié)點(diǎn)的富余資源,主、從、備三者除了可以提供可靠元數(shù)據(jù)服務(wù)外,在正常情況下通過合理調(diào)度還可以均衡負(fù)載。
圖1為本發(fā)明提出的主從備鏈?zhǔn)皆獢?shù)據(jù)服務(wù)模式示意圖;圖2為本發(fā)明方法的流程示意圖;圖3為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖;圖4為本發(fā)明采用主從備鏈?zhǔn)皆獢?shù)據(jù)服務(wù)的狀態(tài)轉(zhuǎn)移圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明所提出的一種提高元數(shù)據(jù)服務(wù)可靠性的方法是主從備鏈?zhǔn)皆獢?shù)據(jù)服務(wù)模式,主元數(shù)據(jù)服務(wù)器11.1和從元數(shù)據(jù)服務(wù)器11.2是提供元數(shù)據(jù)服務(wù)的專用服務(wù)器,而后續(xù)提供元數(shù)據(jù)服務(wù)的是存儲(chǔ)系統(tǒng)中所選取的負(fù)載較輕的存儲(chǔ)節(jié)點(diǎn)(13.i,13.j,13.k,...)。通過這種類似“平移”的鏈?zhǔn)揭?guī)則,達(dá)到提高元數(shù)據(jù)服務(wù)可靠性的目的。
本發(fā)明方法的執(zhí)行流程如圖2所示,正常狀況下,主元數(shù)據(jù)服務(wù)器MDS1運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù);通過檢測(cè)通道連接從元數(shù)據(jù)服務(wù)器MDS2,啟動(dòng)監(jiān)控進(jìn)程監(jiān)視對(duì)方狀態(tài),同時(shí)啟動(dòng)選取進(jìn)程,選取出備用元數(shù)據(jù)服務(wù)器MDS3;MDS2啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性。
當(dāng)監(jiān)測(cè)到MDS1出現(xiàn)故障后,MDS2接管元數(shù)據(jù)服務(wù)請(qǐng)求,運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟用故障屏蔽進(jìn)程,屏蔽MDS1故障對(duì)系統(tǒng)的影響,啟動(dòng)切換子進(jìn)程,將客戶請(qǐng)求切換到MDS2,并啟動(dòng)修復(fù)子進(jìn)程對(duì)MDS1進(jìn)行修復(fù);同時(shí)啟動(dòng)選取進(jìn)程,選取出第二備用元數(shù)據(jù)服務(wù)器MDS4。MDS3承擔(dān)從元數(shù)據(jù)服務(wù)器的功能,啟動(dòng)監(jiān)控進(jìn)程,與MDS2互相監(jiān)測(cè)對(duì)方狀態(tài),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證同MDS2的元數(shù)據(jù)一致。
當(dāng)監(jiān)測(cè)到MDS2出現(xiàn)故障時(shí),MDS3接管元數(shù)據(jù)服務(wù)請(qǐng)求,運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)故障屏蔽進(jìn)程,屏蔽MDS2故障對(duì)系統(tǒng)的影響,啟動(dòng)修復(fù)子進(jìn)程對(duì)MDS2進(jìn)行修復(fù),并啟動(dòng)加入子進(jìn)程,判斷主元數(shù)據(jù)服務(wù)器MDS1是否修復(fù),若修復(fù)則加入系統(tǒng)提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù),MDS1啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證同MDS3上所有元數(shù)據(jù)一致,然后運(yùn)行的對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)切換子進(jìn)程,客戶節(jié)點(diǎn)的請(qǐng)求切換到MDS1,而MDS3繼續(xù)承擔(dān)從元數(shù)據(jù)服務(wù)器功能,終止對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和MDS1元數(shù)據(jù)的同步,MDS4繼續(xù)做備用元數(shù)據(jù)服務(wù)器;如果MDS1還在修復(fù)階段,則將MDS3提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù),啟動(dòng)切換子進(jìn)程,客戶端請(qǐng)求切換到MDS3,啟動(dòng)選取進(jìn)程,選取出第三備用元數(shù)據(jù)服務(wù)器MDS5。MDS4承擔(dān)從元數(shù)據(jù)服務(wù)器功能,啟動(dòng)監(jiān)控進(jìn)程,與MDS3互相監(jiān)測(cè)對(duì)方狀態(tài),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證與MDS3元數(shù)據(jù)一致。
依本發(fā)明的方法,屏蔽出現(xiàn)故障的服務(wù)器,從元數(shù)據(jù)服務(wù)器轉(zhuǎn)換為主元數(shù)據(jù)服務(wù)器,響應(yīng)元數(shù)據(jù)服務(wù)請(qǐng)求,并按照“輕負(fù)載”規(guī)則不斷選取備用元數(shù)據(jù)服務(wù)器,構(gòu)成了一種主從備鏈?zhǔn)皆獢?shù)據(jù)服務(wù)模式。
圖3所示為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖,元數(shù)據(jù)服務(wù)器11,客戶節(jié)點(diǎn)12以及存儲(chǔ)節(jié)點(diǎn)13是系統(tǒng)的三個(gè)重要組成部分,通過網(wǎng)絡(luò)互連和交互。元數(shù)據(jù)服務(wù)器11主要負(fù)責(zé)提供元數(shù)據(jù)服務(wù)功能,主要是管理對(duì)象的元數(shù)據(jù)信息;客戶節(jié)點(diǎn)12負(fù)責(zé)發(fā)送元數(shù)據(jù)或數(shù)據(jù)請(qǐng)求;而儲(chǔ)節(jié)點(diǎn)13提供存儲(chǔ)服務(wù)。
元數(shù)據(jù)服務(wù)器11包括對(duì)象元數(shù)據(jù)服務(wù)模塊2、存儲(chǔ)資源管理模塊4和高可用模塊3,對(duì)外提供統(tǒng)一的元數(shù)據(jù)訪問接口1。對(duì)象元數(shù)據(jù)服務(wù)模塊2提供元數(shù)據(jù)的查詢定位以及更新操作;存儲(chǔ)資源管理模塊4管理存儲(chǔ)系統(tǒng)中所有的存儲(chǔ)節(jié)點(diǎn);高可用性模塊3包括元數(shù)據(jù)復(fù)制模塊6、故障屏蔽模塊7、選取模塊5和監(jiān)控模塊8,保證元數(shù)據(jù)服務(wù)的可靠性。
元數(shù)據(jù)復(fù)制模塊6保證從元數(shù)據(jù)服務(wù)器和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性。故障屏蔽模塊7屏蔽元數(shù)據(jù)服務(wù)器的故障信息,提供透明持續(xù)的元數(shù)據(jù)請(qǐng)求服務(wù)功能,包括3個(gè)子模塊切換子模塊71,發(fā)生故障后自動(dòng)將客戶端元數(shù)據(jù)請(qǐng)求切換到另一元數(shù)據(jù)服務(wù)器,提供不間斷的元數(shù)據(jù)服務(wù);修復(fù)子模塊72,對(duì)發(fā)生故障的元數(shù)據(jù)服務(wù)器進(jìn)行必要的修復(fù);加入子模塊73,在元數(shù)據(jù)服務(wù)器修復(fù)完成后加入到整個(gè)系統(tǒng)中。選取模塊5,根據(jù)歷史訪問記錄和自身負(fù)載處理能力,從存儲(chǔ)節(jié)點(diǎn)中選取平均相對(duì)負(fù)載最輕的存儲(chǔ)節(jié)點(diǎn)做為備用元數(shù)據(jù)服務(wù)器;存儲(chǔ)節(jié)點(diǎn)的負(fù)載值為系統(tǒng)隊(duì)列長(zhǎng)度、CPU利用率、內(nèi)存利用率、磁盤可用空間和網(wǎng)絡(luò)吞吐量的加權(quán)和;存儲(chǔ)節(jié)點(diǎn)選做備用元數(shù)據(jù)服務(wù)器之后,更新對(duì)應(yīng)的負(fù)載值。監(jiān)控模塊8,周期性檢測(cè)對(duì)方對(duì)象元數(shù)據(jù)服務(wù)模塊和存儲(chǔ)資源管理模塊是否正常運(yùn)行。
根據(jù)上面的算法實(shí)施步驟,從元數(shù)據(jù)服務(wù)器角度來看,所述存儲(chǔ)系統(tǒng)所處狀態(tài)轉(zhuǎn)換如圖4所示,狀態(tài)41表示系統(tǒng)在正常狀態(tài),兩臺(tái)專用元數(shù)據(jù)服務(wù)器提供元數(shù)據(jù)服務(wù),在后臺(tái)選取出備用元數(shù)據(jù)服務(wù)器,狀態(tài)40表示系統(tǒng)因出現(xiàn)故障過多而停止服務(wù)。其中狀態(tài)42表示啟用主從備鏈?zhǔn)侥J?,三者共同完成元?shù)據(jù)的可靠服務(wù),狀態(tài)43表示故障較多,系統(tǒng)僅僅只有主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器,沒有更多的設(shè)備做備用元數(shù)據(jù)服務(wù)器,狀態(tài)44表示因故障原因系統(tǒng)中只有唯一的元數(shù)據(jù)服務(wù)器來提供元數(shù)據(jù)服務(wù)。
狀態(tài)轉(zhuǎn)換412發(fā)生條件是專用元數(shù)據(jù)服務(wù)器出現(xiàn)故障,而對(duì)應(yīng)的轉(zhuǎn)換421條件是修復(fù)好專用元數(shù)據(jù)服務(wù)器,系統(tǒng)回復(fù)正常。狀態(tài)轉(zhuǎn)換422條件是有一個(gè)或者兩個(gè)專用元數(shù)據(jù)服務(wù)器仍在修復(fù),通過主從備鏈?zhǔn)侥J教峁┰獢?shù)據(jù)服務(wù),并不斷的從存儲(chǔ)節(jié)點(diǎn)中選取備用元數(shù)據(jù)。發(fā)生狀態(tài)轉(zhuǎn)移423,說明系統(tǒng)中故障較多,只有兩臺(tái)能夠提供元數(shù)據(jù)服務(wù),不存在備用元數(shù)據(jù)服務(wù)器,繼續(xù)轉(zhuǎn)移434的話,就表示系統(tǒng)中故障更多,只有一臺(tái)能提供元數(shù)據(jù)服務(wù),最后系統(tǒng)因元數(shù)據(jù)服務(wù)故障而中斷服務(wù)。反過來,狀態(tài)轉(zhuǎn)換443,432表示故障設(shè)備得到修復(fù)后,系統(tǒng)元數(shù)據(jù)服務(wù)能力逐漸加強(qiáng)。
根據(jù)上面所述的算法以及狀態(tài)轉(zhuǎn)移分析,在采取主從備鏈?zhǔn)侥J胶螅梢圆粩嗟膹拇鎯?chǔ)節(jié)點(diǎn)中選取兼做元數(shù)據(jù)服務(wù)器,這樣的話,當(dāng)且僅當(dāng)兩專用元數(shù)據(jù)服務(wù)器和n個(gè)存儲(chǔ)節(jié)點(diǎn)都出現(xiàn)故障之后,元數(shù)據(jù)服務(wù)才會(huì)中止(狀態(tài)40),不過這樣的話,存儲(chǔ)系統(tǒng)也因存儲(chǔ)節(jié)點(diǎn)全部故障而中止,已無法提供存儲(chǔ)服務(wù)了,因而系統(tǒng)在元數(shù)據(jù)角度達(dá)到“零故障”率。
上述分析說明,主從備鏈?zhǔn)皆獢?shù)據(jù)服務(wù)充分利用存儲(chǔ)節(jié)點(diǎn)的富余資源,提供了一種提高元數(shù)據(jù)服務(wù)可靠性的實(shí)現(xiàn)方法,雖然理論不能達(dá)到100%可靠性(狀態(tài)40理論上是存在的),但從需要存儲(chǔ)節(jié)點(diǎn)能提供存取服務(wù)的要求來說,元數(shù)據(jù)服務(wù)達(dá)到很高的可靠性,從元數(shù)據(jù)角度實(shí)現(xiàn)了存儲(chǔ)系統(tǒng)的“零”故障率。本發(fā)明提出的方法可應(yīng)用于各種包含元數(shù)據(jù)服務(wù)器和存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)系統(tǒng)中。
權(quán)利要求
1.一種提高元數(shù)據(jù)服務(wù)可靠性的方法,包括如下步驟(1)正常運(yùn)行步驟,正常狀況下,主元數(shù)據(jù)服務(wù)器運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù);通過檢測(cè)通道連接從元數(shù)據(jù)服務(wù)器,啟動(dòng)監(jiān)控進(jìn)程監(jiān)視對(duì)方狀態(tài),同時(shí)啟動(dòng)選取進(jìn)程,從存儲(chǔ)節(jié)點(diǎn)中選取平均相對(duì)負(fù)載最輕的做為備用元數(shù)據(jù)服務(wù)器;從元數(shù)據(jù)服務(wù)器啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(2)主元數(shù)據(jù)服務(wù)器故障步驟,當(dāng)監(jiān)測(cè)到主元數(shù)據(jù)服務(wù)器出現(xiàn)故障后,從元數(shù)據(jù)服務(wù)器接管元數(shù)據(jù)服務(wù)請(qǐng)求,運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟用故障屏蔽進(jìn)程,屏蔽主元數(shù)據(jù)服務(wù)器故障對(duì)系統(tǒng)造成的影響,啟動(dòng)切換子進(jìn)程,將客戶節(jié)點(diǎn)的元數(shù)據(jù)請(qǐng)求切換到從元數(shù)據(jù)服務(wù)器,并啟動(dòng)修復(fù)子進(jìn)程對(duì)主元數(shù)據(jù)服務(wù)器進(jìn)行修復(fù);同時(shí)啟動(dòng)選取進(jìn)程,在存儲(chǔ)節(jié)點(diǎn)上選取出平均相對(duì)負(fù)載最輕的做為第二備用元數(shù)據(jù)服務(wù)器;(3)備用元數(shù)據(jù)服務(wù)器升位步驟,備用元數(shù)據(jù)服務(wù)器承擔(dān)從元數(shù)據(jù)服務(wù)器的功能,啟動(dòng)監(jiān)控進(jìn)程,與從元數(shù)據(jù)服務(wù)器互相監(jiān)測(cè)對(duì)方狀態(tài),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它與從元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(4)從元數(shù)據(jù)服務(wù)器故障步驟,當(dāng)監(jiān)測(cè)到從元數(shù)據(jù)服務(wù)器出現(xiàn)故障時(shí),已升位的備用元數(shù)據(jù)服務(wù)器接管元數(shù)據(jù)服務(wù)請(qǐng)求,運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)故障屏蔽進(jìn)程,屏蔽從元數(shù)據(jù)服務(wù)器故障對(duì)系統(tǒng)的影響,啟動(dòng)修復(fù)子進(jìn)程對(duì)從元數(shù)據(jù)服務(wù)器進(jìn)行修復(fù),并啟動(dòng)加入子進(jìn)程,判斷主元數(shù)據(jù)服務(wù)器是否修復(fù),若修復(fù)則加入系統(tǒng)提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證主元數(shù)據(jù)服務(wù)器和備用元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性,然后運(yùn)行對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)切換子進(jìn)程,客戶節(jié)點(diǎn)的請(qǐng)求切換到主元數(shù)據(jù)服務(wù)器,而備用元數(shù)據(jù)服務(wù)器繼續(xù)承擔(dān)從元數(shù)據(jù)服務(wù)器功能,終止對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程,啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性,第二備用元數(shù)據(jù)服務(wù)器繼續(xù)做備用元數(shù)據(jù)服務(wù)器;如果主元數(shù)據(jù)服務(wù)器還在修復(fù)階段,則將備用元數(shù)據(jù)服務(wù)器提供存儲(chǔ)系統(tǒng)的元數(shù)據(jù)服務(wù),啟動(dòng)切換子進(jìn)程,客戶端請(qǐng)求切換到備用元數(shù)據(jù)服務(wù)器,啟動(dòng)選取進(jìn)程,在存儲(chǔ)節(jié)點(diǎn)上選取出平均相對(duì)負(fù)載最輕的做為第三備用元數(shù)據(jù)服務(wù)器。(5)第二備用元數(shù)據(jù)服務(wù)器升位步驟,如果主元數(shù)據(jù)服務(wù)器沒完成修復(fù),備用元數(shù)據(jù)服務(wù)器轉(zhuǎn)換為主元數(shù)據(jù)服務(wù)器,第二備用元數(shù)據(jù)服務(wù)器承擔(dān)從元數(shù)據(jù)服務(wù)器功能,啟動(dòng)監(jiān)控進(jìn)程,與備用元數(shù)據(jù)服務(wù)器互相監(jiān)測(cè)對(duì)方狀態(tài),啟動(dòng)元數(shù)據(jù)復(fù)制進(jìn)程保證它和備用元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性。
2.如權(quán)利要求1所述的提高元數(shù)據(jù)服務(wù)可靠性的方法,其特征在于(1)所述對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程提供元數(shù)據(jù)的查詢定位以及更新操作;(2)所述存儲(chǔ)資源管理進(jìn)程管理存儲(chǔ)系統(tǒng)中所有的存儲(chǔ)節(jié)點(diǎn);(3)所述元數(shù)據(jù)復(fù)制進(jìn)程保證從元數(shù)據(jù)服務(wù)器和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(4)所述監(jiān)控進(jìn)程周期性檢測(cè)對(duì)方對(duì)象元數(shù)據(jù)服務(wù)進(jìn)程和存儲(chǔ)資源管理進(jìn)程是否正常運(yùn)行;(5)所述故障屏蔽進(jìn)程,包括3個(gè)子進(jìn)程A.切換子進(jìn)程,發(fā)生故障后自動(dòng)將客戶端元數(shù)據(jù)請(qǐng)求切換到另一元數(shù)據(jù)服務(wù)器,提供不間斷的元數(shù)據(jù)服務(wù);B.修復(fù)子進(jìn)程,對(duì)發(fā)生故障的元數(shù)據(jù)服務(wù)器進(jìn)行必要的修復(fù);C.加入子進(jìn)程,在元數(shù)據(jù)服務(wù)器修復(fù)完成后加入到整個(gè)系統(tǒng)中。
3.如權(quán)利要求1或2所述的提高元數(shù)據(jù)服務(wù)可靠性的方法,其特征在于所述選取進(jìn)程,選取平均相對(duì)負(fù)載最輕的存儲(chǔ)節(jié)點(diǎn)時(shí),存儲(chǔ)節(jié)點(diǎn)的負(fù)載值為系統(tǒng)隊(duì)列長(zhǎng)度、CPU利用率、內(nèi)存利用率、磁盤可用空間和網(wǎng)絡(luò)吞吐量的加權(quán)和;存儲(chǔ)節(jié)點(diǎn)選做備用元數(shù)據(jù)服務(wù)器之后,更新對(duì)應(yīng)的負(fù)載值。
4.一種提高元數(shù)據(jù)服務(wù)可靠性的系統(tǒng),包括客戶節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)和元數(shù)據(jù)服務(wù)器,三者通過網(wǎng)絡(luò)互連,客戶節(jié)點(diǎn)發(fā)送文件或?qū)ο蟛僮髡?qǐng)求,包括元數(shù)據(jù)請(qǐng)求和數(shù)據(jù)請(qǐng)求;存儲(chǔ)節(jié)點(diǎn)提供存儲(chǔ)服務(wù);元數(shù)據(jù)服務(wù)器包括主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器,它們各自包括對(duì)象元數(shù)據(jù)服務(wù)模塊、存儲(chǔ)資源管理模塊和高可用模塊,三個(gè)模塊通過統(tǒng)一的接口對(duì)外提供元數(shù)據(jù)服務(wù),(1)對(duì)象元數(shù)據(jù)服務(wù)模塊提供元數(shù)據(jù)的查詢定位以及更新操作;(2)存儲(chǔ)資源管理模塊管理存儲(chǔ)系統(tǒng)中所有的存儲(chǔ)節(jié)點(diǎn);(3)高可用性模塊保證元數(shù)據(jù)服務(wù)的可靠性,包括元數(shù)據(jù)復(fù)制模塊、故障屏蔽模塊和監(jiān)控模塊,(3.1)元數(shù)據(jù)復(fù)制模塊保證從元數(shù)據(jù)服務(wù)器和主元數(shù)據(jù)服務(wù)器上所有元數(shù)據(jù)的一致性;(3.2)故障屏蔽模塊屏蔽元數(shù)據(jù)服務(wù)器的故障信息,提供透明持續(xù)的元數(shù)據(jù)請(qǐng)求服務(wù)功能,包括3個(gè)子模塊A.切換子模塊,發(fā)生故障后自動(dòng)將客戶端元數(shù)據(jù)請(qǐng)求切換到另一元數(shù)據(jù)服務(wù)器,提供不間斷的元數(shù)據(jù)服務(wù);B.修復(fù)子模塊,對(duì)發(fā)生故障的元數(shù)據(jù)服務(wù)器進(jìn)行必要的修復(fù);C.加入子模塊,在元數(shù)據(jù)服務(wù)器修復(fù)完成后加入到整個(gè)系統(tǒng)中;(3.3)監(jiān)控模塊,周期性檢測(cè)對(duì)方對(duì)象元數(shù)據(jù)服務(wù)模塊和存儲(chǔ)資源管理模塊是否正常運(yùn)行;其特征在于(1)所述高可用性模塊包括選取模塊,根據(jù)歷史訪問記錄和自身負(fù)載處理能力,從存儲(chǔ)節(jié)點(diǎn)中選取負(fù)載最輕的做為備用元數(shù)據(jù)服務(wù)器;(2)所述存儲(chǔ)節(jié)點(diǎn)被選取為備用元數(shù)據(jù)服務(wù)器時(shí),加載主元數(shù)據(jù)服務(wù)器或從元數(shù)據(jù)服務(wù)器的所有功能模塊。
全文摘要
一種提高元數(shù)據(jù)服務(wù)可靠性的方法及其系統(tǒng),屬于計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,目的是充分利用節(jié)點(diǎn)資源,提高元數(shù)據(jù)服務(wù)可靠性。本發(fā)明方法包括正常運(yùn)行、主元數(shù)據(jù)服務(wù)器故障、備用元數(shù)據(jù)服務(wù)器升位、從元數(shù)據(jù)服務(wù)器故障和第二備用元數(shù)據(jù)服務(wù)器升位步驟;本發(fā)明系統(tǒng)包括客戶節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)、主元數(shù)據(jù)服務(wù)器和從元數(shù)據(jù)服務(wù)器,各自包括對(duì)象元數(shù)據(jù)服務(wù)模塊、存儲(chǔ)資源管理模塊和高可用模塊,高可用性模塊包括元數(shù)據(jù)復(fù)制模塊、故障屏蔽模塊、監(jiān)控模塊和選取模塊,選取模塊從存儲(chǔ)節(jié)點(diǎn)中選取負(fù)載最輕的做為備用元數(shù)據(jù)服務(wù)器;本發(fā)明屏蔽故障服務(wù)器,切換到下一個(gè)元數(shù)據(jù)服務(wù)器,并選取備用元數(shù)據(jù)服務(wù)器,構(gòu)成主從備鏈?zhǔn)椒?wù)模式,極大提高元數(shù)據(jù)服務(wù)可靠性。
文檔編號(hào)H04L29/08GK101059807SQ20071005140
公開日2007年10月24日 申請(qǐng)日期2007年1月26日 優(yōu)先權(quán)日2007年1月26日
發(fā)明者馮丹, 王芳, 龐麗萍, 劉漢波, 潘磊穎, 王娟 申請(qǐng)人:華中科技大學(xué)