本發(fā)明涉及數(shù)據(jù)存儲,具體提供一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法及裝置。
背景技術(shù):
1、在云計算領(lǐng)域,cephfs文件系統(tǒng)能夠提供統(tǒng)一、靈活且高度可擴展的存儲服務(wù)。cephfs文件系統(tǒng)因其出色的擴展性、高可用性和高性能在企業(yè)級存儲解決方案中占據(jù)重要地位。
2、然而,隨著信息量的激增與用戶對高效訪問速度的追求,如何構(gòu)建一個能夠在有限資源約束的情況下能夠高效進行海量小文件備份來保障數(shù)據(jù)安全的系統(tǒng)成為必然之選。
技術(shù)實現(xiàn)思路
1、本發(fā)明是針對上述現(xiàn)有技術(shù)的不足,提供一種實用性強的實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法。
2、本發(fā)明進一步的技術(shù)任務(wù)是提供一種設(shè)計合理,安全適用的實現(xiàn)cephfs海量小文件備份與恢復(fù)的裝置。
3、本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
4、一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,分為備份流程和恢復(fù)流程,所述備份流程為:
5、s1.1、備份任務(wù)的接受與啟動;
6、s1.2、數(shù)據(jù)與元數(shù)據(jù)的備份處理;
7、s1.3、備份任務(wù)監(jiān)控與容錯機制;
8、所述恢復(fù)流程為:
9、s2.1、恢復(fù)任務(wù)接受與啟動;
10、s2.2、備份數(shù)據(jù)恢復(fù);
11、s2.3、恢復(fù)任務(wù)監(jiān)控。
12、進一步的,在步驟s1.1中,備份過程始于任務(wù)平臺接收到備份請求,此時任務(wù)平臺會立即調(diào)用cephfs文件系統(tǒng)創(chuàng)建快照,以捕獲備份請求時刻cephfs文件系統(tǒng)中所有的文件數(shù)據(jù),隨后平臺會根據(jù)執(zhí)行節(jié)點資源使用情況,選取剩余資源最多的節(jié)點下發(fā)備份啟動指令,進入備份的實質(zhì)性運作階段。
13、進一步的,在步驟s1.2中,包括數(shù)據(jù)備份和元數(shù)據(jù)備份;
14、所述數(shù)據(jù)備份中,系統(tǒng)會根據(jù)下發(fā)的指令判斷是否需要進行增量備份,若要進行增量備份,通過讀取cephfs文件系統(tǒng)快照中每個文件的create_time與上一次的快照創(chuàng)建時間進行比對來判斷是否為需要備份的數(shù)據(jù);若非增量備份則直接記錄為需要備份的數(shù)據(jù);
15、對于需要備份的數(shù)據(jù),根據(jù)每個文件的唯一標識符inode對備份組數(shù)進行取余操作,根據(jù)余數(shù)劃分到不同的備份組中;數(shù)據(jù)分組之后,針對每一組數(shù)據(jù)通過linux管道技術(shù)與tar工具的結(jié)合,對數(shù)據(jù)進行打包與壓縮,并根據(jù)預(yù)設(shè)的分片規(guī)則以一定粒度進行分片處理,將各分片數(shù)據(jù)以一個對象的形式上傳到對象存儲系統(tǒng)中。
16、進一步的,所述元數(shù)據(jù)備份中,系統(tǒng)通過讀取cephfs文件系統(tǒng)快照中每個文件,將文件路徑與快照的根路徑進行比對計算出文件相對路徑的哈希值,通過位運算的方式將文件名劃分到不同的元數(shù)據(jù)組,實現(xiàn)元數(shù)據(jù)的高效組織;
17、針對不同元數(shù)據(jù)組也要進行分片處理,當(dāng)劃分到元數(shù)據(jù)組的文件名數(shù)積累到一定數(shù)量級后,直接將該元數(shù)據(jù)文件上傳到對象存儲系統(tǒng)中,并在本地新建一個新的元數(shù)據(jù)文件以便記錄該分組接下來的文件名信息。
18、進一步的,在步驟s1.3中,當(dāng)備份開始運作后,任務(wù)平臺持續(xù)追蹤上傳的數(shù)據(jù)及元數(shù)據(jù)量,實時計算備份進度,當(dāng)發(fā)現(xiàn)備份進度出現(xiàn)長時間的停滯或任務(wù)狀態(tài)變?yōu)槭『?,?yīng)自動觸發(fā)斷點續(xù)傳機制;
19、根據(jù)上傳的數(shù)據(jù)量計算出中斷處,重新對該次備份按分組處理進行上傳以保證備份的成功進行;
20、當(dāng)備份結(jié)束后,系統(tǒng)將創(chuàng)建的臨時快照從cephfs文件系統(tǒng)上刪除,釋放不必要的存儲空間。
21、進一步的,在步驟s2.1中,恢復(fù)過程始于任務(wù)平臺接收到恢復(fù)請求,此時任務(wù)平臺會立即調(diào)用cephfs文件系統(tǒng)創(chuàng)建快照以保護現(xiàn)有數(shù)據(jù),隨后將cephfs文件系統(tǒng)修改容量配額為無上限,一切準備就緒后,下發(fā)恢復(fù)指令到執(zhí)行節(jié)點,進入恢復(fù)的實質(zhì)性運作階段。
22、進一步的,在步驟s2.2中,首先,從對象存儲中查詢到全量數(shù)據(jù)列表,計算恢復(fù)的整體數(shù)據(jù)量,為進度監(jiān)控提供基礎(chǔ)數(shù)據(jù);
23、備份恢復(fù)遵循從最早的全量備份開始的原則,依次從對象存儲中下載數(shù)據(jù)文件寫入到cephfs文件系統(tǒng)中,在每個備份的恢復(fù)過程中優(yōu)先下載目錄數(shù)據(jù)文件,當(dāng)目錄數(shù)據(jù)恢復(fù)完成后,根據(jù)備份時刻的分組數(shù)將數(shù)據(jù)從對象存儲系統(tǒng)下載到本地的linux數(shù)據(jù)管道中進行臨時存儲,當(dāng)數(shù)據(jù)下載到一定量后,使用tar命令對管道中的數(shù)據(jù)進行解壓輸出到所述cephfs文件系統(tǒng)中進行存儲。
24、進一步的,當(dāng)最后一次的數(shù)據(jù)寫入到cephfs文件系統(tǒng)完成后,從對象存儲系統(tǒng)中將最后一次備份的元數(shù)據(jù)文件下載到本地臨時目錄中,通過讀取cephfs文件系統(tǒng)中每個文件,將文件路徑與快照的根路徑進行比對計算出相對路徑的哈希值,通過位運算實現(xiàn)對文件名的分組操作,當(dāng)某一組的文件名數(shù)達到一定量級則依次打開對應(yīng)分組的元數(shù)據(jù)文件,通過比對的方式判斷出不屬于該次備份應(yīng)當(dāng)清理的,記錄文件名到臨時文件中,當(dāng)全量數(shù)據(jù)均遍歷完成后依次將臨時文件中記錄的文件及目錄從cephfs文件系統(tǒng)中刪除。
25、進一步的,在步驟s2.3中,當(dāng)恢復(fù)開始運作后,任務(wù)平臺實時查詢cephfs文件系統(tǒng)中的數(shù)據(jù)大小以計算恢復(fù)進度,若恢復(fù)失敗,使用臨時快照將文件系統(tǒng)覆蓋為發(fā)起恢復(fù)時刻的數(shù)據(jù);
26、當(dāng)恢復(fù)成功后將創(chuàng)建的臨時快照從cephfs文件系統(tǒng)上刪除并還原文件系統(tǒng)的容量限制,釋放存儲空間并恢復(fù)系統(tǒng)到正常運行狀態(tài)。
27、一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的裝置,包括:至少一個存儲器和至少一個處理器;
28、所述至少一個存儲器,用于存儲機器可讀程序;
29、所述至少一個處理器,用于調(diào)用所述機器可讀程序,執(zhí)行一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法。
30、本發(fā)明的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法及裝置和現(xiàn)有技術(shù)相比,具有以下突出的有益效果:
31、(1)提升數(shù)據(jù)安全性與持久性:本發(fā)明通過全量備份與增量備份策略,確保了數(shù)據(jù)的完整性和一致性。結(jié)合對象存儲的高可用特性,有效防止了數(shù)據(jù)因本地故障或災(zāi)難事件而丟失,極大地提高了數(shù)據(jù)的安全存儲等級和長期保存的可靠性;
32、(2)增強系統(tǒng)穩(wěn)定性和容錯能力:引入斷點續(xù)傳機制,確保了在備份過程中即使遇到中斷也能從斷點繼續(xù),有效維護了任務(wù)的連續(xù)性和系統(tǒng)穩(wěn)定性。實時監(jiān)控備份與恢復(fù)進度進一步加強了系統(tǒng)的健壯性,減少了人為干預(yù)需求,降低了運維成本;
33、(3)靈活適應(yīng)多樣化的數(shù)據(jù)需求:元數(shù)據(jù)采用哈希分組及分片上傳的策略,特別適合處理包含大量小文件的復(fù)雜數(shù)據(jù)集,保證了在大數(shù)據(jù)量和高并發(fā)訪問條件下的高性能表現(xiàn)。
1.一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,分為備份流程和恢復(fù)流程,所述備份流程為:
2.根據(jù)權(quán)利要求1所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,在步驟s1.1中,備份過程始于任務(wù)平臺接收到備份請求,此時任務(wù)平臺會立即調(diào)用cephfs文件系統(tǒng)創(chuàng)建快照,以捕獲備份請求時刻cephfs文件系統(tǒng)中所有的文件數(shù)據(jù),隨后平臺會根據(jù)執(zhí)行節(jié)點資源使用情況,選取剩余資源最多的節(jié)點下發(fā)備份啟動指令,進入備份的實質(zhì)性運作階段。
3.根據(jù)權(quán)利要求2所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,在步驟s1.2中,包括數(shù)據(jù)備份和元數(shù)據(jù)備份;
4.根據(jù)權(quán)利要求3所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,所述元數(shù)據(jù)備份中,系統(tǒng)通過讀取cephfs文件系統(tǒng)快照中每個文件,將文件路徑與快照的根路徑進行比對計算出文件相對路徑的哈希值,通過位運算的方式將文件名劃分到不同的元數(shù)據(jù)組,實現(xiàn)元數(shù)據(jù)的高效組織;
5.根據(jù)權(quán)利要求4所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,在步驟s1.3中,當(dāng)備份開始運作后,任務(wù)平臺持續(xù)追蹤上傳的數(shù)據(jù)及元數(shù)據(jù)量,實時計算備份進度,當(dāng)發(fā)現(xiàn)備份進度出現(xiàn)長時間的停滯或任務(wù)狀態(tài)變?yōu)槭『?,?yīng)自動觸發(fā)斷點續(xù)傳機制;
6.根據(jù)權(quán)利要求5所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,在步驟s2.1中,恢復(fù)過程始于任務(wù)平臺接收到恢復(fù)請求,此時任務(wù)平臺會立即調(diào)用cephfs文件系統(tǒng)創(chuàng)建快照以保護現(xiàn)有數(shù)據(jù),隨后將cephfs文件系統(tǒng)修改容量配額為無上限,一切準備就緒后,下發(fā)恢復(fù)指令到執(zhí)行節(jié)點,進入恢復(fù)的實質(zhì)性運作階段。
7.根據(jù)權(quán)利要求6所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,在步驟s2.2中,首先,從對象存儲中查詢到全量數(shù)據(jù)列表,計算恢復(fù)的整體數(shù)據(jù)量,為進度監(jiān)控提供基礎(chǔ)數(shù)據(jù);
8.根據(jù)權(quán)利要求7所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,當(dāng)最后一次的數(shù)據(jù)寫入到cephfs文件系統(tǒng)完成后,從對象存儲系統(tǒng)中將最后一次備份的元數(shù)據(jù)文件下載到本地臨時目錄中,通過讀取cephfs文件系統(tǒng)中每個文件,將文件路徑與快照的根路徑進行比對計算出相對路徑的哈希值,通過位運算實現(xiàn)對文件名的分組操作,當(dāng)某一組的文件名數(shù)達到一定量級則依次打開對應(yīng)分組的元數(shù)據(jù)文件,通過比對的方式判斷出不屬于該次備份應(yīng)當(dāng)清理的,記錄文件名到臨時文件中,當(dāng)全量數(shù)據(jù)均遍歷完成后依次將臨時文件中記錄的文件及目錄從cephfs文件系統(tǒng)中刪除。
9.根據(jù)權(quán)利要求8所述的一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的方法,其特征在于,在步驟s2.3中,當(dāng)恢復(fù)開始運作后,任務(wù)平臺實時查詢cephfs文件系統(tǒng)中的數(shù)據(jù)大小以計算恢復(fù)進度,若恢復(fù)失敗,使用臨時快照將文件系統(tǒng)覆蓋為發(fā)起恢復(fù)時刻的數(shù)據(jù);
10.一種實現(xiàn)cephfs海量小文件備份與恢復(fù)的裝置,其特征在于,包括:至少一個存儲器和至少一個處理器;