數(shù)據(jù)塊備份系統(tǒng)及方法
【專利摘要】一種數(shù)據(jù)塊備份方法,該方法包括:將存儲了文件數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值的哈希列表上傳至哈希數(shù)據(jù)庫中,及按照數(shù)據(jù)塊的分割順序將所述數(shù)據(jù)塊上傳至所述服務器的數(shù)據(jù)登陸區(qū);按照數(shù)據(jù)塊進入數(shù)據(jù)登陸區(qū)的順序對每個數(shù)據(jù)塊是否重復上傳進行判斷,當判斷結果為數(shù)據(jù)塊已在服務器存儲區(qū)中時,確定該數(shù)據(jù)塊為重復數(shù)據(jù)塊,刪除數(shù)據(jù)登陸區(qū)中的該數(shù)據(jù)塊;當該重復數(shù)據(jù)塊沒有備份時,將該重復數(shù)據(jù)塊存入該服務器的備份區(qū)中;將數(shù)據(jù)塊的存儲指針及備份塊指針追加到所述哈希數(shù)據(jù)庫中。本發(fā)明還提供一種數(shù)據(jù)塊備份系統(tǒng)。利用本發(fā)明可避免被多次引用的數(shù)據(jù)塊被損壞、篡改或丟失而造成文件無法使用。
【專利說明】數(shù)據(jù)塊備份系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及一種云端技術,尤其涉及一種云端技術中將數(shù)據(jù)塊備份的系統(tǒng)及方法。
【背景技術】
[0002]在分布式云存儲中,一個數(shù)據(jù)塊可能被多個文件所引用,如果數(shù)據(jù)塊損壞,會造成引用該數(shù)據(jù)塊的所有文件都不完整,使文件無法使用。
【發(fā)明內(nèi)容】
[0003]鑒于以上內(nèi)容,有必要提供一種數(shù)據(jù)塊備份系統(tǒng),能夠避免被多次引用的數(shù)據(jù)塊被損壞、篡改或丟失而造成文件無法使用。
[0004]還有必要提供一種數(shù)據(jù)塊備份方法,能夠避免被多次引用的數(shù)據(jù)塊被損壞、篡改或丟失而造成文件無法使用。
[0005]所述數(shù)據(jù)塊備份系統(tǒng),運行于存儲集群中的一臺服務器中,該存儲集群通過網(wǎng)絡連接一個或多個客戶端。該系統(tǒng)包括:存儲模塊,用于將存儲了文件數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值的哈希列表上傳至哈希數(shù)據(jù)庫中,及按照數(shù)據(jù)塊的分割順序將所述數(shù)據(jù)塊上傳至所述服務器的數(shù)據(jù)登陸區(qū);去重模塊,用于按照數(shù)據(jù)塊進入數(shù)據(jù)登陸區(qū)的順序對每個數(shù)據(jù)塊是否重復上傳進行判斷,當判斷結果為數(shù)據(jù)塊已在服務器存儲區(qū)中時,確定該數(shù)據(jù)塊為重復數(shù)據(jù)塊,刪除數(shù)據(jù)登陸區(qū)中的該數(shù)據(jù)塊;備份模塊,用于當該重復數(shù)據(jù)塊沒有備份時,將該重復數(shù)據(jù)塊存入該服務器的備份區(qū)中,及當該重復數(shù)據(jù)塊已備份時,結束流程;信息添加模塊,用于將數(shù)據(jù)塊的存儲指針及備份塊指針追加到所述哈希數(shù)據(jù)庫中。
[0006]所述數(shù)據(jù)塊備份方法,應用于存儲集群中的一臺服務器中,該存儲集群通過網(wǎng)絡連接一個或多個客戶端。該方法包括:存儲步驟,將存儲了文件數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值的哈希列表上傳至哈希數(shù)據(jù)庫中,及按照數(shù)據(jù)塊的分割順序將所述數(shù)據(jù)塊上傳至所述服務器的數(shù)據(jù)登陸區(qū);去重步驟,按照數(shù)據(jù)塊進入數(shù)據(jù)登陸區(qū)的順序對每個數(shù)據(jù)塊是否重復上傳進行判斷,當判斷結果為數(shù)據(jù)塊已在服務器存儲區(qū)中時,確定該數(shù)據(jù)塊為重復數(shù)據(jù)塊,刪除數(shù)據(jù)登陸區(qū)中的該數(shù)據(jù)塊;備份步驟,當該重復數(shù)據(jù)塊沒有備份時,將該重復數(shù)據(jù)塊存入該服務器的備份區(qū)中,及當該重復數(shù)據(jù)塊已備份時,結束流程;信息添加步驟,將數(shù)據(jù)塊的存儲指針及備份塊指針追加到所述哈希數(shù)據(jù)庫中。
[0007]相較于現(xiàn)有技術,所述數(shù)據(jù)塊備份系統(tǒng)及方法,在服務器存儲區(qū)中的一個數(shù)據(jù)塊被多次引用(如多個文件引用,或一個文件引用多次)時,會對該數(shù)據(jù)塊做額外的備份,避免數(shù)據(jù)塊損壞、篡改或丟失后,造成文件不完整。如果數(shù)據(jù)塊損壞,那么文件可以獲取備份的數(shù)據(jù)塊,使文件保持完整,無錯誤。
【專利附圖】
【附圖說明】
[0008]圖1是本發(fā)明數(shù)據(jù)塊備份系統(tǒng)較佳實施例的運行環(huán)境示意圖。[0009]圖2是圖1中服務器的主要組成示意圖。
[0010]圖3是本發(fā)明數(shù)據(jù)塊備份方法較佳實施例的作業(yè)流程圖。
[0011]圖4是本發(fā)明用戶于客戶端下載服務器中文件的作業(yè)流程圖。
[0012]主要元件符號說明
【權利要求】
1.一種數(shù)據(jù)塊備份方法,應用于存儲集群中的一臺服務器中,該存儲集群通過網(wǎng)絡連接一個或多個客戶端,其特征在于,該方法包括: 存儲步驟,將存儲了文件數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值的哈希列表上傳至哈希數(shù)據(jù)庫中,及按照數(shù)據(jù)塊的分割順序將所述數(shù)據(jù)塊上傳至所述服務器的數(shù)據(jù)登陸區(qū); 去重步驟,按照數(shù)據(jù)塊進入數(shù)據(jù)登陸區(qū)的順序對每個數(shù)據(jù)塊是否重復上傳進行判斷,當判斷結果為數(shù)據(jù)塊已在服務器存儲區(qū)中時,確定該數(shù)據(jù)塊為重復數(shù)據(jù)塊,刪除數(shù)據(jù)登陸區(qū)中的該數(shù)據(jù)塊; 備份步驟,當該重復數(shù)據(jù)塊沒有備份時,將該重復數(shù)據(jù)塊存入該服務器的備份區(qū)中,及當該重復數(shù)據(jù)塊已備份時,結束流程; 信息添加步驟,將數(shù)據(jù)塊的存儲指針及備份塊指針追加到所述哈希數(shù)據(jù)庫中。
2.如權利要求1所述的數(shù)據(jù)塊備份方法,其特征在于,該方法在存儲步驟之前還包括: 分塊步驟,將需要上傳的文件分割成多個數(shù)據(jù)塊,并將該多個數(shù)據(jù)塊的名稱及其哈希值存入哈希列表,每個文件對應一張哈希列表。
3.如權利要求1所述的數(shù)據(jù)塊備份方法,其特征在于,所述備份步驟包括: 從哈希數(shù)據(jù)庫中查詢該重復數(shù)據(jù)塊所對應的哈希列表內(nèi)的備份字段是否有值; 當哈希列表中該重復數(shù)據(jù)塊的備份字段有值時,判定該數(shù)據(jù)塊已備份;及 當哈希列表中該重復數(shù)據(jù)塊的備份字段沒有值時,判定該數(shù)據(jù)塊沒有備份。
4.如權利要求1所述的數(shù)據(jù)塊備份方法,其特征在于,所述去重步驟還包括: 當判斷結果為服務器存儲區(qū)中沒有存儲該數(shù)據(jù)塊時,將該數(shù)據(jù)塊從數(shù)據(jù)登陸區(qū)移入存儲區(qū)中。`
5.如權利要求1所述的數(shù)據(jù)塊備份方法,其特征在于,當用戶需要通過客戶端從服務器下載文件時,所述客戶端執(zhí)行以下步驟: 根據(jù)文件的存儲指針從哈希數(shù)據(jù)庫中獲取文件各數(shù)據(jù)塊的哈希值; 根據(jù)各數(shù)據(jù)塊的存儲指針從相應的存儲區(qū)下載各數(shù)據(jù)塊; 校驗各數(shù)據(jù)塊的哈希值與從哈希數(shù)據(jù)庫中獲取的相應數(shù)據(jù)塊的哈希值是否相同; 當校驗結果為不相同時,從備份區(qū)提取該數(shù)據(jù)塊,然后返回上述校驗步驟; 當校驗結果為相同時,按照所述數(shù)據(jù)塊的分割順序將通過校驗的數(shù)據(jù)塊進行排序組合,生成文件 '及 校驗組合后文件的哈希值與上傳到服務器之前文件的哈希值是否相同; 當校驗結果為相同時,將通過校驗的文件返回給客戶端的用戶,當校驗結果為不相同時,返回上述根據(jù)文件的存儲指針從對應的服務器中獲取文件各數(shù)據(jù)塊的哈希值的步驟。
6.一種數(shù)據(jù)塊備份系統(tǒng),運行于存儲集群中的一臺服務器中,該存儲集群通過網(wǎng)絡連接一個或多個客戶端,其特征在于,該系統(tǒng)包括: 存儲模塊,用于將存儲了文件數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值的哈希列表上傳至哈希數(shù)據(jù)庫中,及按照數(shù)據(jù)塊的分割順序將所述數(shù)據(jù)塊上傳至所述服務器的數(shù)據(jù)登陸區(qū); 去重模塊,用于按照數(shù)據(jù)塊進入數(shù)據(jù)登陸區(qū)的順序對每個數(shù)據(jù)塊是否重復上傳進行判斷,當判斷結果為數(shù)據(jù)塊已在服務器存儲區(qū)中時,確定該數(shù)據(jù)塊為重復數(shù)據(jù)塊,刪除數(shù)據(jù)登陸區(qū)中的該數(shù)據(jù)塊; 備份模塊,用于當該重復數(shù)據(jù)塊沒有備份時,將該重復數(shù)據(jù)塊存入該服務器的備份區(qū)中,及當該重復數(shù)據(jù)塊已備份時,結束流程; 信息添加模塊,用于將數(shù)據(jù)塊的存儲指針及備份塊指針追加到所述哈希數(shù)據(jù)庫中。
7.如權利要求6所述的數(shù)據(jù)塊備份系統(tǒng),其特征在于,該系統(tǒng)還包括: 分塊模塊,用于將需要上傳的文件分割成多個數(shù)據(jù)塊,并將該多個數(shù)據(jù)塊的名稱及其哈希值存入哈希列表,每個文件對應一張哈希列表。
8.如權利要求6所述的數(shù)據(jù)塊備份系統(tǒng),其特征在于,所述備份模塊從哈希數(shù)據(jù)庫中查詢該重復數(shù)據(jù)塊所對應的哈希列表內(nèi)的備份字段是否有值,當哈希列表中該重復數(shù)據(jù)塊的備份字段有值時,判定該數(shù)據(jù)塊已備份,及當哈希列表中該重復數(shù)據(jù)塊的備份字段沒有值時,判定該數(shù)據(jù)塊沒有備份。
9.如權利要求6所述的數(shù)據(jù)塊備份系統(tǒng),其特征在于,所述去重模塊還用于: 當判斷結果為服務器存儲區(qū)中沒有存儲該數(shù)據(jù)塊時,將該數(shù)據(jù)塊從數(shù)據(jù)登陸區(qū)移入存儲區(qū)中。
10.如權利要求6所述的數(shù)據(jù)塊備份系統(tǒng),其特征在于,當用戶需要通過客戶端從服務器下載文件時,所述客戶端用于: 根據(jù)文件的存儲指針從哈希數(shù)據(jù)庫中獲取文件各數(shù)據(jù)塊的哈希值; 根據(jù)各數(shù)據(jù)塊的存儲指針從相應的存儲區(qū)下載各數(shù)據(jù)塊; 校驗各數(shù)據(jù)塊的哈希值與從哈希數(shù)據(jù)庫中獲取的相應數(shù)據(jù)塊的哈希值是否相同; 當校驗結果為不相同時`,從備份區(qū)提取該數(shù)據(jù)塊,然后返回上述校驗步驟; 當校驗結果為相同時,按照所述數(shù)據(jù)塊的分割順序將通過校驗的數(shù)據(jù)塊進行排序組合,生成文件 '及 校驗組合后文件的哈希值與上傳到服務器之前文件的哈希值是否相同; 當校驗結果為相同時,將通過校驗的文件返回給客戶端的用戶,當校驗結果為不相同時,返回上述根據(jù)文件的存儲指針從對應的服務器中獲取文件各數(shù)據(jù)塊的哈希值的步驟。
【文檔編號】H04L29/08GK103873503SQ201210533970
【公開日】2014年6月18日 申請日期:2012年12月12日 優(yōu)先權日:2012年12月12日
【發(fā)明者】柴智權, 李大鵬, 葉建發(fā), 林海洪, 李忠一 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司