本發(fā)明涉及分布式文件存儲(chǔ)領(lǐng)域,尤其涉及一種元數(shù)據(jù)管理方法及裝置、分布式文件系統(tǒng)。
背景技術(shù):
目前包括彩鈴、MS、WAP網(wǎng)關(guān)等產(chǎn)品中都用到了網(wǎng)絡(luò)存儲(chǔ)設(shè)備,為了達(dá)到大容量、高吞吐量和高可靠性的要求,隨著對(duì)這些產(chǎn)品可靠性等要求的提高,往往價(jià)格也是呈現(xiàn)指數(shù)級(jí)上升,這些設(shè)備在整個(gè)系統(tǒng)的中的成本往往都超過(guò)了50%,在廉價(jià)的通用硬件平臺(tái)上構(gòu)建分布式文件系統(tǒng)已經(jīng)是各種存儲(chǔ)類(lèi)業(yè)務(wù)發(fā)展的必然趨勢(shì)。
分布式文件系統(tǒng)是一個(gè)通用存儲(chǔ)軟件平臺(tái),運(yùn)行在通用硬件之上,為需要存儲(chǔ)服務(wù)的產(chǎn)品提供存儲(chǔ)平臺(tái)支撐,提供存儲(chǔ)、查詢檢索和管理產(chǎn)品所產(chǎn)生的海量數(shù)據(jù)服務(wù),如多媒體內(nèi)容存儲(chǔ)、業(yè)務(wù)數(shù)據(jù)存儲(chǔ)等。單域支持10PB(10億文件數(shù))存儲(chǔ)能力,系統(tǒng)整體可達(dá)EB級(jí)(千億文件數(shù))海量存儲(chǔ)能力,系統(tǒng)整體性能隨存儲(chǔ)規(guī)模同步線性增長(zhǎng)。海量的文件產(chǎn)生上百G的元數(shù)據(jù),系統(tǒng)升級(jí)和備份過(guò)程都需要上百G的磁盤(pán)空間來(lái)備份,而且需要1-2h時(shí)間的備份;隨著系統(tǒng)容量不斷增加,系統(tǒng)元數(shù)據(jù)也不斷增加,備份和還原系統(tǒng)元數(shù)據(jù)成為系統(tǒng)升級(jí)或日常備份時(shí)的瓶頸,大量占用系統(tǒng)cpu和磁盤(pán)使用。
因此,如何提供一種可快速進(jìn)行元數(shù)據(jù)備份及恢復(fù)的元數(shù)據(jù)管理方法,是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種元數(shù)據(jù)管理方法及裝置、分布式文件系統(tǒng),以實(shí)現(xiàn)對(duì)元數(shù)據(jù)的快速備份及恢復(fù)。
本發(fā)明提供了一種元數(shù)據(jù)管理方法,其包括:在元數(shù)據(jù)備份時(shí),采用差分算法計(jì)算當(dāng)前元數(shù)據(jù)與已備份元數(shù)據(jù)的差分?jǐn)?shù)據(jù);在元數(shù)據(jù)恢復(fù)時(shí),利用差分?jǐn)?shù)據(jù)及已備份元數(shù)據(jù)恢復(fù)當(dāng)前元數(shù)據(jù)。
進(jìn)一步的,已備份元數(shù)據(jù)包括最近一次全量備份的元數(shù)據(jù)。
進(jìn)一步的,差分?jǐn)?shù)據(jù)包括已備份元數(shù)據(jù)的標(biāo)識(shí)、差異數(shù)據(jù)偏移量及差異數(shù)據(jù)。
進(jìn)一步的,利用差分?jǐn)?shù)據(jù)及已備份元數(shù)據(jù)恢復(fù)當(dāng)前元數(shù)據(jù)包括:確定差分?jǐn)?shù)據(jù)對(duì)應(yīng)的已備份元數(shù)據(jù),根據(jù)差異數(shù)據(jù)偏移量確定已備份元數(shù)據(jù)內(nèi)的待替換數(shù)據(jù),將待替換數(shù)據(jù)替換為差異數(shù)據(jù),生成當(dāng)前元數(shù)據(jù)。
進(jìn)一步的,差分?jǐn)?shù)據(jù)還包括已備份元數(shù)據(jù)內(nèi)的原始差異數(shù)據(jù)。
進(jìn)一步的,還包括:采用多線程并行進(jìn)行元數(shù)據(jù)備份及元數(shù)據(jù)恢復(fù)。
進(jìn)一步的,在元數(shù)據(jù)備份后,還包括:根據(jù)差分?jǐn)?shù)據(jù)的大小確定下一次數(shù)據(jù)備份時(shí)的備份方式,備份方式包括:全量備份和差分備份。
本發(fā)明提供了一種元數(shù)據(jù)管理裝置,其包括:備份模塊,用于在元數(shù)據(jù)備份時(shí),采用差分算法計(jì)算當(dāng)前元數(shù)據(jù)與已備份元數(shù)據(jù)的差分?jǐn)?shù)據(jù);恢復(fù)模塊,用于在元數(shù)據(jù)恢復(fù)時(shí),利用差分?jǐn)?shù)據(jù)及已備份元數(shù)據(jù)恢復(fù)當(dāng)前元數(shù)據(jù)。
進(jìn)一步的,已備份元數(shù)據(jù)包括最近一次全量備份的元數(shù)據(jù)。
進(jìn)一步的,差分?jǐn)?shù)據(jù)包括已備份元數(shù)據(jù)的標(biāo)識(shí)、差異數(shù)據(jù)偏移量及差異數(shù)據(jù)。
進(jìn)一步的,恢復(fù)模塊用于確定差分?jǐn)?shù)據(jù)對(duì)應(yīng)的已備份元數(shù)據(jù),根據(jù)差異數(shù)據(jù)偏移量確定已備份元數(shù)據(jù)內(nèi)的待替換數(shù)據(jù),將待替換數(shù)據(jù)替換為差異數(shù)據(jù),生成當(dāng)前元數(shù)據(jù)。
進(jìn)一步的,差分?jǐn)?shù)據(jù)還包括已備份元數(shù)據(jù)內(nèi)的原始差異數(shù)據(jù)。
進(jìn)一步的,備份模塊還用于采用多線程并行進(jìn)行元數(shù)據(jù)備份,恢復(fù)模塊還用于采用多線程并行進(jìn)行元數(shù)據(jù)恢復(fù)。
進(jìn)一步的,在元數(shù)據(jù)備份后,備份模塊還用于根據(jù)差分?jǐn)?shù)據(jù)的大小確定下一次數(shù)據(jù)備份時(shí)的備份方式,備份方式包括:全量備份和差分備份。
本發(fā)明提供了一種分布式文件系統(tǒng),其包括本發(fā)明提供的元數(shù)據(jù)管理裝置。
本發(fā)明的有益效果:
本發(fā)明提供了一種新的元數(shù)據(jù)管理方法,通過(guò)快速差分算法和差分還原算法快速進(jìn)行元數(shù)據(jù)備份和恢復(fù),原來(lái)的備份磁盤(pán)空間使用由GB降低到MB的量級(jí),實(shí)現(xiàn)了元數(shù)據(jù)的快速備份及恢復(fù),可以使分布式文件系統(tǒng)海量元數(shù)據(jù)備份時(shí)長(zhǎng)由原來(lái)的幾小時(shí)縮短為幾分鐘。
附圖說(shuō)明
圖1為本發(fā)明第一實(shí)施例提供的元數(shù)據(jù)管理裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明第二實(shí)施例提供的元數(shù)據(jù)管理方法的流程圖;
圖3為本發(fā)明第三實(shí)施例提供的元數(shù)據(jù)管理方法的流程圖;
圖4為本發(fā)明第三實(shí)施例中元數(shù)據(jù)的對(duì)比示意圖。
具體實(shí)施方式
現(xiàn)通過(guò)具體實(shí)施方式結(jié)合附圖的方式對(duì)本發(fā)明做出進(jìn)一步的詮釋說(shuō)明。
第一實(shí)施例:
圖1為本發(fā)明第一實(shí)施例提供的元數(shù)據(jù)管理裝置的結(jié)構(gòu)示意圖,由圖1可知,在本實(shí)施例中,本發(fā)明提供的元數(shù)據(jù)管理裝置1包括:
備份模塊11,用于在元數(shù)據(jù)備份時(shí),采用差分算法計(jì)算當(dāng)前元數(shù)據(jù)與已備份元數(shù)據(jù)的差分?jǐn)?shù)據(jù);
恢復(fù)模塊12,用于在元數(shù)據(jù)恢復(fù)時(shí),利用差分?jǐn)?shù)據(jù)及已備份元數(shù)據(jù)恢復(fù)當(dāng)前元數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的已備份元數(shù)據(jù)包括最近一次全量備份的元數(shù)據(jù)。在實(shí)際使用中,元數(shù)據(jù)的變化是漸變的,差分算法以最近一次的元數(shù)據(jù)作為計(jì)算基礎(chǔ),可以大大減少差分?jǐn)?shù)據(jù)的數(shù)據(jù)量,當(dāng)然,本領(lǐng)域技術(shù)人員可以根據(jù)需要設(shè)置特定時(shí)間點(diǎn)進(jìn)行全量備份的元數(shù)據(jù)作為差分計(jì)算的基礎(chǔ)。
在一些實(shí)施例中,上述實(shí)施例中的差分?jǐn)?shù)據(jù)包括已備份元數(shù)據(jù)的標(biāo)識(shí)、差異數(shù)據(jù)偏移量及差異數(shù)據(jù)。這樣在恢復(fù)時(shí),就可以快速的確定差異數(shù)據(jù)的位置,進(jìn)行差分逆計(jì)算得到當(dāng)前元數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的恢復(fù)模塊12用于確定差分?jǐn)?shù)據(jù)對(duì)應(yīng)的已備份元數(shù)據(jù),根據(jù)差異數(shù)據(jù)偏移量確定已備份元數(shù)據(jù)內(nèi)的待替換數(shù)據(jù),將待替換數(shù)據(jù)替換為差異數(shù)據(jù),生成當(dāng)前元數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的差分?jǐn)?shù)據(jù)還包括已備份元數(shù)據(jù)內(nèi)的原始差異數(shù)據(jù)。這個(gè)在進(jìn)行恢復(fù)時(shí),就可以進(jìn)行對(duì)比,當(dāng)待替換數(shù)據(jù)與原始差異數(shù)據(jù)相同時(shí),說(shuō)明沒(méi)有錯(cuò)誤,可以直接進(jìn)行恢復(fù),若不相同,則說(shuō)明差分?jǐn)?shù)據(jù)/已備份元數(shù)據(jù)存在錯(cuò)誤,需要根據(jù)實(shí)際情況判斷是否需要恢復(fù),以及如何恢復(fù)。
在一些實(shí)施例中,上述實(shí)施例中的備份模塊11還用于采用多線程并行進(jìn)行元數(shù)據(jù)備份,恢復(fù)模塊12還用于采用多線程并行進(jìn)行元數(shù)據(jù)恢復(fù)。多線程并行方式可以進(jìn)一步加強(qiáng)元數(shù)據(jù)的備份及恢復(fù)速度。
在一些實(shí)施例中,在元數(shù)據(jù)備份后,上述實(shí)施例中的備份模塊11還用于根據(jù)差分?jǐn)?shù)據(jù)的大小確定下一次數(shù)據(jù)備份時(shí)的備份方式,備份方式包括:全量備份和差分備份。具體的,可以設(shè)置一個(gè)閾值,當(dāng)某一次進(jìn)行差分備份時(shí)的差分?jǐn)?shù)據(jù)大于閾值,就說(shuō)明當(dāng)前元數(shù)據(jù)與已備份元數(shù)據(jù)的差異較大,這往往代表了用戶對(duì)分布式文件系統(tǒng)的存儲(chǔ)數(shù)據(jù)進(jìn)行了較大的修改,如更換硬件設(shè)備等,僅進(jìn)行差分備份容易造成差異數(shù)據(jù)的漏計(jì)算,因此設(shè)置下一次備份時(shí),采用全量備份的方式進(jìn)行原數(shù)據(jù)的全量備份,作為后續(xù)差分備份的基礎(chǔ)。
對(duì)應(yīng)的,本發(fā)明提供了一種分布式文件系統(tǒng),其包括本發(fā)明提供的元數(shù)據(jù)管理裝置1。
第二實(shí)施例:
圖2為本發(fā)明第二實(shí)施例提供的元數(shù)據(jù)管理方法的流程圖,由圖2可知,在本實(shí)施例中,本發(fā)明提供的元數(shù)據(jù)管理方法包括以下步驟:
S201:在元數(shù)據(jù)備份時(shí),采用差分算法計(jì)算當(dāng)前元數(shù)據(jù)與已備份元數(shù)據(jù)的差分?jǐn)?shù)據(jù);
S202:在元數(shù)據(jù)恢復(fù)時(shí),利用差分?jǐn)?shù)據(jù)及已備份元數(shù)據(jù)恢復(fù)當(dāng)前元數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的已備份元數(shù)據(jù)包括最近一次全量備份的元數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的差分?jǐn)?shù)據(jù)包括已備份元數(shù)據(jù)的標(biāo)識(shí)、差異數(shù)據(jù)偏移量及差異數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的利用差分?jǐn)?shù)據(jù)及已備份元數(shù)據(jù)恢復(fù)當(dāng)前元數(shù)據(jù)包括:確定差分?jǐn)?shù)據(jù)對(duì)應(yīng)的已備份元數(shù)據(jù),根據(jù)差異數(shù)據(jù)偏移量確定已備份元數(shù)據(jù)內(nèi)的待替換數(shù)據(jù),將待替換數(shù)據(jù)替換為差異數(shù)據(jù),生成當(dāng)前元數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的差分?jǐn)?shù)據(jù)還包括已備份元數(shù)據(jù)內(nèi)的原始差異數(shù)據(jù)。
在一些實(shí)施例中,上述實(shí)施例中的方法還包括:采用多線程并行進(jìn)行元數(shù)據(jù)備份及元數(shù)據(jù)恢復(fù)。
在一些實(shí)施例中,上述實(shí)施例中的方法在元數(shù)據(jù)備份后,還包括:根據(jù)差分?jǐn)?shù)據(jù)的大小確定下一次數(shù)據(jù)備份時(shí)的備份方式,備份方式包括:全量備份和差分備份。
現(xiàn)結(jié)合具體應(yīng)用場(chǎng)景對(duì)本發(fā)明做進(jìn)一步的詮釋說(shuō)明。
第三實(shí)施例:
圖3為本發(fā)明第三實(shí)施例提供的元數(shù)據(jù)管理方法的流程圖,由圖3可知,在本實(shí)施例中,本發(fā)明提供的元數(shù)據(jù)管理方法包括以下步驟:
S301:設(shè)置備份周期及全量備份閾值。
系統(tǒng)初始時(shí),配置備份方式、備份周期為3小時(shí)、全量備份閾值為1G。
S302:第一次備份時(shí)間到,進(jìn)行全量備份。
備份周期到后,確定為第一次備份時(shí)間,進(jìn)行一次元數(shù)據(jù)全量備份,并配置下次備份方式為差分備份。生成的備份文件以當(dāng)前系統(tǒng)版本和時(shí)間戳作為備份ID。
S303:第二次備份時(shí)間到,進(jìn)行差分備份。
下一個(gè)備份周期到時(shí),檢查備份數(shù)據(jù)ID和備份方式,根據(jù)備份ID和備份方式進(jìn)行本次備份。如果是全量備份備份完成后生成備份數(shù)據(jù)ID。如果是差分備份生成備份數(shù)據(jù)ID和備份生成的delta文件。備份時(shí)采用多線程,同時(shí)對(duì)不同的元數(shù)據(jù)文件進(jìn)行差分,生成對(duì)應(yīng)的差分?jǐn)?shù)據(jù)文件。
S304:比較差分?jǐn)?shù)據(jù)與全量備份閾值,確定下一次備份方式。
在步驟S303備份完成后判斷本次備份的備份文件大小是否在設(shè)定的門(mén)限內(nèi),如果小于設(shè)置門(mén)限1G設(shè)定下次備份方式為差分備份,如果大于門(mén)限設(shè)定下次備份方式為全量備份。
S305:利用差分?jǐn)?shù)據(jù)進(jìn)行元數(shù)據(jù)恢復(fù)。
備份文件的恢復(fù)還原,如果需要還原原始數(shù)據(jù),根據(jù)備份數(shù)據(jù)ID,備份方式和原始數(shù)據(jù)進(jìn)行還原。同樣的,差分還原的時(shí)候,采用多線程的方式根據(jù)對(duì)應(yīng)的差分?jǐn)?shù)據(jù),當(dāng)前元數(shù)據(jù)由差分還原算法生成對(duì)應(yīng)的原始數(shù)據(jù)來(lái)實(shí)現(xiàn)元數(shù)據(jù)還原。
本實(shí)施例通過(guò)特定的差分算法來(lái)針對(duì)分布式文件系統(tǒng)的海量元數(shù)據(jù)文件進(jìn)行差分,生成對(duì)應(yīng)的差分文件來(lái)進(jìn)行快速備份和快速還原,采用元數(shù)據(jù)文件差分算法和逆向還原算法,有效的對(duì)原始文件和目標(biāo)文件進(jìn)行差分生成差分文件,如果需要還原數(shù)據(jù)可以根據(jù)差分文件和目標(biāo)文件還原成原始文件。
在實(shí)際生產(chǎn)過(guò)程中,分布式文件系統(tǒng)的海量文件其中大部分是不做修改的,也就是說(shuō)大部分文件產(chǎn)生的元數(shù)據(jù)是不變的,由此差分備份和還原是對(duì)不變的 海量元數(shù)據(jù)最佳的備份和還原方式。
如圖4所示,兩份不同時(shí)期元數(shù)據(jù)二級(jí)制比較,若按照現(xiàn)有元數(shù)據(jù)備份方法,需要對(duì)所有元數(shù)據(jù)進(jìn)行全量備份,若依據(jù)本發(fā)明,只有從140-1423個(gè)字節(jié)是不同的,通過(guò)字節(jié)流的差分算法比較差異文件生成差分文件,差分文件只會(huì)記錄不同數(shù)據(jù)的偏移量以及3個(gè)字節(jié)的數(shù)據(jù)(用于數(shù)據(jù)備份)和原始的3個(gè)字節(jié)數(shù)據(jù)(用于數(shù)據(jù)還原),以上的處理過(guò)程即是差分文件生成算法;通常的,元數(shù)據(jù)改變只會(huì)是幾十個(gè)甚至幾個(gè)字節(jié)的不同,以此算法處理可以節(jié)約大量存儲(chǔ)空間,并且加快元數(shù)據(jù)備份速度。
元數(shù)據(jù)恢復(fù)是差分備份的逆向過(guò)程,通過(guò)差分文件我們可以很容易的根據(jù)當(dāng)前文件與差分文件中的偏移量和差異字節(jié)生成原始文件,如上則實(shí)現(xiàn)了逆向還原算法。
綜上可知,通過(guò)本發(fā)明的實(shí)施,至少存在以下有益效果:
本發(fā)明提供了一種新的元數(shù)據(jù)管理方法,通過(guò)快速差分算法和差分還原算法快速進(jìn)行元數(shù)據(jù)備份和恢復(fù),實(shí)現(xiàn)了元數(shù)據(jù)的快速備份及恢復(fù),規(guī)范了系統(tǒng)升級(jí)的協(xié)作流程,可以使分布式文件系統(tǒng)海量元數(shù)據(jù)備份時(shí)長(zhǎng)由原來(lái)的幾小時(shí)縮短為幾分鐘,原來(lái)的備份磁盤(pán)空間使用由GB降低到MB的量級(jí),隨著元數(shù)據(jù)的增多其性能將更加明顯。
以上僅是本發(fā)明的具體實(shí)施方式而已,并非對(duì)本發(fā)明做任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施方式所做的任意簡(jiǎn)單修改、等同變化、結(jié)合或修飾,均仍屬于本發(fā)明技術(shù)方案的保護(hù)范圍。