專利名稱:針對(duì)分布式文件系統(tǒng)的高可用消息傳輸框架和方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及分布式文件系統(tǒng)的消息傳輸框架及消息傳輸方法,特別 涉及在分布式文件系統(tǒng)的消息傳輸層面實(shí)現(xiàn)高可用機(jī)制來(lái)提高文件數(shù)據(jù)網(wǎng)絡(luò) 傳輸?shù)目捎眯裕瑥亩嵘植际轿募到y(tǒng)整體可用性的消息傳輸框架和方法。
背景技術(shù):
機(jī)群系統(tǒng)以其可擴(kuò)展性好、性能價(jià)格比高、高可用性強(qiáng)、可繼承現(xiàn)有軟硬 件資源和開發(fā)周期短、可編程性好等特點(diǎn),目前已成為超級(jí)服務(wù)器的主流體系
結(jié)構(gòu)。機(jī)群系統(tǒng)自上世紀(jì)70年代誕生以來(lái),經(jīng)歷了從專用機(jī)群系統(tǒng)到通用機(jī) 群系統(tǒng)的發(fā)展,規(guī)模從幾十個(gè)處理器發(fā)展到了上萬(wàn)個(gè)處理器。優(yōu)越的可擴(kuò)展性 使得很容易通過(guò)擴(kuò)大系統(tǒng)規(guī)模來(lái)達(dá)到所需要的性能。然而伴隨系統(tǒng)規(guī)模的增 長(zhǎng),系統(tǒng)中一些設(shè)備將不可避免地發(fā)生故障,這也使得人們不僅僅關(guān)注性能, 同時(shí)將視線轉(zhuǎn)移到系統(tǒng)的易用性、可管理性及可用性方面。
一個(gè)機(jī)群文件系統(tǒng)需要為用戶提供可靠可用的數(shù)據(jù)服務(wù)。提供可靠的數(shù)據(jù) 服務(wù)意味著文件系統(tǒng)不能失去也不能破壞數(shù)據(jù),提供可用的數(shù)據(jù)服務(wù)意味著文 件系統(tǒng)可以讓應(yīng)用程序能夠獲得其所需的數(shù)據(jù),也就是保證文件系統(tǒng)一直能夠 為用戶提供可用的服務(wù)或是能夠在故障后快速的恢復(fù)從而繼續(xù)為用戶提供服 務(wù)。其中,文件系統(tǒng)的網(wǎng)絡(luò)故障處理又是非常重要的,它是文件系統(tǒng)實(shí)現(xiàn)容錯(cuò) 的基礎(chǔ),分離并處理文件系統(tǒng)的網(wǎng)絡(luò)故障,有助于提升系統(tǒng)整體容錯(cuò)的效率和 可擴(kuò)展性。
目前分布式文件系統(tǒng)的網(wǎng)絡(luò)容錯(cuò)機(jī)制主要在四個(gè)層面實(shí)現(xiàn),即底層的網(wǎng)絡(luò) 協(xié)議層(TCP/IP),文件系統(tǒng)的消息傳輸層(NFS/RPC),分布式文件系統(tǒng)層 (PVFS2/BMI)以及網(wǎng)絡(luò)硬件拓?fù)鋵?Lustre/LND)。
由于文件系統(tǒng)位于底層網(wǎng)絡(luò)協(xié)議桟之上,并且分布式文件系統(tǒng)操作不具備 事務(wù)性(由多次網(wǎng)絡(luò)傳輸操作組成),因此底層的網(wǎng)絡(luò)協(xié)議層的容錯(cuò)機(jī)制不能 為文件系統(tǒng)提供所需的可用性保障。而在文件系統(tǒng)層直接解決網(wǎng)絡(luò)故障,將文件系統(tǒng)操作和網(wǎng)絡(luò)容錯(cuò)機(jī)制緊密結(jié)合起來(lái),能夠解決軟件網(wǎng)絡(luò)故障,不過(guò)對(duì)于 網(wǎng)絡(luò)硬件故障也不易恢復(fù),并且這種做法使得文件系統(tǒng)與底層網(wǎng)絡(luò)協(xié)議耦合度 增大,不利于擴(kuò)展和移植;網(wǎng)絡(luò)硬件拓?fù)淙蒎e(cuò)基于冗余度較高的網(wǎng)絡(luò)拓?fù)淠P停?在很大程度上解決了硬件原因引起的網(wǎng)絡(luò)故障,對(duì)處理網(wǎng)絡(luò)分割尤為有效,其 所帶來(lái)的問(wèn)題是較高的硬件成本及工程實(shí)施上的困難,并且不能很好地處理硬 件系統(tǒng)運(yùn)行良好的網(wǎng)絡(luò)故障,如網(wǎng)絡(luò)性能驟降、邏輯連接中斷等異常。
另外,就在文件系統(tǒng)的消息傳輸層解決網(wǎng)絡(luò)容錯(cuò)而言,其通過(guò)狀態(tài)轉(zhuǎn)換機(jī) 來(lái)實(shí)現(xiàn)請(qǐng)求的重傳,盡管其能夠解決連接中斷等軟件錯(cuò)誤,但是不能解決網(wǎng)絡(luò) 分割等硬件故障。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種針對(duì)分布式文件系統(tǒng)的高可用消息傳輸框架和 方法,其能夠解決由于現(xiàn)有技術(shù)的不足而導(dǎo)致的一個(gè)或多個(gè)問(wèn)題。 為了達(dá)到上述目的,本發(fā)明采取如下技術(shù)方案。
一種針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架,其位于文件系統(tǒng)層之 下、網(wǎng)絡(luò)協(xié)議層之上;該消息傳輸框架包括
文件系統(tǒng)接口層,為文件系統(tǒng)層提供訪問(wèn)接口;
文件操作處理層,分別與文件系統(tǒng)接口層和底層協(xié)議封裝層交互,處理文 件系統(tǒng)層提交的請(qǐng)求,提交操作給底層協(xié)議封裝層;
底層協(xié)議封裝層,與網(wǎng)絡(luò)協(xié)議層通信,將文件操作處理層提交的操作進(jìn)行 封裝后通過(guò)網(wǎng)絡(luò)協(xié)議層發(fā)送消息。
進(jìn)一步地,所述文件系統(tǒng)接口層包括
創(chuàng)建通信上下文接口、創(chuàng)建連接上下文接口、創(chuàng)建操作上下文接口,釋放 操作上下文接口、釋放連接上下文接口、釋放通信上下文接口,以及提交操作 接口、輪詢回調(diào)接口等,其中提交操作接口用于文件系統(tǒng)創(chuàng)建操作上下文并將 操作上下文掛到文件操作處理層的發(fā)送隊(duì)列,輪詢回調(diào)接口用于接收方從接收 隊(duì)列上取下到達(dá)消息的操作上下文結(jié)構(gòu)。 進(jìn)一步地,所述文件操作處理層包括 連接通道選擇單元,用于從通信上下文中選擇連接通道; 連接通道重構(gòu)單元,用于當(dāng)連接通道選擇單元選擇到無(wú)效通道時(shí),重構(gòu)連接通道;
操作上下文重構(gòu)單元,用于將操作上下文加入操作重構(gòu)隊(duì)列,并在連接通 道有效后,激活該操作。
進(jìn)一步地,所述文件操作處理層還包括
通道心跳監(jiān)測(cè)單元,用于監(jiān)測(cè)連接通道,通過(guò)連接上下文發(fā)送icmp消息, 并接收應(yīng)答消息,當(dāng)發(fā)送icmp消息出錯(cuò)或接收應(yīng)答消息出錯(cuò)或接收消息不匹 配時(shí),重新發(fā)送icmp消息,當(dāng)重發(fā)次數(shù)超過(guò)設(shè)定閾值時(shí),將當(dāng)前連接上下文 交給連接通道重構(gòu)單元。
進(jìn)一步地,所述文件操作處理層還包括
應(yīng)答超時(shí)監(jiān)測(cè)單元,用于當(dāng)?shù)讓訁f(xié)議封裝層始終返回操作重試標(biāo)志并超過(guò) 預(yù)定的第一時(shí)限,或當(dāng)消息傳輸之后等待對(duì)應(yīng)的應(yīng)答消息在預(yù)定的第二時(shí)限內(nèi) 未到達(dá),則將操作上下文交給所述操作上下文重構(gòu)單元。
進(jìn)一步地,所述底層協(xié)議封裝層包括 通信模型管理單元,用于為網(wǎng)絡(luò)操作選擇底層網(wǎng)絡(luò)協(xié)議;
通信方式管理單元,用于執(zhí)行底層網(wǎng)絡(luò)操作。
進(jìn)一步地,所述底層協(xié)議封裝層還包括
通信操作監(jiān)測(cè)單元,用于檢測(cè)網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作是否成功,如果沒 有成功,則向文件操作處理層返回操作重試標(biāo)志。
為了上述目的,本發(fā)明還提供一種針對(duì)分布式文件系統(tǒng)的高可用性消息傳
輸方法,包括如下步驟
步驟S1,文件系統(tǒng)層通過(guò)創(chuàng)建通信上下文接口創(chuàng)建通信上下文;
步驟S2,文件系統(tǒng)層通過(guò)創(chuàng)建連接上下文接口創(chuàng)建連接上下文,當(dāng)前組
件與多個(gè)遠(yuǎn)端組件間的連接上下文信息都記錄在所述通信上下文中;
步驟S3,文件系統(tǒng)層通過(guò)提交操作接口創(chuàng)建操作上下文,其中包括需要
傳輸?shù)南?,然后將操作上下文掛到文件操作處理層的發(fā)送隊(duì)列;
步驟S4,文件操作處理層從發(fā)送隊(duì)列上取下操作上下文并通過(guò)連接通道
選擇單元選擇連接通道;
步驟S5,文件操作處理層通過(guò)通信模型管理單元選擇相應(yīng)的網(wǎng)絡(luò)協(xié)議; 步驟S6,文件操作處理層調(diào)用所述網(wǎng)絡(luò)協(xié)議的接口進(jìn)行消息傳輸。 進(jìn)一步地,所述步驟S6還包括在消息傳輸時(shí),通道心跳監(jiān)測(cè)單元監(jiān)測(cè)連接通道故障的歩驟;如果通道心跳監(jiān)測(cè)單元監(jiān)測(cè)到連接通道故障,則將連接 上下文加入連接重構(gòu)隊(duì)列,進(jìn)行重構(gòu)連接上下文。
進(jìn)一步地,所述連接上下文重構(gòu)方法,包括如下步驟
步驟S601a,判斷連接上下文在連接發(fā)起方還是連接接收方;
如果連接上下文在發(fā)起方,則重新連接通信對(duì)方端點(diǎn),即重構(gòu)連接上
下文;
如果連接上下文在接收方,將連接上下文從通信上下文中刪除,釋放 相關(guān)資源。
步驟S601b,判斷發(fā)起方的連接上下文是否重構(gòu)成功;
如果連接上下文重構(gòu)成功,則激活操作重構(gòu)隊(duì)列中對(duì)應(yīng)該連接端點(diǎn)的 操作上下文;
如果連接上下文重構(gòu)失敗,則再次重構(gòu); 步驟S601c,判斷重構(gòu)連接的失敗次數(shù)是否超過(guò)預(yù)定的閾值;
如果失敗次數(shù)超過(guò)閾值,將連接上下文從通信上下文中刪除,釋放相
關(guān)資源。
如果失敗次數(shù)尚未超過(guò)閾值,繼續(xù)重構(gòu)連接上下文。
進(jìn)一歩地,所述步驟S6還包括在消息傳輸時(shí),通信操作監(jiān)測(cè)單元監(jiān)測(cè) 網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作是否成功的步驟;當(dāng)通信操作監(jiān)測(cè)單元監(jiān)測(cè)到網(wǎng)絡(luò)協(xié) 議接口的網(wǎng)絡(luò)操作不成功時(shí),則向文件操作處理層返回操作重試標(biāo)志;
當(dāng)?shù)讓訁f(xié)議封裝層始終返回操作重試標(biāo)志并超過(guò)預(yù)定的第一時(shí)限,文件操 作處理層將操作上下文加入重構(gòu)隊(duì)列,重構(gòu)操作上下文;
當(dāng)通信操作監(jiān)測(cè)單元監(jiān)測(cè)到網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作正常時(shí),則等待應(yīng)答 消息的到來(lái)。
進(jìn)一步地,所述重構(gòu)操作上下文包括如下步驟
從通信上下文中選擇連接通道;
如果選擇到有效連接通道,則通過(guò)該通道傳輸消息;
如果選擇到無(wú)效通道,判斷連接上下文是否在客戶端;如果連接上下文在 發(fā)起方,則將操作上下文加入操作重構(gòu)隊(duì)列,等待對(duì)應(yīng)節(jié)點(diǎn)的連接通道有效后 會(huì)激活該操作;如果連接上下文在接收方,將直接返回錯(cuò)誤碼給文件系統(tǒng)。
如果無(wú)通道供選擇,將直接返回錯(cuò)誤碼給文件系統(tǒng)。進(jìn)一步地,所述步驟S6還包括文件操作處理層在消息傳輸成功后等待 應(yīng)答消息過(guò)程中,應(yīng)答超時(shí)監(jiān)測(cè)單元捕獲應(yīng)答消息的步驟,其具體包括如下歩 驟
如果成功接收應(yīng)答消息,則成功返回文件系統(tǒng)層;
如果在預(yù)定的一第二時(shí)限內(nèi)未接收到應(yīng)答消息或者接收消息出錯(cuò),則激活 操作上下文重構(gòu)單元,將操作上下文加入重構(gòu)隊(duì)列,重構(gòu)操作上下文。
進(jìn)一步地,所述通道心跳監(jiān)測(cè)單元監(jiān)測(cè)連接通道故障的步驟,包括
步驟S61a,通道心跳監(jiān)測(cè)單元遍歷文件系統(tǒng)初始化時(shí)創(chuàng)建的通信上下文 的每個(gè)連接通道;
步驟S61b,通道心跳監(jiān)測(cè)單元通過(guò)當(dāng)前連接上下文發(fā)送icmp消息,并接 收應(yīng)答消息;
步驟S61c,如果發(fā)送icmp消息出錯(cuò),則重新發(fā)送消息;如果接收應(yīng)答消 息出錯(cuò)或者接收消息不匹配,則重新發(fā)送消息;
步驟S61d,如果重新發(fā)送消息的次數(shù)超過(guò)預(yù)定的閾值,則將當(dāng)前連接上 下文掛到失效隊(duì)列上;
步驟S61e,遍歷通信上下文的所有連接通道后,將失效隊(duì)列上的連接上 下文交給連接重構(gòu)線程進(jìn)行重構(gòu)連接上下文。
進(jìn)一步地,所述步驟S6還包括在消息傳輸時(shí),如果網(wǎng)絡(luò)協(xié)議接口返回 錯(cuò)誤值,則底層協(xié)議封裝層返回操作重試標(biāo)志給文件操作處理層。
進(jìn)一步地,所述步驟S6還包括在消息傳輸時(shí),通過(guò)網(wǎng)絡(luò)協(xié)議的回調(diào)函 數(shù)感知網(wǎng)絡(luò)協(xié)議層端口的狀態(tài)變化,如果感知網(wǎng)絡(luò)協(xié)議層端口的狀態(tài)惡化,則 底層協(xié)議封裝層返回操作重試標(biāo)志給文件操作處理層。
進(jìn)一步地,所述步驟S6還包括接收方驗(yàn)證接收的消息,如果驗(yàn)證的結(jié) 果為不匹配,則發(fā)出接收出錯(cuò)消息;如果驗(yàn)證結(jié)果為匹配,則發(fā)送應(yīng)答消息。 進(jìn)一步地,所述步驟S4中選擇連接通道的方法,包括如下步驟-步驟S62a,通過(guò)通信遠(yuǎn)端文件系統(tǒng)組件的類型和標(biāo)識(shí)號(hào)定位連接上下文 數(shù)組;
步驟S62b,在數(shù)組中隨機(jī)選擇一個(gè)位置,開始遍歷; 步驟S62c,選擇第一個(gè)遇到的權(quán)值最小的連接通道作為當(dāng)前的傳輸通道; 所述權(quán)值為當(dāng)前通道上傳輸?shù)臄?shù)據(jù)總量與當(dāng)前通道的傳輸能力的比值。
ii本發(fā)明產(chǎn)生的有益技術(shù)效果包括
透明性本發(fā)明的消息傳輸框架建立在文件系統(tǒng)層之下,分離文件系統(tǒng)遇 到的網(wǎng)絡(luò)故障并進(jìn)行獨(dú)立處理,對(duì)上層文件系統(tǒng)保持透明,保證了文件系統(tǒng)的 獨(dú)立性,使其能夠?qū)W⒂诒旧砉ぷ鳌?br>
高效性本發(fā)明的消息傳輸方法采用了隱式重構(gòu)高可用方法和通道選擇高 可用方法,能夠及時(shí)有效地解決網(wǎng)絡(luò)分割、連接中斷以及性能突降等一系列文 件系統(tǒng)的網(wǎng)絡(luò)故障問(wèn)題,保障了文件系統(tǒng)的可用性,減少了故障恢復(fù)開銷和性 能損失。
適應(yīng)性本發(fā)明的消息傳輸框架和消息傳輸方法適用于多種網(wǎng)絡(luò)配置環(huán)境 下,并且能夠在不同類型的網(wǎng)絡(luò)故障發(fā)生時(shí)提供可用性保障。
移植性本發(fā)明的消息傳輸框架建立在底層網(wǎng)絡(luò)協(xié)議之上,通過(guò)消息傳輸 層的協(xié)議封裝層搭建,因而可以方便地移植到各種網(wǎng)絡(luò)協(xié)議上。
本發(fā)明可以為配備一套網(wǎng)絡(luò)或多套網(wǎng)絡(luò)的分布式文件系統(tǒng)提供網(wǎng)絡(luò)可用 性保障,這包括,提供可靠的服務(wù)而不出現(xiàn)網(wǎng)絡(luò)故障,即文件網(wǎng)絡(luò)傳輸?shù)目煽?性,維護(hù)可靠性的開銷對(duì)系統(tǒng)沒有影響;在系統(tǒng)出現(xiàn)網(wǎng)絡(luò)故障后,能夠快速恢 復(fù)故障而不會(huì)導(dǎo)致服務(wù)的中斷,即文件傳輸?shù)目尚迯?fù)性,修復(fù)后的性能損失占 正常性能的比例很小;提供公平的機(jī)制保證系統(tǒng)能夠公平有效地利用網(wǎng)絡(luò)資 源,即系統(tǒng)網(wǎng)絡(luò)的負(fù)載均衡性。
圖1是本發(fā)明的針對(duì)分布式文件系統(tǒng)的高可用消息傳輸框架結(jié)構(gòu)圖; 圖2是本發(fā)明的針對(duì)分布式文件系統(tǒng)的高可用消息傳輸方法流程具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架和消息傳輸方 法進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明, 并不用于限定本發(fā)明。
如圖1所示,本發(fā)明的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架1,其位于文件系統(tǒng)層10之下、網(wǎng)絡(luò)協(xié)議層20之上,該消息傳輸框架1包括三個(gè) 層
文件系統(tǒng)接口層ll,為文件系統(tǒng)層10提供訪問(wèn)接口;
文件操作處理層12,分別與文件系統(tǒng)接口層11和底層協(xié)議封裝層13交 互,處理文件系統(tǒng)層10提交的請(qǐng)求,提交操作給底層協(xié)議封裝層13;
底層協(xié)議封裝層13,與網(wǎng)絡(luò)協(xié)議層20通信,將文件操作處理層10提交 的操作進(jìn)行封裝后通過(guò)網(wǎng)絡(luò)協(xié)議層20發(fā)送消息。
本發(fā)明提供的在分布式文件系統(tǒng)的消息傳輸層構(gòu)建高可用消息傳輸框架
1 (HMF, High-availability Message-passing Framework),其保證文件系統(tǒng)網(wǎng)絡(luò) 數(shù)據(jù)的可用性,并且進(jìn)行模型推理、系統(tǒng)實(shí)現(xiàn)和測(cè)試分析。本發(fā)明的高可用消 息傳輸框架1把文件系統(tǒng)的網(wǎng)絡(luò)高可用性實(shí)現(xiàn)從文件系統(tǒng)中抽取出來(lái),作為一 個(gè)單獨(dú)的模塊來(lái)實(shí)現(xiàn),弱化它與文件系統(tǒng)其他部分之間的耦合性,使得二者之
間僅僅有簡(jiǎn)單的接口關(guān)系,目的是使文件系統(tǒng)的設(shè)計(jì)更加模塊化,并且便于對(duì) 文件系統(tǒng)的網(wǎng)絡(luò)可用性進(jìn)行專門的改進(jìn)。本發(fā)明的HMF在運(yùn)用于DCFS3 (曙 光機(jī)群文件系統(tǒng))并行文件系統(tǒng)中時(shí),能為其提供網(wǎng)絡(luò)數(shù)據(jù)的高可用性支持。
應(yīng)用了本發(fā)明的消息傳輸框架1的分布式文件系統(tǒng)的數(shù)據(jù)流向是從上到 下的,即文件操作請(qǐng)求,如元數(shù)據(jù)訪問(wèn)或數(shù)據(jù)讀寫請(qǐng)求,由文件系統(tǒng)層10提 交到消息傳輸框架l,消息傳輸框架l對(duì)這些請(qǐng)求進(jìn)行處理,之后將需要傳輸 的消息提交給網(wǎng)絡(luò)協(xié)議層20,由網(wǎng)絡(luò)協(xié)議層20負(fù)責(zé)發(fā)送消息。
應(yīng)用了本發(fā)明的消息傳輸框架1的分布式文件系統(tǒng)的可用性信息流向是 自下而上的。文件系統(tǒng)產(chǎn)生網(wǎng)絡(luò)故障時(shí),故障信息從底層的網(wǎng)絡(luò)協(xié)議層20向 上傳給消息傳輸框架l,在該框架通過(guò)一系列高可用機(jī)制進(jìn)行容錯(cuò)處理,使得 網(wǎng)絡(luò)故障對(duì)上層透明,保證文件系統(tǒng)的可用性。在規(guī)定范圍內(nèi)解決不了網(wǎng)絡(luò)故
障,該消息傳輸框架1可將其向上提交給文件系統(tǒng)層10,由文件系統(tǒng)處理。 為此,如圖1所示,所述文件系統(tǒng)接口層ll,具體包括 創(chuàng)建通信上下文接口、創(chuàng)建連接上下文接口、創(chuàng)建操作上下文接口,釋放 操作上下文接口、釋放連接上下文接口、釋放通信上下文接口,以及提交操作 接口、輪詢回調(diào)接口等,其中提交操作接口用于文件系統(tǒng)創(chuàng)建操作上下文并將 文件系統(tǒng)的操作上下文結(jié)構(gòu)掛到文件操作處理層12的發(fā)送隊(duì)列,輪詢回調(diào)接 口用于接收方從接收隊(duì)列上取下到達(dá)消息的操作上下文結(jié)構(gòu)。 較佳地,如圖1所示,所述文件操作處理層12,具體包括連接通道選擇單元121,用于從通信上下文中選擇連接通道; 連接通道重構(gòu)單元122,用于當(dāng)連接通道選擇單元121選擇到無(wú)效通道時(shí), 重構(gòu)連接通道;
操作上下文重構(gòu)單元123,用于將操作上下文加入操作重構(gòu)隊(duì)列,并在連 接通道有效后,激活該操作。
較佳地,所述文件操作處理層12,還包括
通道心跳監(jiān)測(cè)單元124,用于監(jiān)測(cè)連接通道,通過(guò)連接上下文發(fā)送ic卿 消息,并接收應(yīng)答消息,當(dāng)發(fā)送icmp消息出錯(cuò)或接收應(yīng)答消息出錯(cuò)或接收消 息不匹配時(shí),重新發(fā)送icmp消息,當(dāng)重發(fā)次數(shù)超過(guò)設(shè)定閾值時(shí),將當(dāng)前連接 上下文交給連接通道重構(gòu)單元122。
較佳地,所述文件操作處理層12,還包括
應(yīng)答超時(shí)監(jiān)測(cè)單元125,用于當(dāng)?shù)讓訁f(xié)議封裝層13始終返回操作重試標(biāo) 志并超過(guò)預(yù)定的第一時(shí)限,或當(dāng)消息傳輸之后等待對(duì)應(yīng)的應(yīng)答消息在預(yù)定的第 二時(shí)限內(nèi)未到達(dá),則將操作上下文交給所述操作上下文重構(gòu)單元123。
較佳地,所述底層協(xié)議封裝層13,具體包括
通信方式管理單元131,用于執(zhí)行底層網(wǎng)絡(luò)操作。具體是,該通信方式管 理單元對(duì)底層網(wǎng)絡(luò)協(xié)議接口封裝,包括創(chuàng)建連接、中斷連接、同步或異步發(fā)送 消息、接收消息等;
通信模型管理單元132,用于為網(wǎng)絡(luò)操作選擇底層網(wǎng)絡(luò)協(xié)議。具體是,該 通信模型管理單元指導(dǎo)文件操作層提交的操作選擇協(xié)議。
較佳地,所述底層協(xié)議封裝層13,還包括
通信操作監(jiān)測(cè)單元133,用于檢測(cè)網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作是否成功,如 果沒有成功,則向文件操作處理層12返回操作重試標(biāo)志。
文件系統(tǒng)層10提交操作后,該操作對(duì)應(yīng)的操作上下文結(jié)構(gòu)將加入文件操 作處理層12的發(fā)送隊(duì)列,并激活處理線程,首先通過(guò)連接通道選擇單元121 獲取有效連接通道;接著通過(guò)底層協(xié)議封裝層13的通信模型管理單元132選 擇相應(yīng)的底層網(wǎng)絡(luò)協(xié)議;之后調(diào)用通信方式管理單元131的接口進(jìn)行消息傳 輸,傳輸過(guò)程由通信操作監(jiān)測(cè)單元133監(jiān)測(cè);傳輸完成后等待應(yīng)答消息到達(dá), 應(yīng)答超時(shí)監(jiān)測(cè)單元125將會(huì)捕獲應(yīng)^^,如果在預(yù)定的第二時(shí)限內(nèi)不能捕獲應(yīng) 答,將激活操作上下文重構(gòu)單元123,它將未完成的操作上下文結(jié)構(gòu)掛到操作 重試隊(duì)列上,依次進(jìn)行重新提交;同時(shí),通道心跳監(jiān)測(cè)單元124將被激活(其按周期時(shí)間執(zhí)行),探測(cè)連接通道的健康程度,如果多次探測(cè)未果,則釋放連 接通道,激活連接上下文重構(gòu)單元123,將對(duì)應(yīng)的連接上下文結(jié)構(gòu)掛到連接重 試隊(duì)列上,并在預(yù)定的次數(shù)范圍內(nèi)重試連接。
如圖2所示,作為本發(fā)明的另一個(gè)具體實(shí)施方式
, 一種針對(duì)分布式文件系 統(tǒng)的高可用性消息傳輸方法,包括如下步驟
步驟Sl,文件系統(tǒng)層10的組件通過(guò)文件系統(tǒng)接口層11提供的創(chuàng)建通信 上下文接口創(chuàng)建通信上下文。所述組件包括客戶端、數(shù)據(jù)服務(wù)器或元數(shù)據(jù)服務(wù) 器。
歩驟S2,文件系統(tǒng)層10的組件通過(guò)文件系統(tǒng)接口層11提供的創(chuàng)建連接 上下文接口創(chuàng)建連接上下文,當(dāng)前組件與多個(gè)遠(yuǎn)端組件間的連接上下文信息都 記錄在所述通信上下文中;
步驟S3,文件系統(tǒng)層10通過(guò)文件系統(tǒng)接口層11提供的提交操作接口創(chuàng) 建操作上下文,其中包括需要傳輸?shù)南?,然后將操作上下文掛到文件操作?br>
理層12的發(fā)送隊(duì)列;
步驟S4,文件操作處理層12從發(fā)送隊(duì)列上取下操作上下文并通過(guò)連接通
道選擇單元121選擇連接通道;
步驟S5,文件操作處理層12通過(guò)底層協(xié)議封裝層13的通信模型管理單 元132選擇相應(yīng)的網(wǎng)絡(luò)協(xié)議;
步驟S6,文件操作處理層12調(diào)用所述網(wǎng)絡(luò)協(xié)議的接口進(jìn)行消息傳輸。
較佳地,所述步驟S6中,還包括在消息傳輸時(shí),文件操作處理層12 的通道心跳監(jiān)測(cè)單元124監(jiān)測(cè)連接通道故障的步驟;如果通道心跳監(jiān)測(cè)單元 124監(jiān)測(cè)到連接通道故障,則將連接上下文加入連接重構(gòu)隊(duì)列,進(jìn)行連接上下 文的重構(gòu)。
較佳地,所述連接上下文重構(gòu)方法,包括如下步驟-步驟S601a,判斷連接上下文在連接發(fā)起方(客戶端)還是連接接收方(服 務(wù)器);
a) 如果連接上下文在發(fā)起方,則重新連接通信對(duì)方端點(diǎn),即重構(gòu)連 接上下文;
b) 如果連接上下文在接收方,將連接上下文從通信上下文中刪除,釋放相關(guān)資源。
步驟S601b,判斷發(fā)起方的連接上下文是否重構(gòu)成功;
a) 如果連接上下文重構(gòu)成功,則激活操作重構(gòu)隊(duì)列中對(duì)應(yīng)該連接端 點(diǎn)的操作上下文;
b) 如果連接上下文重構(gòu)失敗,再次重構(gòu);
步驟S601c,判斷重構(gòu)連接的失敗次數(shù)是否超過(guò)預(yù)定的閾值;
a) 如果失敗次數(shù)超過(guò)閾值,將連接上下文從通信上下文中刪除,釋
放相關(guān)資源。
b) 如果失敗次數(shù)尚未超過(guò)閾值,繼續(xù)重構(gòu)連接上下文。如果重構(gòu)成 功,則跳轉(zhuǎn)到步驟S601b。
較佳地,所述步驟S6中,還包括在消息傳輸時(shí),底層協(xié)議封裝層13 的通信操作監(jiān)測(cè)單元133監(jiān)測(cè)網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作是否成功的步驟;當(dāng)通 信操作監(jiān)測(cè)單元133監(jiān)測(cè)到網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作不成功時(shí),則向文件操作 處理層12返回操作重試標(biāo)志;當(dāng)?shù)讓訁f(xié)議封裝層13始終返回操作重試標(biāo)志并 超過(guò)預(yù)定的第一時(shí)限,文件操作處理層12會(huì)將操作上下文加入重構(gòu)隊(duì)列,重 構(gòu)操作上下文;當(dāng)通信操作監(jiān)測(cè)單元133監(jiān)測(cè)到網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作正常 時(shí),則等待應(yīng)答消息的到來(lái)。
較佳地,所述重構(gòu)操作上下文方法,包括如下步驟
步驟S602a,從通信上下文中選擇連接通道;
a) 如果選擇到有效連接通道,則通過(guò)該通道傳輸消息;
b) 如果選擇到無(wú)效通道,即通道存在,判斷連接上下文是否在客戶端; 如果連接上下文在發(fā)起方,則將操作上下文加入操作重構(gòu)隊(duì)列,等待對(duì)應(yīng)節(jié)點(diǎn) 的連接通道有效后會(huì)激活該操作;如果連接上下文在接收方,將直接返回錯(cuò)誤 碼給文件系統(tǒng)。
c) 如果無(wú)通道供選擇,即通道不存在,將直接返回錯(cuò)誤碼給文件系統(tǒng)。
較佳地,所述步驟S6,還包括文件操作處理層12在消息傳輸成功后等 待應(yīng)答消息過(guò)程中,應(yīng)答超時(shí)監(jiān)測(cè)單元125捕獲應(yīng)答消息的步驟,其具體包括 如下步驟
16如果成功接收應(yīng)答消息,則成功返回文件系統(tǒng)層10;
如果在預(yù)定的一第二時(shí)限內(nèi)未接收到應(yīng)答消息或者接收消息出錯(cuò),則激活 操作上下文重構(gòu)單元123,將操作上下文加入重構(gòu)隊(duì)列,重構(gòu)操作上下文。
較佳地,所述通道心跳監(jiān)測(cè)單元124監(jiān)測(cè)連接通道故障的步驟,包括
步驟S61a,通道心跳監(jiān)測(cè)單元124遍歷文件系統(tǒng)初始化時(shí)創(chuàng)建的通信上 下文的每個(gè)連接通道。該通道心跳監(jiān)測(cè)單元124運(yùn)行在每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上;
步驟S61b,通道心跳監(jiān)測(cè)單元124通過(guò)當(dāng)前連接上下文發(fā)送icmp消息, 并接收應(yīng)答消息;
步驟S61c,如果發(fā)送icmp消息出錯(cuò),則重新發(fā)送;如果接收應(yīng)答消息出 錯(cuò)或者接收消息不匹配,則重新發(fā)送消息;
步驟S61d,如果重新發(fā)送次數(shù)超過(guò)預(yù)定的閾值,則將當(dāng)前連接上下文掛 到失效隊(duì)列上;
步驟S61e,遍歷通信上下文的所有連接通道后,將失效隊(duì)列上的連接上 下文交給連接重構(gòu)線程進(jìn)行連接上下文重構(gòu)。
較佳地,所述步驟S6還包括在消息傳輸時(shí),如果網(wǎng)絡(luò)協(xié)議接口返回錯(cuò) 誤值,則底層協(xié)議封裝層13返回操作重試標(biāo)志給文件操作處理層12。
較佳地,所述步驟S6還包括在消息傳輸時(shí),通過(guò)網(wǎng)絡(luò)協(xié)議的回調(diào)函數(shù) 感知網(wǎng)絡(luò)協(xié)議層端口的狀態(tài)變化,如果感知網(wǎng)絡(luò)協(xié)議層端口的狀態(tài)惡化,則底 層協(xié)議封裝層13返回操作重試標(biāo)志給文件操作處理層12。
較佳地,所述步驟S6還包括接收方驗(yàn)證接收的消息,如果驗(yàn)證的結(jié)果 為不匹配,則發(fā)出接收出錯(cuò)消息;如果驗(yàn)證結(jié)果為匹配,則發(fā)送應(yīng)答消息。
較佳地,上述步驟S4中選擇連接通道的方法,包括如下步驟-
步驟S62a,通過(guò)遠(yuǎn)端文件系統(tǒng)組件的類型和標(biāo)識(shí)號(hào)定位連接上下文數(shù)組;
步驟S62b,在數(shù)組中隨機(jī)選擇一個(gè)位置,開始遍歷;
步驟S62c,選擇第一個(gè)遇到的權(quán)值最小的連接通道作為當(dāng)前的傳輸通道。 最小權(quán)值取決于負(fù)載和能力,即Minimum (Eload/c鄰ability)。 ELoad表示 當(dāng)前通道上傳輸?shù)臄?shù)據(jù)總量,用字節(jié)數(shù)來(lái)衡量;而capability表示當(dāng)前通道的傳輸能力,按照網(wǎng)絡(luò)自身的傳輸帶寬來(lái)衡量。
在配備多個(gè)網(wǎng)絡(luò)設(shè)備的情況下,上述選擇連接通道的方法可以在無(wú)故障的 情況下高效利用資源,而且解決了文件系統(tǒng)中的性能突降問(wèn)題。
通過(guò)上面對(duì)本發(fā)明的實(shí)施方式的詳細(xì)描述,可以看出,本發(fā)明產(chǎn)生的有益 技術(shù)效果包括
透明性本發(fā)明的消息傳輸框架建立在文件系統(tǒng)層之下,分離文件系統(tǒng)遇 到的網(wǎng)絡(luò)故障并進(jìn)行獨(dú)立處理,對(duì)上層文件系統(tǒng)保持透明,保證了文件系統(tǒng)的 獨(dú)立性,使其能夠?qū)W⒂诒旧砉ぷ鳌?br>
高效性本發(fā)明的消息傳輸方法采用了隱式重構(gòu)高可用方法和通道選擇高 可用方法,能夠及時(shí)有效地解決網(wǎng)絡(luò)分割、連接中斷以及性能突降等一系列文 件系統(tǒng)的網(wǎng)絡(luò)故障問(wèn)題,保障了文件系統(tǒng)的可用性,減少了故障恢復(fù)開銷和性 能損失。
適應(yīng)性本發(fā)明的消息傳輸框架和消息傳輸方法適用于多種網(wǎng)絡(luò)配置環(huán)境 下,并且能夠在不同類型的網(wǎng)絡(luò)故障發(fā)生時(shí)提供可用性保障。
移植性本發(fā)明的消息傳輸框架建立在底層網(wǎng)絡(luò)協(xié)議之上,通過(guò)消息傳輸 層的協(xié)議封裝層搭建,因而可以方便地移植到各種網(wǎng)絡(luò)協(xié)議上。
本發(fā)明可以為配備一套網(wǎng)絡(luò)或多套網(wǎng)絡(luò)的分布式文件系統(tǒng)提供網(wǎng)絡(luò)可用 性保障,這包括,提供可靠的服務(wù)而不出現(xiàn)網(wǎng)絡(luò)故障,即文件網(wǎng)絡(luò)傳輸?shù)目煽?性,維護(hù)可靠性的開銷對(duì)系統(tǒng)沒有影響;在系統(tǒng)出現(xiàn)網(wǎng)絡(luò)故障后,能夠快速恢 復(fù)故障而不會(huì)導(dǎo)致服務(wù)的中斷,即文件傳輸?shù)目尚迯?fù)性,修復(fù)后的性能損失占 正常性能的比例很??;提供公平的機(jī)制保證系統(tǒng)能夠公平有效地利用網(wǎng)絡(luò)資 源,即系統(tǒng)網(wǎng)絡(luò)的負(fù)載均衡性。
以上所述內(nèi)容,僅為本發(fā)明具體的實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局 限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易 想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1、一種針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架,其位于文件系統(tǒng)層之下、網(wǎng)絡(luò)協(xié)議層之上;其特征在于,該消息傳輸框架包括文件系統(tǒng)接口層,其為文件系統(tǒng)層提供訪問(wèn)接口;文件操作處理層,其分別與文件系統(tǒng)接口層和底層協(xié)議封裝層交互,用于處理文件系統(tǒng)層提交的請(qǐng)求,提交操作給底層協(xié)議封裝層;底層協(xié)議封裝層,其與網(wǎng)絡(luò)協(xié)議層通信,將文件操作處理層提交的操作進(jìn)行封裝后通過(guò)網(wǎng)絡(luò)協(xié)議層發(fā)送消息。
2、 根據(jù)權(quán)利要求1所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架, 其特征在于,所述文件系統(tǒng)接口層包括創(chuàng)建通信上下文接口、創(chuàng)建連接上下文接口、創(chuàng)建操作上下文接口,釋放 操作上下文接口、釋放連接上下文接口、釋放通信上下文接口,以及提交操作 接口、輪詢回調(diào)接口等,其中提交操作接口用于文件系統(tǒng)創(chuàng)建操作上下文并將 操作上下文掛到文件操作處理層的發(fā)送隊(duì)列,輪詢回調(diào)接口用于接收方從接收 隊(duì)列上取下到達(dá)消息的操作上下文結(jié)構(gòu)。
3、 根據(jù)權(quán)利要求1所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架, 其特征在于,所述文件操作處理層包括連接通道選擇單元,用于從通信上下文中選擇連接通道; 連接通道重構(gòu)單元,用于當(dāng)連接通道選擇單元選擇到無(wú)效通道時(shí),重構(gòu)連 接通道;操作上下文重構(gòu)單元,用于將操作上下文加入操作重構(gòu)隊(duì)列,并在連接通 道有效后,激活該操作。
4、 根據(jù)權(quán)利要求3所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架, 其特征在于,所述文件操作處理層還包括通道心跳監(jiān)測(cè)單元,用于監(jiān)測(cè)連接通道,通過(guò)連接上下文發(fā)送icmp消息, 并接收應(yīng)答消息,當(dāng)發(fā)送icmp消息出錯(cuò)或接收應(yīng)答消息出錯(cuò)或接收消息不匹 配時(shí),重新發(fā)送icmp消息,當(dāng)重發(fā)次數(shù)超過(guò)設(shè)定閾值時(shí),將當(dāng)前連接上下文 交給連接通道重構(gòu)單元。
5、 根據(jù)權(quán)利要求3或4所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架,其特征在于,所述文件操作處理層還包括應(yīng)答超時(shí)監(jiān)測(cè)單元,用于當(dāng)?shù)讓訁f(xié)議封裝層始終返回操作重試標(biāo)志并超過(guò) 預(yù)定的第一時(shí)限,或當(dāng)消息傳輸之后等待對(duì)應(yīng)的應(yīng)答消息在預(yù)定的第二時(shí)限內(nèi) 未到達(dá),則將操作上下文交給所述操作上下文重構(gòu)單元。
6、 根據(jù)權(quán)利要求1所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架, 其特征在于,所述底層協(xié)議封裝層包括通信模型管理單元,用于為網(wǎng)絡(luò)操作選擇底層網(wǎng)絡(luò)協(xié)議; 通信方式管理單元,用于執(zhí)行底層網(wǎng)絡(luò)操作。
7、 根據(jù)權(quán)利要求6所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸框架, 其特征在于,所述底層協(xié)議封裝層還包括通信操作監(jiān)測(cè)單元,用于檢測(cè)網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作是否成功,如果沒 有成功,則向文件操作處理層返回操作重試標(biāo)志。
8、 一種針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方法,其特征在于,包 括如下步驟步驟Sl,文件系統(tǒng)層通過(guò)創(chuàng)建通信上下文接口創(chuàng)建通信上下文;步驟S2,文件系統(tǒng)層通過(guò)創(chuàng)建連接上下文接口創(chuàng)建連接上下文,當(dāng)前組件與多個(gè)遠(yuǎn)端組件間的連接上下文信息都記錄在所述通信上下文中;步驟S3,文件系統(tǒng)層通過(guò)提交操作接口創(chuàng)建操作上下文,其中包括需要傳輸?shù)南?,然后將操作上下文掛到文件操作處理層的發(fā)送隊(duì)列;步驟S4,文件操作處理層從發(fā)送隊(duì)列上取下操作上下文并通過(guò)連接通道選擇單元選擇連接通道;步驟S5,文件操作處理層通過(guò)通信模型管理單元選擇相應(yīng)的網(wǎng)絡(luò)協(xié)議; 步驟S6,文件操作處理層調(diào)用所述網(wǎng)絡(luò)協(xié)議的接口進(jìn)行消息傳輸。
9、 根據(jù)權(quán)利要求8所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方法, 其特征在于,所述步驟S6還包括在消息傳輸時(shí),通道心跳監(jiān)測(cè)單元監(jiān)測(cè)連 接通道故障的步驟;如果通道心跳監(jiān)測(cè)單元監(jiān)測(cè)到連接通道故障,則將連接上 下文加入連接重構(gòu)隊(duì)列,進(jìn)行重構(gòu)連接上下文。
10、 根據(jù)權(quán)利要求9所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方 法,其特征在于,所述連接上下文重構(gòu)方法,包括如下步驟步驟S601a,判斷連接上下文在連接發(fā)起方還是連接接收方;如果連接上下文在發(fā)起方,則重新連接通信對(duì)方端點(diǎn),即重構(gòu)連接上下文;如果連接上下文在接收方,將連接上下文從通信上下文中刪除,釋放 相關(guān)資源。步驟S601b,判斷發(fā)起方的連接上下文是否重構(gòu)成功;如果連接上下文重構(gòu)成功,則激活操作重構(gòu)隊(duì)列中對(duì)應(yīng)該連接端點(diǎn)的 操作上下文;如果連接上下文重構(gòu)失敗,則再次重構(gòu); 步驟S601c,判斷重構(gòu)連接的失敗次數(shù)是否超過(guò)預(yù)定的閾值;如果失敗次數(shù)超過(guò)閾值,將連接上下文從通信上下文中刪除,釋放相關(guān)資源。如果失敗次數(shù)尚未超過(guò)閾值,繼續(xù)重構(gòu)連接上下文。
11、 根據(jù)權(quán)利要求8所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方 法,其特征在于,所述步驟S6還包括在消息傳輸時(shí),通信操作監(jiān)測(cè)單元監(jiān) 測(cè)網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作是否成功的步驟;當(dāng)通信操作監(jiān)測(cè)單元監(jiān)測(cè)到網(wǎng)絡(luò) 協(xié)議接口的網(wǎng)絡(luò)操作不成功時(shí),則向文件操作處理層返回操作重試標(biāo)志;當(dāng)?shù)讓訁f(xié)議封裝層始終返回操作重試標(biāo)志并超過(guò)預(yù)定的第一時(shí)限,文件操 作處理層將操作上下文加入重構(gòu)隊(duì)列,重構(gòu)操作上下文;當(dāng)通信操作監(jiān)測(cè)單元監(jiān)測(cè)到網(wǎng)絡(luò)協(xié)議接口的網(wǎng)絡(luò)操作正常時(shí),則等待應(yīng)答 消息的到來(lái)。
12、 根據(jù)權(quán)利要求11所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方 法,其特征在于,所述重構(gòu)操作上下文包括如下步驟從通信上下文中選擇連接通道;如果選擇到有效連接通道,則通過(guò)該通道傳輸消息;如果選擇到無(wú)效通道,判斷連接上下文是否在客戶端;如果連接上下文在 發(fā)起方,則將操作上下文加入操作重構(gòu)隊(duì)列,等待對(duì)應(yīng)節(jié)點(diǎn)的連接通道有效后 會(huì)激活該操作;如果連接上下文在接收方,將直接返回錯(cuò)誤碼給文件系統(tǒng)。如果無(wú)通道供選擇,將直接返回錯(cuò)誤碼給文件系統(tǒng)。
13、 根據(jù)權(quán)利要求8至12任一項(xiàng)所述的針對(duì)分布式文件系統(tǒng)的高可用性 消息傳輸方法,其特征在于,所述步驟S6還包括文件操作處理層在消息傳 輸成功后等待應(yīng)答消息過(guò)程中,應(yīng)答超時(shí)監(jiān)測(cè)單元捕獲應(yīng)答消息的步驟,其具體包括如下步驟如果成功接收應(yīng)答消息,則成功返回文件系統(tǒng)層;如果在預(yù)定的一第二時(shí)限內(nèi)未接收到應(yīng)答消息或者接收消息出錯(cuò),則激活 操作上下文重構(gòu)單元,將操作上下文加入重構(gòu)隊(duì)列,重構(gòu)操作上下文。
14、 根據(jù)權(quán)利要求9所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方法,其特征在于,所述通道心跳監(jiān)測(cè)單元監(jiān)測(cè)連接通道故障的步驟,包括步驟S61a,通道心跳監(jiān)測(cè)單元遍歷文件系統(tǒng)初始化時(shí)創(chuàng)建的通信上下文 的每個(gè)連接通道;步驟S61b,通道心跳監(jiān)測(cè)單元通過(guò)當(dāng)前連接上下文發(fā)送ic即消息,并接 收應(yīng)答消息;步驟S61c,如果發(fā)送icmp消息出錯(cuò),則重新發(fā)送消息;如果接收應(yīng)答消 息出錯(cuò)或者接收消息不匹配,則重新發(fā)送消息;步驟S61d,如果重新發(fā)送消息的次數(shù)超過(guò)預(yù)定的閾值,則將當(dāng)前連接上 下文掛到失效隊(duì)列上;步驟S61e,遍歷通信上下文的所有連接通道后,將失效隊(duì)列上的連接上 下文交給連接重構(gòu)線程進(jìn)行重構(gòu)連接上下文。
15、 根據(jù)權(quán)利要求8所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方 法,其特征在于,所述步驟S6還包括在消息傳輸時(shí),如果網(wǎng)絡(luò)協(xié)議接口返 回錯(cuò)誤值,則底層協(xié)議封裝層返回操作重試標(biāo)志給文件操作處理層。
16、 根據(jù)權(quán)利要求8所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方 法,其特征在于,所述步驟S6還包括在消息傳輸時(shí),通過(guò)網(wǎng)絡(luò)協(xié)議的回調(diào) 函數(shù)感知網(wǎng)絡(luò)協(xié)議層端口的狀態(tài)變化,如果感知網(wǎng)絡(luò)協(xié)議層端口的狀態(tài)惡化, 則底層協(xié)議封裝層返回操作重試標(biāo)志給文件操作處理層。
17、 根據(jù)權(quán)利要求8、 15或16所述的針對(duì)分布式文件系統(tǒng)的高可用性消 息傳輸方法,其特征在于,所述步驟S6還包括接收方驗(yàn)證接收的消息,如 果驗(yàn)證的結(jié)果為不匹配,則發(fā)出接收出錯(cuò)消息;如果驗(yàn)證結(jié)果為匹配,則發(fā)送 應(yīng)答消息。
18、 根據(jù)權(quán)利要求8所述的針對(duì)分布式文件系統(tǒng)的高可用性消息傳輸方 法,其特征在于,所述步驟S4中選擇連接通道的方法,包括如下步驟步驟S62a,通過(guò)通信遠(yuǎn)端文件系統(tǒng)組件的類型和標(biāo)識(shí)號(hào)定位連接上下文數(shù)組;步驟S62b,在數(shù)組中隨機(jī)選擇一個(gè)位置,開始遍歷;步驟S62c,選擇第一個(gè)遇到的權(quán)值最小的連接通道作為當(dāng)前的傳輸通道; 所述權(quán)值為當(dāng)前通道上傳輸?shù)臄?shù)據(jù)總量與當(dāng)前通道的傳輸能力的比值。
全文摘要
本發(fā)明提供一種針對(duì)分布式文件系統(tǒng)的高可用消息傳輸框架和方法。該消息傳輸框架包括文件系統(tǒng)接口層,其為文件系統(tǒng)層提供訪問(wèn)接口;文件操作處理層,其分別與文件系統(tǒng)接口層和底層協(xié)議封裝層交互,處理文件系統(tǒng)層提交的請(qǐng)求,提交操作給底層協(xié)議封裝層;底層協(xié)議封裝層,其與網(wǎng)絡(luò)協(xié)議層通信,將文件操作處理層提交的操作進(jìn)行封裝后通過(guò)網(wǎng)絡(luò)協(xié)議層發(fā)送消息。本發(fā)明可以為配備一套網(wǎng)絡(luò)或多套網(wǎng)絡(luò)的分布式文件系統(tǒng)提供網(wǎng)絡(luò)可用性保障。
文檔編號(hào)H04L29/08GK101459694SQ20081024744
公開日2009年6月17日 申請(qǐng)日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者唐榮鋒, 丹 孟, 棟 楊, 勁 熊 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所