專利名稱:分布式文件系統(tǒng)和分布式文件系統(tǒng)的數(shù)據(jù)備份方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種分布式文件系統(tǒng)和分布式文件系統(tǒng)的數(shù)據(jù)備份方法。
背景技術(shù):
云存儲(chǔ)領(lǐng)域中涉及的分布式文件系統(tǒng)與普通文件系統(tǒng)不同,分布式文件系統(tǒng)除了存儲(chǔ)實(shí)際數(shù)據(jù),還要存儲(chǔ)標(biāo)識(shí)數(shù)據(jù)所在副本位置的元數(shù)據(jù)。這意味著傳統(tǒng)的只備份實(shí)際數(shù)據(jù)的方式對(duì)分布式文件系統(tǒng)并不適用,以數(shù)據(jù)塊信息為例,數(shù)據(jù)塊信息上標(biāo)識(shí)有磁盤(pán)信息與存儲(chǔ)節(jié)點(diǎn)信息,磁盤(pán)信息是唯一的,如果A地機(jī)房發(fā)生災(zāi)難,即使將數(shù)據(jù)塊信息與數(shù)據(jù)都備份到B地,也無(wú)法找到匹配的磁盤(pán),即備份過(guò)去的元數(shù)據(jù)無(wú)效;因此,分布式文件系統(tǒng)只能采用內(nèi)部自有的備份機(jī)制對(duì)元數(shù)據(jù)和實(shí)際數(shù)據(jù)進(jìn)行備份。如圖I所示的相關(guān)技術(shù)中分布式文件系統(tǒng)的架構(gòu)示意圖,其中,圖I中的粗實(shí)線表示的是控制流的傳輸,細(xì)實(shí)線表示的是 數(shù)據(jù)流的傳輸,各設(shè)備描述如下文件位置寄存器(FLR,F(xiàn)ile Location Register):即元數(shù)據(jù)服務(wù)器,負(fù)責(zé)管理本文件系統(tǒng)內(nèi)所有文件的文件名、數(shù)據(jù)塊等元數(shù)據(jù)信息;并向文件訪問(wèn)客戶端(FAC,F(xiàn)ileAccess Client)提供元數(shù)據(jù)寫(xiě)入和查詢等操作;FAC:負(fù)責(zé)為本文件系統(tǒng)面向的應(yīng)用程序提供類似于標(biāo)準(zhǔn)文件系統(tǒng)的接口調(diào)用服務(wù),例如,發(fā)起訪問(wèn)請(qǐng)求,獲取數(shù)據(jù)后返回給應(yīng)用程序等;文件訪問(wèn)服務(wù)器(FAS, File Access Server):負(fù)責(zé)與本文件系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)進(jìn)行交互,進(jìn)行實(shí)際數(shù)據(jù)塊的讀寫(xiě)操作;響應(yīng)文件訪問(wèn)客戶端的數(shù)據(jù)讀寫(xiě)請(qǐng)求,從存儲(chǔ)媒介上讀取數(shù)據(jù)并返回給文件訪問(wèn)客戶端;從文件訪問(wèn)客戶端讀取數(shù)據(jù)并寫(xiě)入存儲(chǔ)媒介;存儲(chǔ)媒介(即圖I中的存儲(chǔ)設(shè)備集群1,…,η):磁盤(pán)、磁盤(pán)陣列等存儲(chǔ)設(shè)備,用于保存實(shí)際數(shù)據(jù)。圖I中的元數(shù)據(jù)通過(guò)互為主備(或主副)的FLR_A1與FLR_A2進(jìn)行實(shí)時(shí)同步,實(shí)際數(shù)據(jù)在進(jìn)行寫(xiě)操作時(shí)默認(rèn)設(shè)置為寫(xiě)雙副本,此時(shí)保證了系統(tǒng)不會(huì)存在單點(diǎn)故障。在容災(zāi)方面,如果簡(jiǎn)單地將備用FLR與存儲(chǔ)實(shí)際數(shù)據(jù)副本的文件訪問(wèn)服務(wù)器(FAS)布署在B地,在A地發(fā)生災(zāi)難時(shí),雖然B地的FLR能迅速切換為主FLR,但是此時(shí)元數(shù)據(jù)與實(shí)際數(shù)據(jù)都只剩下一個(gè)副本,存在單點(diǎn)故障,即一旦B地再發(fā)生故障,元數(shù)據(jù)和實(shí)際數(shù)據(jù)將永久丟失。針對(duì)相關(guān)技術(shù)中的分布式系統(tǒng)出現(xiàn)異地容災(zāi)時(shí),恢復(fù)后的文件系統(tǒng)存在單點(diǎn)故障的問(wèn)題,目如尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)上述分布式系統(tǒng)出現(xiàn)異地容災(zāi)時(shí),恢復(fù)后的文件系統(tǒng)存在單點(diǎn)故障的問(wèn)題,本發(fā)明提供了一種分布式文件系統(tǒng)和分布式文件系統(tǒng)的數(shù)據(jù)備份方法,以至少解決上述問(wèn)題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式文件系統(tǒng),該系統(tǒng)包括位于第一位置的主分布式子系統(tǒng)和位于第二位置的備分布式子系統(tǒng);其中,主分布式子系統(tǒng)包括主文件位置寄存器FLR、第一文件訪問(wèn)客戶端FAC和主文件訪問(wèn)服務(wù)器FAS ;備分布式子系統(tǒng)包括備FLR、第二 FAC和備FAS,其特征在于,主分布式子系統(tǒng)包括第一休眠FLR和第一替補(bǔ)FAS,備分布式子系統(tǒng)包括第二休眠FLR和第二替補(bǔ)FAS ;第一休眠FLR和第二休眠FLR均用于對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份;第一替補(bǔ)FAS和第二替補(bǔ)FAS均用于在第一 FAC或第二 FAC接收到寫(xiě)數(shù)據(jù)操作指示時(shí),與主FAS和備FAS同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。其中,上述第一休眠FLR和第二休眠FLR均包括休眠通信模塊,用于在主FLR和備FLR正常時(shí),通過(guò)心跳檢測(cè)通信方式對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份。上述備FLR包括廣播模塊,用于確定主FLR重啟后,向第一休眠FLR和第二休眠FLR廣播主備切換消息;第一休眠FLR和第二休眠FLR均包括定時(shí)通信模塊,用于接收到主備切換消息后,按照設(shè)定的周期定時(shí)與備FLR進(jìn)行元數(shù)據(jù)同步。上述備FLR包括第一檢測(cè)模塊,用于檢測(cè)主分布式子系統(tǒng)是否發(fā)生災(zāi)難故障;通·知模塊,用于第一檢測(cè)模塊檢測(cè)到的結(jié)果為是時(shí),向第二休眠FLR發(fā)送倒換指令;第二休眠FLR包括重啟模塊,用于接收到倒換指令后,進(jìn)行重啟;實(shí)時(shí)同步模塊,用于重啟后,以備用狀態(tài)實(shí)時(shí)與備FLR進(jìn)行元數(shù)據(jù)同步。上述備FLR包括第二檢測(cè)模塊,用于檢測(cè)主FLR是否恢復(fù)正常;通知模塊,用于第二檢測(cè)模塊檢測(cè)到的結(jié)果為是時(shí),向第二休眠FLR發(fā)送回切指令;上述第二休眠FLR包括回切模塊,用于接收到回切指令后,將當(dāng)前的備用狀態(tài)切換為休眠狀態(tài)。根據(jù)本發(fā)明的另一方面,提供了一種分布式文件系統(tǒng)的數(shù)據(jù)備份方法,該方法中的分布式文件系統(tǒng)為上述分布式文件系統(tǒng),該方法包括第一休眠FLR和第二休眠FLR對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份;在第一 FAC或第二 FAC接收到寫(xiě)數(shù)據(jù)操作指示時(shí),第一替補(bǔ)FAS、第二替補(bǔ)FAS、主FAS和備FAS同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。上述第一休眠FLR和第二休眠FLR對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份包括第一休眠FLR和第二休眠FLR在主FLR和備FLR正常時(shí),通過(guò)心跳檢測(cè)通信方式對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份。上述第一休眠FLR和第二休眠FLR對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份包括備FLR確定主FLR重啟后,向第一休眠FLR和第二休眠FLR廣播主備切換消息;第一休眠FLR和第二休眠FLR接收到主備切換消息后,按照設(shè)定的周期定時(shí)與備FLR進(jìn)行元數(shù)據(jù)同步。上述第一休眠FLR和第二休眠FLR對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份包括備FLR檢測(cè)主分布式子系統(tǒng)是否發(fā)生災(zāi)難故障;如果是,向第二休眠FLR發(fā)送倒換指令;第二休眠FLR接收到倒換指令后,進(jìn)行重啟;第二休眠FLR重啟后,以備用狀態(tài)實(shí)時(shí)與備FLR進(jìn)行元數(shù)據(jù)同步。上述第一休眠FLR和第二休眠FLR對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份包括備FLR檢測(cè)主FLR是否恢復(fù)正常;如果是,向第二休眠FLR發(fā)送回切指令;第二休眠FLR接收到回切指令后,將當(dāng)前的備用狀態(tài)切換為休眠狀態(tài),并通過(guò)心跳檢測(cè)通信方式對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份。通過(guò)本發(fā)明,采用在主備分布式子系統(tǒng)中均設(shè)置休眠FLR和替補(bǔ)FAS,可以擴(kuò)展元數(shù)據(jù)和實(shí)際數(shù)據(jù)的備份數(shù)目,這種備份方式即使主分布式子系統(tǒng)所在的機(jī)房發(fā)生災(zāi)難,備分布式子系統(tǒng)切換為主用后,該子系統(tǒng)中的休眠FLR也能夠及時(shí)對(duì)該子系統(tǒng)中的元數(shù)據(jù)進(jìn)行備份,該子系統(tǒng)中的替補(bǔ)FAS也能夠及時(shí)對(duì)寫(xiě)入的實(shí)際數(shù)據(jù)進(jìn)行備份,解決了相關(guān)技術(shù)中的分布式系統(tǒng)出現(xiàn)異地容災(zāi)時(shí),恢復(fù)后的文件系統(tǒng)存在單點(diǎn)故障的問(wèn)題,增強(qiáng)了系統(tǒng)的可靠性和實(shí)用性。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖I是根據(jù)相關(guān)技術(shù)的分布式文件系統(tǒng)的架構(gòu)示意圖;圖2是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的具體結(jié)構(gòu)示意圖; 圖4是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的數(shù)據(jù)備份方法流程;圖5是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)的數(shù)據(jù)備份方法的具體流程圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。本發(fā)明實(shí)施例對(duì)分布式文件系統(tǒng)的元數(shù)據(jù)與數(shù)據(jù)均進(jìn)行異地備份,保證在一地發(fā)生災(zāi)難時(shí)備份機(jī)房能立即無(wú)縫切換,不影響當(dāng)前業(yè)務(wù)的進(jìn)行,且切換后的系統(tǒng)仍不存在單點(diǎn)故障風(fēng)險(xiǎn)?;诖?,本發(fā)明實(shí)施例提供了一種分布式文件系統(tǒng),如圖2所示的分布式文件系統(tǒng)的結(jié)構(gòu)框圖,該系統(tǒng)包括位于第一位置的主分布式子系統(tǒng)10和位于第二位置的備分布式子系統(tǒng)20 ;其中,主分布式子系統(tǒng)10包括主FLR12、第一 FAC14和主FAS16 ;備分布式子系統(tǒng)20包括備FLR22、第二 FAC24和備FAS26,與圖I所示系統(tǒng)不同的是,本發(fā)明實(shí)施例中的主分布式子系統(tǒng)10還包括第一休眠FLR18和第一替補(bǔ)FAS19,備分布式子系統(tǒng)20還包括第二休眠FLR28和第二替補(bǔ)FAS29 ;各個(gè)設(shè)備的功能如下第一休眠FLR 18和第二休眠FLR 28均用于對(duì)主FLR 12或備FLR 22上的元數(shù)據(jù)進(jìn)行備份;第一替補(bǔ)FAS19和第二替補(bǔ)FAS29均用于在第一 FAC14或第二 FAC24接收到寫(xiě)數(shù)據(jù)操作指示時(shí),與主FAS16和備FAS26同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。本實(shí)施例通過(guò)在主備分布式子系統(tǒng)中均設(shè)置休眠FLR和替補(bǔ)FAS,可以擴(kuò)展元數(shù)據(jù)和實(shí)際數(shù)據(jù)的備份數(shù)目,這種備份方式即使主分布式子系統(tǒng)所在的機(jī)房發(fā)生災(zāi)難,備分布式子系統(tǒng)切換為主用后,該子系統(tǒng)中的休眠FLR也能夠及時(shí)對(duì)該子系統(tǒng)中的元數(shù)據(jù)進(jìn)行備份,該子系統(tǒng)中的替補(bǔ)FAS也能夠及時(shí)對(duì)寫(xiě)入的實(shí)際數(shù)據(jù)進(jìn)行備份,解決了相關(guān)技術(shù)中的分布式系統(tǒng)出現(xiàn)異地容災(zāi)時(shí),恢復(fù)后的文件系統(tǒng)存在單點(diǎn)故障的問(wèn)題,增強(qiáng)了系統(tǒng)的可靠性和實(shí)用性。本實(shí)施例中的第一休眠FLR18和第二休眠FLR28在主FLR12和備FLR22正常時(shí),均處于休眠狀態(tài),基于此,第一休眠FLR18和第二休眠FLR28均包括休眠通信模塊,用于在主FLR12和備FLR22正常時(shí),通過(guò)心跳檢測(cè)通信方式對(duì)主FLR12和備FLR22上的元數(shù)據(jù)進(jìn)行備份。這樣可以降低信息交互的次數(shù),以及減少系統(tǒng)的耗電量。
在分布式文件系統(tǒng)運(yùn)行過(guò)程中,可能因?yàn)槟承┰驅(qū)е轮鱂LR12重啟,為了不影響業(yè)務(wù)的正常進(jìn)行,本實(shí)施例的備FLR22包括廣播模塊,用于確定主FLR12重啟后,向第一休眠FLR18和第二休眠FLR28廣播主備切換消息;第一休眠FLR18和第二休眠FLR28均包括定時(shí)通信模塊,用于接收到主備切換消息后,按照設(shè)定的周期定時(shí)與備FLR22進(jìn)行元數(shù)據(jù)同步。對(duì)于第一位置處發(fā)生災(zāi)難,例如火災(zāi)或水災(zāi),導(dǎo)致主分布式子系統(tǒng)10癱瘓,本實(shí)施例將這種情況稱為主分布式子系統(tǒng)發(fā)生災(zāi)難故障,為了保證這種情況下業(yè)務(wù)的順利進(jìn)行,本實(shí)施例的備FLR22包括第一檢測(cè)模塊,用于檢測(cè)主分布式子系統(tǒng)是否發(fā)生災(zāi)難故障;通知模塊,與第一檢測(cè)模塊相連,用于第一檢測(cè)模塊檢測(cè)到的結(jié)果為是時(shí),向第二休眠FLR28發(fā)送倒換指令;第二休眠FLR28包括重啟模塊,用于接收到上述倒換指令后,進(jìn)行重啟;實(shí)時(shí)同步模塊,與重啟模塊相連,用于重啟后,以備用狀態(tài)實(shí)時(shí)與備FLR22進(jìn)行元數(shù)據(jù)同步。當(dāng)發(fā)生災(zāi)難故障的主分布式子系統(tǒng)10恢復(fù)正常時(shí),該系統(tǒng)中的主FLR12將向備 FLR22發(fā)送消息,以使備FLR22能夠檢測(cè)到其是否恢復(fù)正常,進(jìn)而調(diào)整上述休眠FLR的狀態(tài),使系統(tǒng)更節(jié)電?;诖?,上述備FLR22包括第二檢測(cè)模塊,用于檢測(cè)主FLR12是否恢復(fù)正常;通知模塊,與第二檢測(cè)模塊相連,用于第二檢測(cè)模塊檢測(cè)到的結(jié)果為是時(shí),向第二休眠FLR28發(fā)送回切指令;相應(yīng)地,第二休眠FLR28包括回切模塊,用于接收到上述回切指令后,將當(dāng)前的備用狀態(tài)切換為休眠狀態(tài)。由上述實(shí)施例可知,本發(fā)明實(shí)施例中的休眠FLR與原有的主備FLR不同,該服務(wù)器平常只與主FLR之間通過(guò)心跳檢測(cè)通信,一旦發(fā)生災(zāi)難導(dǎo)致主分布式子系統(tǒng)所在地的服務(wù)器全部損毀,備分布式子系統(tǒng)所在地的休眠FLR會(huì)收到切換后的主FLR發(fā)出的指令,重新啟動(dòng),并加載元數(shù)據(jù)成為備FLR ;對(duì)于實(shí)際數(shù)據(jù)的存儲(chǔ),為了增強(qiáng)系統(tǒng)的可靠性,本實(shí)施例采用了雙副本指定節(jié)點(diǎn)存儲(chǔ)算法,即在默認(rèn)雙副本情況下,容災(zāi)備份中設(shè)置四個(gè)副本并且另外兩個(gè)副本的數(shù)據(jù)全部存放在備分布式子系統(tǒng)所在地的機(jī)房,確保主分布式子系統(tǒng)發(fā)生災(zāi)難時(shí),備分布式子系統(tǒng)的數(shù)據(jù)仍有兩個(gè)副本。本發(fā)明實(shí)施例中的休眠FLR的個(gè)數(shù)僅以每個(gè)子系統(tǒng)各有一個(gè)為例進(jìn)行的說(shuō)明,在實(shí)際實(shí)現(xiàn)時(shí),不限于只有一個(gè),可以根據(jù)需要增設(shè);同理,備分布式子系統(tǒng)也不限于一個(gè),可以根據(jù)需要在多個(gè)位置分別部署。下面以圖3所示的分布式文件系統(tǒng)的具體結(jié)構(gòu)示意圖為例進(jìn)行說(shuō)明,其中,位于A地的各設(shè)備屬于主分布式子系統(tǒng),位于B地的各設(shè)備屬于備分布式子系統(tǒng)。圖3所示的系統(tǒng)是在圖I的基礎(chǔ)上進(jìn)行的改進(jìn),主要改進(jìn)包括一、FLR及元數(shù)據(jù)的異地備份由原有的兩個(gè)FLR服務(wù)器擴(kuò)展為4臺(tái)FLR服務(wù)器,原有圖I架構(gòu)中主FLR與副FLR(也稱為備FLR)都只有一個(gè),即圖3中的FLR_A1與FLR_B1,本實(shí)施例將增設(shè)的其他兩個(gè)FLR命名為休眠狀態(tài),休眠狀態(tài)的FLR定時(shí)與主FLR通信,已知A地有FLR_A1 (主FLR)、FLRA2(休眠態(tài)FLR,B地有FLR_B1 (副FLR)、FLR_B2 (休眠態(tài)FLR),四臺(tái)FLR的狀態(tài)變化分為以下幾種1、A地的FLR_A1發(fā)生重啟FLR主備倒換,F(xiàn)LR_B1變?yōu)橹鱂LR,將信息廣播給休眠態(tài)FLR_A2和FLR_B2,以后FLR_A2與FLR_B2改為定時(shí)與FLR_B1做心跳通信;
2、A地或B地的休眠態(tài)FLR發(fā)生重啟,原有流程無(wú)變化;3、B地的副FLR發(fā)生重啟流程無(wú)變化;4、A地機(jī)房發(fā)生災(zāi)難B地副FLR先轉(zhuǎn)換為主FLR,B地的主FLR若發(fā)現(xiàn)A地的兩個(gè)FLR都不通,且A地的存儲(chǔ)節(jié)點(diǎn)(例如,F(xiàn)AS)也沒(méi)有心跳上報(bào)時(shí),則認(rèn)為A地發(fā)生災(zāi)難,作為主FLR的FLR_B1向FLR_B2發(fā)出倒換為副FLR的指令,F(xiàn)LR_B2重啟版本軟件后狀態(tài)變?yōu)楦盕LR,與主FLR實(shí)時(shí)同步;5、A地機(jī)房災(zāi)難后恢復(fù)FLR_A1向B地的FLR_B1發(fā)出心跳,F(xiàn)LR_B1檢測(cè)到以后發(fā)出將FLR_B2狀態(tài)切換為休眠,而FLR_A1啟動(dòng)成功后狀態(tài)變?yōu)楦盕LR,F(xiàn)LR_A2仍為休眠態(tài),回到初始狀態(tài)。二、FAS及實(shí)際數(shù)據(jù)的異地備份
圖3所示的系統(tǒng)中設(shè)置有異地容災(zāi)開(kāi)關(guān),開(kāi)啟異地容災(zāi)開(kāi)關(guān)后,副本數(shù)由2變?yōu)?,而且分布式文件系統(tǒng)數(shù)據(jù)庫(kù)模塊的磁盤(pán)存儲(chǔ)策略發(fā)生變化,由原來(lái)的完全隨機(jī)存儲(chǔ)變?yōu)榉纸M后的組內(nèi)完全隨機(jī)存儲(chǔ)(副本按照A地和B地兩個(gè)分組進(jìn)行存儲(chǔ),每個(gè)分組中存儲(chǔ)的副本數(shù)均為2),既保證每個(gè)數(shù)據(jù)塊各有兩個(gè)副本在A地和B地,又保證了數(shù)據(jù)塊副本在A地或B地的均勻分布。本發(fā)明實(shí)施例還提供了一種分布式文件系統(tǒng)的數(shù)據(jù)備份方法,其中,該分布式文件系統(tǒng)如上所示,參見(jiàn)圖4所示的分布式文件系統(tǒng)的數(shù)據(jù)備份方法流程,該方法包括以下步驟步驟S402,第一休眠FLR和第二休眠FLR對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份;步驟S404,在第一 FAC或第二 FAC接收到寫(xiě)數(shù)據(jù)操作指示時(shí),第一替補(bǔ)FAS、第二替補(bǔ)FAS、主FAS和備FAS同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。本實(shí)施例通過(guò)主備分布式子系統(tǒng)中設(shè)置的休眠FLR和替補(bǔ)FAS,擴(kuò)展了元數(shù)據(jù)和實(shí)際數(shù)據(jù)的備份數(shù)目,這種備份方式即使主分布式子系統(tǒng)所在的機(jī)房發(fā)生災(zāi)難,備分布式子系統(tǒng)切換為主用后,該子系統(tǒng)中的休眠FLR也能夠及時(shí)對(duì)該子系統(tǒng)中的元數(shù)據(jù)進(jìn)行備份,該子系統(tǒng)中的替補(bǔ)FAS也能夠及時(shí)對(duì)寫(xiě)入的實(shí)際數(shù)據(jù)進(jìn)行備份,解決了相關(guān)技術(shù)中的分布式系統(tǒng)出現(xiàn)異地容災(zāi)時(shí),恢復(fù)后的文件系統(tǒng)存在單點(diǎn)故障的問(wèn)題,增強(qiáng)了系統(tǒng)的可靠性和實(shí)用性。在主FLR和備FLR正常時(shí),上述第一休眠FLR和第二休眠FLR可以通過(guò)心跳檢測(cè)通信方式對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份。這樣可以減少信令交互次數(shù),使系統(tǒng)更節(jié)電。本實(shí)施例中,如果備FLR確定主FLR重啟后,可以向第一休眠FLR和第二休眠FLR廣播主備切換消息;這樣第一休眠FLR和第二休眠FLR接收到主備切換消息后,則按照設(shè)定的周期定時(shí)與備FLR進(jìn)行元數(shù)據(jù)同步。這種方式可以使休眠的FLR更及時(shí)地進(jìn)行元數(shù)據(jù)的同步,增強(qiáng)系統(tǒng)的安全性。在主FLR重啟后,備FLR還可以檢測(cè)主分布式子系統(tǒng)是否發(fā)生災(zāi)難故障;如果是,向第二休眠FLR發(fā)送倒換指令;第二休眠FLR接收到倒換指令后,進(jìn)行重啟;第二休眠FLR重啟后,以備用狀態(tài)實(shí)時(shí)與備FLR進(jìn)行元數(shù)據(jù)同步。這種情況下,因主分布式子系統(tǒng)發(fā)生了災(zāi)難故障,因此元數(shù)據(jù)的備份只能依靠第二休眠FLR,所以通過(guò)將其由休眠狀態(tài)切換為備用狀態(tài),能夠提高元數(shù)據(jù)同步的及時(shí)性,增強(qiáng)數(shù)據(jù)的安全性。
本實(shí)施例的備FLR檢測(cè)主FLR是否恢復(fù)正常;如果是,向第二休眠FLR發(fā)送回切指令;第二休眠FLR接收到該回切指令后,將當(dāng)前的備用狀態(tài)切換為休眠狀態(tài),并通過(guò)心跳檢測(cè)通信方式對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份,以使系統(tǒng)的耗電比較小。以圖3所示的系統(tǒng)為例,本實(shí)施例圖5提供了分布式文件系統(tǒng)的數(shù)據(jù)備份方法的具體流程圖,該方法包括以下步驟步驟S502,F(xiàn)LR_B1檢測(cè)到與FLR_A1失去通訊,B地的FLR_B1切換為主FLR ;步驟S504,F(xiàn)LR_B1判斷A地其它設(shè)備是否正常,如果是,執(zhí)行步驟S506 ;如果否,執(zhí)行步驟S508 ;步驟S506,F(xiàn)LR_B1確定A地主FLR為普通重啟,容災(zāi)流程結(jié)束;步驟S508,F(xiàn)LR_B1確定A地發(fā)生災(zāi)難故障,然后執(zhí)行步驟S510 ;
步驟S510,F(xiàn)LR_B1向FLR_B2發(fā)出倒換指令,F(xiàn)LR_B2重啟后,切換為副FLR ;步驟S512,F(xiàn)LR_B1指示接收實(shí)際數(shù)據(jù)的FAC將實(shí)際數(shù)據(jù)存儲(chǔ)于FAS_B1至FAS_Bn中的任意兩個(gè),例如FAS_B1和FAS_B2,實(shí)際數(shù)據(jù)存儲(chǔ)副本數(shù)為2 ;步驟S514,F(xiàn)LR_B1判斷A地設(shè)備是否恢復(fù)正常,如果是,執(zhí)行步驟S516 ;如果否,執(zhí)行步驟S518 ;步驟S516,F(xiàn)LR_B1確定A地災(zāi)難恢復(fù),然后執(zhí)行步驟S520 ;步驟S518,F(xiàn)LR_B1確定A地災(zāi)難未恢復(fù),返回步驟S514,F(xiàn)LR_B1繼續(xù)檢測(cè)A地設(shè)備是否恢復(fù)正常;步驟S520,F(xiàn)LR_B1通過(guò)發(fā)送消息設(shè)置FLR_B2切換為休眠狀態(tài),F(xiàn)LR_A1變?yōu)楦盕LR, FLR_A2處于休眠狀態(tài);此時(shí)實(shí)際數(shù)據(jù)的副本存儲(chǔ)數(shù)為4 ;容災(zāi)流程結(jié)束。對(duì)于圖I所示的系統(tǒng)架構(gòu),為了實(shí)現(xiàn)本發(fā)明上述實(shí)施例,可以采用下述方式實(shí)現(xiàn)I)在網(wǎng)管上增加B地的FLR地址并設(shè)置屬性為副FLR狀態(tài)或休眠態(tài);2)在網(wǎng)管界面上打開(kāi)容災(zāi)備份開(kāi)關(guān),副本數(shù)由2變?yōu)? ;3)在網(wǎng)管上配置磁盤(pán)的分組選取策略;4)在網(wǎng)管上重啟所有版本程序;容災(zāi)配置成功的標(biāo)志在顯示界面上可以看到4個(gè)FLR的狀態(tài)分別為主、休眠、備、休眠,副本數(shù)為4,查詢?nèi)我粩?shù)據(jù)塊的備份,各有兩份在A地和B地。通過(guò)這種配置方式,在A地發(fā)生災(zāi)難后,能在B地迅速恢復(fù)的分布式文件系統(tǒng)容災(zāi)備份機(jī)制,而且恢復(fù)后的文件系統(tǒng)仍然不存在單點(diǎn)故障,即元數(shù)據(jù)與實(shí)際數(shù)據(jù)在B地仍然存在兩個(gè)副本。從以上的描述中可以看出,本發(fā)明實(shí)施例與普通容災(zāi)備份相比,上述實(shí)施例既充分利用分布式文件系統(tǒng)原有的備份機(jī)制,又實(shí)現(xiàn)了災(zāi)難情況下的元數(shù)據(jù)與實(shí)際數(shù)據(jù)的雙副本備份,能完全滿足分布式文件系統(tǒng)的容災(zāi)需求,并且做到元數(shù)據(jù)與數(shù)據(jù)的實(shí)時(shí)備份與切換時(shí)不影響業(yè)務(wù),將分布式文件系統(tǒng)的安全提升了一個(gè)層次,比較適用于有元數(shù)據(jù)服務(wù)器的分布式文件系統(tǒng)。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之 內(nèi)。
權(quán)利要求
1.一種分布式文件系統(tǒng),包括位于第一位置的主分布式子系統(tǒng)和位于第二位置的備分布式子系統(tǒng);其中,所述主分布式子系統(tǒng)包括主文件位置寄存器FLR、第一文件訪問(wèn)客戶端FAC和主文件訪問(wèn)服務(wù)器FAS ;所述備分布式子系統(tǒng)包括備FLR、第二 FAC和備FAS,其特征在于,所述主分布式子系統(tǒng)包括第一休眠FLR和第一替補(bǔ)FAS,所述備分布式子系統(tǒng)包括第二休眠FLR和第二替補(bǔ)FAS ; 所述第一休眠FLR和所述第二休眠FLR均用于對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份; 所述第一替補(bǔ)FAS和所述第二替補(bǔ)FAS均用于在所述第一 FAC或所述第二 FAC接收到寫(xiě)數(shù)據(jù)操作指示時(shí),與所述主FAS和所述備FAS同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。
2.根據(jù)權(quán)利要求I所述的分布式文件系統(tǒng),其特征在于,所述第一休眠FLR和所述第二休眠FLR均包括休眠通信模塊,用于在所述主FLR和所述備FLR正常時(shí),通過(guò)心跳檢測(cè)通信方式對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份。
3.根據(jù)權(quán)利要求I所述的分布式文件系統(tǒng),其特征在于, 所述備FLR包括廣播模塊,用于確定所述主FLR重啟后,向所述第一休眠FLR和所述第二休眠FLR廣播主備切換消息; 所述第一休眠FLR和所述第二休眠FLR均包括定時(shí)通信模塊,用于接收到所述主備切換消息后,按照設(shè)定的周期定時(shí)與所述備FLR進(jìn)行元數(shù)據(jù)同步。
4.根據(jù)權(quán)利要求I所述的分布式文件系統(tǒng),其特征在于, 所述備FLR包括第一檢測(cè)模塊,用于檢測(cè)所述主分布式子系統(tǒng)是否發(fā)生災(zāi)難故障;通知模塊,用于所述第一檢測(cè)模塊檢測(cè)到的結(jié)果為是時(shí),向所述第二休眠FLR發(fā)送倒換指令; 所述第二休眠FLR包括重啟模塊,用于接收到所述倒換指令后,進(jìn)行重啟;實(shí)時(shí)同步模塊,用于重啟后,以備用狀態(tài)實(shí)時(shí)與所述備FLR進(jìn)行元數(shù)據(jù)同步。
5.根據(jù)權(quán)利要求4所述的分布式文件系統(tǒng),其特征在于, 所述備FLR包括第二檢測(cè)模塊,用于檢測(cè)所述主FLR是否恢復(fù)正常;通知模塊,用于所述第二檢測(cè)模塊檢測(cè)到的結(jié)果為是時(shí),向所述第二休眠FLR發(fā)送回切指令; 所述第二休眠FLR包括回切模塊,用于接收到所述回切指令后,將當(dāng)前的備用狀態(tài)切換為休眠狀態(tài)。
6.—種分布式文件系統(tǒng)的數(shù)據(jù)備份方法,其特征在于,所述分布式文件系統(tǒng)為權(quán)利要求I至5中任一項(xiàng)所述的分布式文件系統(tǒng),所述方法包括 所述第一休眠FLR和所述第二休眠FLR對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份; 在所述第一 FAC或所述第二 FAC接收到寫(xiě)數(shù)據(jù)操作指示時(shí),所述第一替補(bǔ)FAS、所述第二替補(bǔ)FAS、所述主FAS和所述備FAS同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第一休眠FLR和所述第二休眠FLR對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份包括所述第一休眠FLR和所述第二休眠FLR在所述主FLR和所述備FLR正常時(shí),通過(guò)心跳檢測(cè)通信方式對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第一休眠FLR和所述第二休眠FLR對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份包括所述備FLR確定所述主FLR重啟后,向所述第一休眠FLR和所述第二休眠FLR廣播主備切換消息; 所述第一休眠FLR和所述第二休眠FLR接收到所述主備切換消息后,按照設(shè)定的周期定時(shí)與所述備FLR進(jìn)行元數(shù)據(jù)同步。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第一休眠FLR和所述第二休眠FLR對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份包括 所述備FLR檢測(cè)所述主分布式子系統(tǒng)是否發(fā)生災(zāi)難故障;如果是,向所述第二休眠FLR發(fā)送倒換指令; 所述第二休眠FLR接收到所述倒換指令后,進(jìn)行重啟; 所述第二休眠FLR重啟后,以備用狀態(tài)實(shí)時(shí)與所述備FLR進(jìn)行元數(shù)據(jù)同步。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述第一休眠FLR和所述第二休眠FLR對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份包括 所述備FLR檢測(cè)所述主FLR是否恢復(fù)正常;如果是,向所述第二休眠FLR發(fā)送回切指令; 所述第二休眠FLR接收到所述回切指令后,將當(dāng)前的備用狀態(tài)切換為休眠狀態(tài),并通過(guò)心跳檢測(cè)通信方式對(duì)所述主FLR或所述備FLR上的元數(shù)據(jù)進(jìn)行備份。
全文摘要
本發(fā)明公開(kāi)了一種分布式文件系統(tǒng)和分布式文件系統(tǒng)的數(shù)據(jù)備份方法,該系統(tǒng)包括主FLR、第一FAC、主FAS,以及第一休眠FLR和第一替補(bǔ)FAS;備分布式子系統(tǒng)包括備FLR、第二FAC、備FAS,以及第二休眠FLR和第二替補(bǔ)FAS;第一休眠FLR和第二休眠FLR均用于對(duì)主FLR或備FLR上的元數(shù)據(jù)進(jìn)行備份;第一替補(bǔ)FAS和第二替補(bǔ)FAS均用于在第一FAC或第二FAC接收到寫(xiě)數(shù)據(jù)操作指示時(shí),與主FAS和備FAS同步對(duì)當(dāng)前的實(shí)際數(shù)據(jù)進(jìn)行寫(xiě)入操作。通過(guò)本發(fā)明,解決了相關(guān)技術(shù)中的分布式系統(tǒng)出現(xiàn)異地容災(zāi)時(shí),恢復(fù)后的文件系統(tǒng)存在單點(diǎn)故障的問(wèn)題,增強(qiáng)了系統(tǒng)的可靠性和實(shí)用性。
文檔編號(hào)G06F11/14GK102890716SQ20121037630
公開(kāi)日2013年1月23日 申請(qǐng)日期2012年9月29日 優(yōu)先權(quán)日2012年9月29日
發(fā)明者歐陽(yáng)偉 申請(qǐng)人:南京中興新軟件有限責(zé)任公司