專利名稱:一種分布式文件系統(tǒng)集群高可用方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件系統(tǒng),尤其涉及一種分布式文件系統(tǒng)集群高可用方法和裝置。
背景技術(shù):
目前在集群文件系統(tǒng)高可用機(jī)制是重要組成部分,如果沒(méi)有高可用,就不能完全保證數(shù)據(jù)的安全性,而且如果集群節(jié)點(diǎn)出現(xiàn)故障,會(huì)中斷用戶的應(yīng)用,可能會(huì)給用戶帶來(lái)較大的損失;另外,市場(chǎng)上有很多高可用軟件,大部分高可用軟件采用主從切換模式,即存儲(chǔ)用戶數(shù)據(jù)的卷作為一個(gè)高可用資源,該卷是共享存儲(chǔ),這樣當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障后,其他節(jié)點(diǎn)可以接管該資源,保證數(shù)據(jù)不丟失。該方式下還是會(huì)中斷用戶的應(yīng)用,因此,現(xiàn)有高可用方法需要改進(jìn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種分布式文件系統(tǒng)集群高可用方法和裝置,提高數(shù)據(jù)的安全性。為了解決上述問(wèn)題,本發(fā)明提供了一種分布式文件系統(tǒng)集群高可用方法,包括接收到數(shù)據(jù)寫(xiě)入請(qǐng)求時(shí),為待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群。
進(jìn)一步的,上述方法還可具有以下特點(diǎn)接收到數(shù)據(jù)讀取請(qǐng)求時(shí),從所述數(shù)據(jù)存儲(chǔ)集群存儲(chǔ)數(shù)據(jù)或數(shù)據(jù)副本的位置讀取所請(qǐng)求的數(shù)據(jù)。進(jìn)一步的,上述方法還可具有以下特點(diǎn)將所述數(shù)據(jù)和數(shù)據(jù)副本其中之一寫(xiě)入所述數(shù)據(jù)存儲(chǔ)集群中的主集群,另一寫(xiě)入從集群;當(dāng)接收到所述數(shù)據(jù)讀取請(qǐng)求時(shí),根據(jù)所述主集群和所述從集群的當(dāng)前負(fù)載決定從所述主集群中讀取所請(qǐng)求的數(shù)據(jù)還是從所述從集群中讀取所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)副本。進(jìn)一步的,上述方法還可具有以下特點(diǎn)讀取所述數(shù)據(jù)或數(shù)據(jù)副本后,將其當(dāng)成一份數(shù)據(jù)輸出。本發(fā)明還提高一種分布式文件系統(tǒng)集群高可用裝置,包括客戶端模塊、高可用模塊和數(shù)據(jù)存儲(chǔ)集群,其中所述客戶端模塊用于,接收數(shù)據(jù)寫(xiě)入請(qǐng)求和待寫(xiě)入的數(shù)據(jù),發(fā)送寫(xiě)請(qǐng)求給所述高可用模塊;所述高可用模塊用于,接收到所述客戶端模塊的寫(xiě)請(qǐng)求后,為所述待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群;所述數(shù)據(jù)存儲(chǔ)集群用于,存儲(chǔ)所述數(shù)據(jù)及其數(shù)據(jù)副本。進(jìn)一步的,上述裝置還可具有以下特點(diǎn),所述裝置還包括讀加速模塊,其中所述客戶端模塊還用于,接收到數(shù)據(jù)讀取請(qǐng)求時(shí),發(fā)送讀請(qǐng)求給所述讀加速模塊;所述讀加速模塊用于,接收到所述讀請(qǐng)求后,從所述數(shù)據(jù)存儲(chǔ)集群存儲(chǔ)數(shù)據(jù)或數(shù)據(jù)副本的位置讀取所請(qǐng)求的數(shù)據(jù)。進(jìn)一步的,上述裝置還可具有以下特點(diǎn),所述高可用模塊還用于,將所述數(shù)據(jù)和數(shù)據(jù)副本其中之一寫(xiě)入所述數(shù)據(jù)存儲(chǔ)集群中的主集群,另一寫(xiě)入從集群;所述讀加速模塊還用于,接收到所述讀請(qǐng)求時(shí),根據(jù)所述主集群和所述從集群的當(dāng)前負(fù)載決定從所述主集群中讀取所請(qǐng)求的數(shù)據(jù)還是從所述從集群中讀取所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)副本。進(jìn)一步的,上述裝置還可具有以下特點(diǎn),所述讀加速模塊還用于讀取所述數(shù)據(jù)或數(shù)據(jù)副本后,將其當(dāng)成一份數(shù)據(jù)輸出。進(jìn)一步的,上述裝置還可具有以下特點(diǎn),所述裝置還包括元數(shù)據(jù)集群,其中所述客戶端模塊還用于將所述待寫(xiě)入數(shù)據(jù)的元數(shù)據(jù)存儲(chǔ)到所述元數(shù)據(jù)集群。
本發(fā)明提供的一種分布式文件系統(tǒng)集群高可用方法和裝置,通常適用于分布式、并行文件系統(tǒng)中,能夠最大化的保證數(shù)據(jù)不丟失,維護(hù)數(shù)據(jù)安全性;并且提高集群的讀性倉(cāng)泛。
圖I是分布式文件系統(tǒng)集群數(shù)據(jù)寫(xiě)入示意圖;圖2是分布式文件系統(tǒng)集群數(shù)據(jù)讀取示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)數(shù)據(jù)高可用的方法,在數(shù)據(jù)寫(xiě)入時(shí)同時(shí)生成一份或者多份數(shù)據(jù)副本,并且數(shù)據(jù)和數(shù)據(jù)副本能夠并行寫(xiě)入到數(shù)據(jù)存儲(chǔ)集群中,這樣變相的實(shí)現(xiàn)了集群之間的高可用。本發(fā)明實(shí)施提供一種分布式文件系統(tǒng)集群高可用方法,包括接收到數(shù)據(jù)寫(xiě)入請(qǐng)求時(shí),為待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群。其中,可以只生成一份數(shù)據(jù)副本,也可以生成多份數(shù)據(jù)副本。其中,所述方法還包括接收到數(shù)據(jù)讀取請(qǐng)求時(shí),從所述數(shù)據(jù)存儲(chǔ)集群存儲(chǔ)數(shù)據(jù)或數(shù)據(jù)副本的位置讀取所請(qǐng)求的數(shù)據(jù)。其中,所述方法還包括,將所述數(shù)據(jù)和數(shù)據(jù)副本其中之一寫(xiě)入所述數(shù)據(jù)存儲(chǔ)集群中的主集群,另一寫(xiě)入從集群;當(dāng)接收到所述數(shù)據(jù)讀取請(qǐng)求時(shí),根據(jù)所述主集群和所述從集群的當(dāng)前負(fù)載決定從所述主集群中讀取所請(qǐng)求的數(shù)據(jù)還是從所述從集群中讀取所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)副本。其中,所述方法還包括讀取所述數(shù)據(jù)或數(shù)據(jù)副本后,將其當(dāng)成一份數(shù)據(jù)輸出。即不管讀取的是數(shù)據(jù),還是數(shù)據(jù)副本,不會(huì)區(qū)分顯示,僅顯示一份數(shù)據(jù),比如,讀取數(shù)據(jù)A時(shí),不管讀取的是數(shù)據(jù)A還是數(shù)據(jù)A的副本,顯示給用戶的都是數(shù)據(jù)A,而不會(huì)顯示給用戶兩份數(shù)據(jù),一份數(shù)據(jù)A,一份數(shù)據(jù)A的副本。
本發(fā)明實(shí)施例還提供一種分布式文件系統(tǒng)集群高可用裝置,包括客戶端模塊、高可用模塊和數(shù)據(jù)存儲(chǔ)集群,其中所述客戶端模塊用于,接收數(shù)據(jù)寫(xiě)入請(qǐng)求和待寫(xiě)入的數(shù)據(jù),發(fā)送寫(xiě)請(qǐng)求給所述高可用模塊;所述高可用模塊用于,接收到所述客戶端模塊的寫(xiě)請(qǐng)求后,為所述待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群;所述數(shù)據(jù)存儲(chǔ)集群用于,存儲(chǔ)所述數(shù)據(jù)及其數(shù)據(jù)副本。其中,所述裝置還包括讀加速模塊所述客戶端模塊還用于,接收到數(shù)據(jù)讀取請(qǐng)求時(shí),發(fā)送讀請(qǐng)求給所述讀加速模塊; 所述讀加速模塊用于,接收到所述讀請(qǐng)求后,從所述數(shù)據(jù)存儲(chǔ)集群存儲(chǔ)數(shù)據(jù)或數(shù)據(jù)副本的位置讀取所請(qǐng)求的數(shù)據(jù)。其中,所述高可用模塊還用于,將所述數(shù)據(jù)和數(shù)據(jù)副本其中之一寫(xiě)入所述數(shù)據(jù)存儲(chǔ)集群中的主集群,另一寫(xiě)入從集群;所述讀加速模塊還用于,接收到所述讀請(qǐng)求時(shí),根據(jù)所述主集群和所述從集群的當(dāng)前負(fù)載決定從所述主集群中讀取所請(qǐng)求的數(shù)據(jù)還是從所述從集群中讀取所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)副本。其中,所述讀加速模塊還用于讀取所述數(shù)據(jù)或數(shù)據(jù)副本后,將其當(dāng)成一份數(shù)據(jù)輸出。其中,所述裝置還包括元數(shù)據(jù)集群,其中所述客戶端模塊還用于將所述待寫(xiě)入數(shù)據(jù)的元數(shù)據(jù)存儲(chǔ)到所述云數(shù)據(jù)集群。如圖1,2所示,本發(fā)明實(shí)施提供的一種分布式文件系統(tǒng)集群高可用裝置包括客戶端模塊1,元數(shù)據(jù)集群2,數(shù)據(jù)存儲(chǔ)集群3,高可用模塊4和讀加速模塊5,其中客戶端模塊I是訪問(wèn)文件系統(tǒng)的入口,主要是負(fù)責(zé)用戶的數(shù)據(jù)請(qǐng)求,包括數(shù)據(jù)寫(xiě)入請(qǐng)求和數(shù)據(jù)讀取請(qǐng)求。元數(shù)據(jù)集群2負(fù)責(zé)存儲(chǔ)用戶數(shù)據(jù)的元數(shù)據(jù)部分。數(shù)據(jù)存儲(chǔ)集群3提供數(shù)據(jù)存儲(chǔ)單元,負(fù)責(zé)存儲(chǔ)數(shù)據(jù)(去掉元數(shù)據(jù)之后的數(shù)據(jù))。高可用模塊4用于生成副本,并存儲(chǔ)數(shù)據(jù)和數(shù)據(jù)副本,從而保證集群之間的高可用,并且當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障,數(shù)據(jù)不會(huì)丟失。讀加速模塊5 :提高客戶端的讀數(shù)據(jù)性能,能讀取數(shù)據(jù)和數(shù)據(jù)副本。其中,高可用模塊4,保證寫(xiě)入數(shù)據(jù)時(shí),同時(shí)生成至少一份數(shù)據(jù)副本,將數(shù)據(jù)和數(shù)據(jù)副本并行寫(xiě)入到數(shù)據(jù)存儲(chǔ)集群3中,這樣能夠?qū)崿F(xiàn)當(dāng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)故障時(shí),保證數(shù)據(jù)的完整性。讀加速模塊5,能夠同時(shí)讀取主(primary)集群和從(passive)集群中的數(shù)據(jù),從而提高數(shù)據(jù)讀取性能。下面通過(guò)一具體實(shí)施例對(duì)一種分布式文件系統(tǒng)集群高可用方法詳細(xì)過(guò)程說(shuō)明首先客戶端模塊I建立與集群文件系統(tǒng)的鏈接;假設(shè)客戶端模塊I要寫(xiě)入的數(shù)據(jù)為dataFile文件,將其分成2個(gè)條帶塊(D0,D1),在寫(xiě)入到數(shù)據(jù)存儲(chǔ)集群3之前,會(huì)在高可用模塊4生成一份副本(D0’,D1’ );
然后數(shù)據(jù)(DO,Dl)和數(shù)據(jù)副本(DO’,D1’ )會(huì)同時(shí)并行寫(xiě)入到數(shù)據(jù)存儲(chǔ)集群3,保證數(shù)據(jù)寫(xiě)入的性能;實(shí)現(xiàn)了當(dāng)一個(gè)節(jié)點(diǎn)失效時(shí),數(shù)據(jù)還是完整的。數(shù)據(jù)讀取的時(shí)候,讀加速模塊5會(huì)讀取數(shù)據(jù)存儲(chǔ)集群中的數(shù)據(jù)或數(shù)據(jù)副本,并能根據(jù)集群系統(tǒng)的負(fù)載情況,確定讀取主集群還是從集群中的數(shù)據(jù),這樣降低了系統(tǒng)的平均負(fù)載并且保證了系統(tǒng)的整體性能。本發(fā)明中,實(shí)現(xiàn)了數(shù)據(jù)備份,能夠保證數(shù)據(jù)不丟失,維護(hù)數(shù)據(jù)安全性。另外,數(shù)據(jù)和備份數(shù)據(jù)并行寫(xiě)入,相比在數(shù)據(jù)寫(xiě)入之后,再進(jìn)行備份的方法,提高了數(shù)據(jù)備份效率;以及,在有多個(gè)用戶的時(shí)候,由于可以同時(shí)讀取數(shù)據(jù)和數(shù)據(jù)副本,可以加快響應(yīng)速度,提高用戶體驗(yàn)。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤(pán)或光盤(pán)等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的 形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
權(quán)利要求
1.一種分布式文件系統(tǒng)集群高可用方法,其特征在于,包括 接收到數(shù)據(jù)寫(xiě)入請(qǐng)求時(shí),為待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群。
2.如權(quán)利要求I所述的方法,其特征在于,所述方法還包括接收到數(shù)據(jù)讀取請(qǐng)求時(shí),從所述數(shù)據(jù)存儲(chǔ)集群存儲(chǔ)數(shù)據(jù)或數(shù)據(jù)副本的位置讀取所請(qǐng)求的數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述方法還包括,將所述數(shù)據(jù)和數(shù)據(jù)副本其中之一寫(xiě)入所述數(shù)據(jù)存儲(chǔ)集群中的主集群,另一寫(xiě)入從集群; 當(dāng)接收到所述數(shù)據(jù)讀取請(qǐng)求時(shí),根據(jù)所述主集群和所述從集群的當(dāng)前負(fù)載決定從所述主集群中讀取所請(qǐng)求的數(shù)據(jù)還是從所述從集群中讀取所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)副本。
4.如權(quán)利要求2所述的方法,其特征在于,所述方法還包括讀取所述數(shù)據(jù)或數(shù)據(jù)副本后,將其當(dāng)成一份數(shù)據(jù)輸出。
5.一種分布式文件系統(tǒng)集群高可用裝置,其特征在于,包括客戶端模塊、高可用模塊和數(shù)據(jù)存儲(chǔ)集群,其中 所述客戶端模塊用于,接收數(shù)據(jù)寫(xiě)入請(qǐng)求和待寫(xiě)入的數(shù)據(jù),發(fā)送寫(xiě)請(qǐng)求給所述高可用模塊; 所述高可用模塊用于,接收到所述客戶端模塊的寫(xiě)請(qǐng)求后,為所述待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群; 所述數(shù)據(jù)存儲(chǔ)集群用于,存儲(chǔ)所述數(shù)據(jù)及其數(shù)據(jù)副本。
6.如權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括讀加速模塊,其中 所述客戶端模塊還用于,接收到數(shù)據(jù)讀取請(qǐng)求時(shí),發(fā)送讀請(qǐng)求給所述讀加速模塊; 所述讀加速模塊用于,接收到所述讀請(qǐng)求后,從所述數(shù)據(jù)存儲(chǔ)集群存儲(chǔ)數(shù)據(jù)或數(shù)據(jù)副本的位置讀取所請(qǐng)求的數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,其特征在于, 所述高可用模塊還用于,將所述數(shù)據(jù)和數(shù)據(jù)副本其中之一寫(xiě)入所述數(shù)據(jù)存儲(chǔ)集群中的主集群,另一寫(xiě)入從集群; 所述讀加速模塊還用于,接收到所述讀請(qǐng)求時(shí),根據(jù)所述主集群和所述從集群的當(dāng)前負(fù)載決定從所述主集群中讀取所請(qǐng)求的數(shù)據(jù)還是從所述從集群中讀取所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)副本。
8.如權(quán)利要求6所述的裝置,其特征在于,所述讀加速模塊還用于讀取所述數(shù)據(jù)或數(shù)據(jù)副本后,將其當(dāng)成一份數(shù)據(jù)輸出。
9.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括元數(shù)據(jù)集群,其中 所述客戶端模塊還用于將所述待寫(xiě)入數(shù)據(jù)的元數(shù)據(jù)存儲(chǔ)到所述元數(shù)據(jù)集群。
全文摘要
本發(fā)明提供了一種分布式文件系統(tǒng)集群高可用方法,包括接收到數(shù)據(jù)寫(xiě)入請(qǐng)求時(shí),為待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將所述待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群。本發(fā)明還提供了一種分布式文件系統(tǒng)集群高可用裝置,客戶端模塊接收數(shù)據(jù)寫(xiě)入請(qǐng)求和待寫(xiě)入的數(shù)據(jù),發(fā)送寫(xiě)請(qǐng)求給高可用模塊;高可用模塊為待寫(xiě)入的數(shù)據(jù)生成至少一份數(shù)據(jù)副本,將待寫(xiě)入的數(shù)據(jù)及其數(shù)據(jù)副本并行寫(xiě)入數(shù)據(jù)存儲(chǔ)集群。本發(fā)明能夠最大化的保證數(shù)據(jù)不丟失,維護(hù)數(shù)據(jù)安全性;并且提高集群的讀性能。
文檔編號(hào)G06F17/30GK102867035SQ201210311569
公開(kāi)日2013年1月9日 申請(qǐng)日期2012年8月28日 優(yōu)先權(quán)日2012年8月28日
發(fā)明者胡振 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司