數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng)及方法
【專利摘要】一種數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,包括:將客戶端上傳的文件信息和文件的哈希列表存至哈希數(shù)據(jù)庫中,該哈希列表中記錄了文件的多個(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序;計(jì)算所有存儲(chǔ)服務(wù)器的傳輸進(jìn)程占用率及各存儲(chǔ)服務(wù)器中每個(gè)存儲(chǔ)區(qū)的存儲(chǔ)空間;確定傳輸進(jìn)程占用率低于預(yù)設(shè)值的存儲(chǔ)服務(wù)器為空閑存儲(chǔ)服務(wù)器,及確定有剩余存儲(chǔ)空間的存儲(chǔ)區(qū);當(dāng)哈希數(shù)據(jù)庫中有哈希值與存儲(chǔ)服務(wù)器中已存儲(chǔ)數(shù)據(jù)塊的哈希值相同時(shí),確定該哈希值對(duì)應(yīng)的數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊,通知相應(yīng)客戶端無需再上傳該數(shù)據(jù)塊;為各數(shù)據(jù)塊分配存儲(chǔ)區(qū)。本發(fā)明還提供一種執(zhí)行所述方法的系統(tǒng)。利用本發(fā)明可有效地節(jié)省服務(wù)器的存儲(chǔ)空間。
【專利說明】數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種云端技術(shù),尤其涉及一種通過云端技術(shù)將數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng)及方法。
【背景技術(shù)】
[0002]在云端技術(shù)中,當(dāng)有文件上傳及存儲(chǔ)時(shí),會(huì)經(jīng)常遇到服務(wù)器的存儲(chǔ)空間不足、存儲(chǔ)進(jìn)程長(zhǎng)期被占用,及文件重復(fù)傳輸?shù)热毕?,從而?dǎo)致服務(wù)器無法及時(shí)響應(yīng)用戶的存儲(chǔ)請(qǐng)求及無法使用戶及時(shí)上傳文件。
【發(fā)明內(nèi)容】
[0003]鑒于以上內(nèi)容,有必要提供一種數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),其可有效地節(jié)省服務(wù)器的存儲(chǔ)空間,使得服務(wù)器的傳輸進(jìn)程不會(huì)被一個(gè)用戶長(zhǎng)期占用,且加快了用戶上傳文件的速度。
[0004]所述數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),運(yùn)行于一臺(tái)分配服務(wù)器中,該分配服務(wù)器通過網(wǎng)絡(luò)連接多個(gè)客戶端和多臺(tái)存儲(chǔ)服務(wù)器。該系統(tǒng)包括:接收模塊,用于接收客戶端上傳的文件信息和文件的哈希列表,存儲(chǔ)到哈希數(shù)據(jù)庫中,該哈希列表中記錄了文件的多個(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序;計(jì)算模塊,用于計(jì)算所述多臺(tái)存儲(chǔ)服務(wù)器的傳輸進(jìn)程占用率,及各存儲(chǔ)服務(wù)器中每個(gè)存儲(chǔ)區(qū)的存儲(chǔ)空間;確定模塊,用于根據(jù)上述計(jì)算得到的數(shù)值,確定傳輸進(jìn)程占用率低于預(yù)設(shè)值的存儲(chǔ)服務(wù)器為空閑存儲(chǔ)服務(wù)器,及確定該存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū);去重模塊,用于當(dāng)哈希數(shù)據(jù)庫中有哈希值與所述存儲(chǔ)服務(wù)器中已存儲(chǔ)的數(shù)據(jù)塊的哈希值相同時(shí),確定該哈希數(shù)據(jù)庫中該哈希值對(duì)應(yīng)的數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊,通知相應(yīng)客戶端所述存儲(chǔ)服務(wù)器中已存儲(chǔ)該數(shù)據(jù)塊而無需再上傳該數(shù)據(jù)塊,并返回該重復(fù)數(shù)據(jù)塊的存儲(chǔ)指針給相應(yīng)客戶端;及分配模塊,用于將空閑存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū)分配給去重后的各數(shù)據(jù)塊。
[0005]還有必要提供一種數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,其可有效地節(jié)省服務(wù)器的存儲(chǔ)空間,使得服務(wù)器的傳輸進(jìn)程不會(huì)被一個(gè)用戶長(zhǎng)期占用,且加快了用戶上傳文件的速度。
[0006]所述數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,應(yīng)用于一臺(tái)分配服務(wù)器中,該分配服務(wù)器通過網(wǎng)絡(luò)連接多個(gè)客戶端和多臺(tái)存儲(chǔ)服務(wù)器。該方法包括:接收步驟,接收客戶端上傳的文件信息和文件的哈希列表,存儲(chǔ)到哈希數(shù)據(jù)庫中,該哈希列表中記錄了文件的多個(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序;計(jì)算步驟,計(jì)算所述多臺(tái)存儲(chǔ)服務(wù)器的傳輸進(jìn)程占用率,及各存儲(chǔ)服務(wù)器中每個(gè)存儲(chǔ)區(qū)的存儲(chǔ)空間;確定步驟,根據(jù)上述計(jì)算得到的數(shù)值,確定傳輸進(jìn)程占用率低于預(yù)設(shè)值的存儲(chǔ)服務(wù)器為空閑存儲(chǔ)服務(wù)器,及確定該空閑存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū);去重步驟,當(dāng)哈希數(shù)據(jù)庫中有哈希值與所述存儲(chǔ)服務(wù)器中已存儲(chǔ)的數(shù)據(jù)塊的哈希值相同時(shí),確定哈希數(shù)據(jù)庫中該哈希值對(duì)應(yīng)的數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊,通知相應(yīng)客戶端無需再上傳該數(shù)據(jù)塊,并返回該重復(fù)數(shù)據(jù)塊的存儲(chǔ)指針給相應(yīng)客戶端;及分配步驟,將空閑存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū)分配給去重后的各數(shù)據(jù)塊。
[0007]相較于現(xiàn)有技術(shù),所述數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng)及方法,通過在服務(wù)器集群中加入一個(gè)分配服務(wù)器,使得各數(shù)據(jù)塊可以被合理地分配到一個(gè)存儲(chǔ)區(qū),有效地節(jié)省了服務(wù)器的存儲(chǔ)空間,使得服務(wù)器的傳輸進(jìn)程不會(huì)被一個(gè)用戶長(zhǎng)期占用,并加快了用戶上傳文件的速度。
【專利附圖】
【附圖說明】
[0008]圖1是本發(fā)明數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng)較佳實(shí)施例的運(yùn)行環(huán)境示意圖。
[0009]圖2是圖1中分配服務(wù)器的主要組成示意圖。
[0010]圖3是本發(fā)明數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法較佳實(shí)施例的作業(yè)流程圖。
[0011]圖4是本發(fā)明用戶于客戶端下載存儲(chǔ)服務(wù)器中文件的作業(yè)流程圖。
[0012]主要元件符號(hào)說明
【權(quán)利要求】
1.一種數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,應(yīng)用于一臺(tái)分配服務(wù)器中,該分配服務(wù)器通過網(wǎng)絡(luò)連接多個(gè)客戶端和多臺(tái)存儲(chǔ)服務(wù)器,其特征在于,該方法包括: 接收步驟,接收客戶端上傳的文件信息和文件的哈希列表,存儲(chǔ)到哈希數(shù)據(jù)庫中,該哈希列表中記錄了文件的多個(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序; 計(jì)算步驟,計(jì)算所述多臺(tái)存儲(chǔ)服務(wù)器的傳輸進(jìn)程占用率,及各存儲(chǔ)服務(wù)器中每個(gè)存儲(chǔ)區(qū)的存儲(chǔ)空間; 確定步驟,根據(jù)上述計(jì)算得到的數(shù)值,確定傳輸進(jìn)程占用率低于預(yù)設(shè)值的存儲(chǔ)服務(wù)器為空閑存儲(chǔ)服務(wù)器,及確定該空閑存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū); 去重步驟,當(dāng)哈希數(shù)據(jù)庫中有哈希值與所述存儲(chǔ)服務(wù)器中已存儲(chǔ)的數(shù)據(jù)塊的哈希值相同時(shí),確定哈希數(shù)據(jù)庫中該哈希值對(duì)應(yīng)的數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊,通知相應(yīng)客戶端無需再上傳該數(shù)據(jù)塊,并返回該重復(fù)數(shù)據(jù)塊的存儲(chǔ)指針給相應(yīng)客戶端 '及 分配步驟,將空閑存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū)分配給去重后的各數(shù)據(jù)塊。
2.如權(quán)利要求1所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,其特征在于,該方法還包括: 所述客戶端將需要上傳至存儲(chǔ)服務(wù)器的文件分割成多個(gè)數(shù)據(jù)塊,并按照分割順序?qū)⒃摱鄠€(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序存入一張哈希列表中;及上傳該哈希列表至分配服務(wù)器。
3.如權(quán)利要求1所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,其特征在于,該方法還包括: 存儲(chǔ)服務(wù)器接收客戶`端通過分配服務(wù)器上傳的數(shù)據(jù)塊; 將各數(shù)據(jù)塊寫入相應(yīng)的存儲(chǔ)區(qū); 校驗(yàn)各數(shù)據(jù)塊的哈希值與哈希數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)塊的哈希值是否相同; 當(dāng)校驗(yàn)結(jié)果為相同時(shí),返回通過校驗(yàn)的各數(shù)據(jù)塊的存儲(chǔ)指針給相應(yīng)客戶端; 當(dāng)校驗(yàn)結(jié)果為不相同時(shí),通知客戶端重新上傳文件,以更新該未通過校驗(yàn)的數(shù)據(jù)塊 '及 當(dāng)校驗(yàn)次數(shù)達(dá)到預(yù)設(shè)次數(shù)且校驗(yàn)結(jié)果仍為不相同時(shí),通知客戶端存儲(chǔ)失敗。
4.如權(quán)利要求1所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,其特征在于,所述文件信息包括文件的名稱、文件的屬性。
5.如權(quán)利要求1所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的方法,其特征在于,當(dāng)用戶需要通過客戶端從存儲(chǔ)服務(wù)器下載文件時(shí),所述客戶端執(zhí)行以下步驟: 從哈希數(shù)據(jù)庫中獲取各數(shù)據(jù)塊的哈希值; 根據(jù)各數(shù)據(jù)塊的存儲(chǔ)指針從相應(yīng)的存儲(chǔ)區(qū)下載各數(shù)據(jù)塊; 校驗(yàn)各數(shù)據(jù)塊的哈希值與從哈希數(shù)據(jù)庫中獲取的相應(yīng)數(shù)據(jù)塊的哈希值是否相同; 當(dāng)校驗(yàn)結(jié)果為相同時(shí),將通過校驗(yàn)的數(shù)據(jù)塊寫入臨時(shí)存儲(chǔ)區(qū)中; 按照所述數(shù)據(jù)塊的分割順序?qū)⑸鲜鐾ㄟ^校驗(yàn)的數(shù)據(jù)塊進(jìn)行排序組合,生成文件;及校驗(yàn)組合后文件的哈希值與客戶端上傳的文件的哈希值是否相同,當(dāng)校驗(yàn)結(jié)果為相同時(shí),將通過校驗(yàn)的文件返回給客戶端的用戶。
6.一種數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),運(yùn)行于一臺(tái)分配服務(wù)器中,該分配服務(wù)器通過網(wǎng)絡(luò)連接多個(gè)客戶端和多臺(tái)存儲(chǔ)服務(wù)器,其特征在于,該系統(tǒng)包括: 接收模塊,用于接收客戶端上傳的文件信息和文件的哈希列表,存儲(chǔ)到哈希數(shù)據(jù)庫中,該哈希列表中記錄了文件的多個(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序;計(jì)算模塊,用于計(jì)算所述多臺(tái)存儲(chǔ)服務(wù)器的傳輸進(jìn)程占用率,及各存儲(chǔ)服務(wù)器中每個(gè)存儲(chǔ)區(qū)的存儲(chǔ)空間; 確定模塊,用于根據(jù)上述計(jì)算得到的數(shù)值,確定傳輸進(jìn)程占用率低于預(yù)設(shè)值的存儲(chǔ)服務(wù)器為空閑存儲(chǔ)服務(wù)器,及確定該存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū); 去重模塊,用于當(dāng)哈希數(shù)據(jù)庫中有哈希值與所述存儲(chǔ)服務(wù)器中已存儲(chǔ)的數(shù)據(jù)塊的哈希值相同時(shí),確定該哈希數(shù)據(jù)庫中該哈希值對(duì)應(yīng)的數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊,通知相應(yīng)客戶端所述存儲(chǔ)服務(wù)器中已存儲(chǔ)該數(shù)據(jù)塊而無需再上傳該數(shù)據(jù)塊,并返回該重復(fù)數(shù)據(jù)塊的存儲(chǔ)指針給相應(yīng)客戶端 '及 分配模塊,用于將空閑存儲(chǔ)服務(wù)器中有剩余存儲(chǔ)空間的存儲(chǔ)區(qū)分配給去重后的各數(shù)據(jù)塊。
7.如權(quán)利要求6所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),其特征在于,所述客戶端用于: 將需要上傳至存儲(chǔ)服務(wù)器的文件分割成多個(gè)數(shù)據(jù)塊,并按照分割順序?qū)⒃摱鄠€(gè)數(shù)據(jù)塊的名稱、各數(shù)據(jù)塊的哈希值及數(shù)據(jù)塊的分割順序存入一張哈希列表中;及上傳該哈希列表至分配服務(wù)器。
8.如權(quán)利要求6所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),其特征在于,所述存儲(chǔ)服務(wù)器在接收到客戶端通過分配服務(wù)器上傳的數(shù)據(jù)塊時(shí),用于: 將各數(shù)據(jù)塊寫入相應(yīng)的存儲(chǔ)區(qū); 校驗(yàn)各數(shù)據(jù)塊的哈希值與哈希數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)塊的哈希值是否相同; 當(dāng)校驗(yàn)結(jié)果為相同時(shí),返回通過校驗(yàn)的各數(shù)據(jù)塊的存儲(chǔ)指針給相應(yīng)客戶端; 當(dāng)校驗(yàn)結(jié)果為不相同時(shí),通知客戶端重新上傳文件,以更新該未通過校驗(yàn)的數(shù)據(jù)塊 '及 當(dāng)校驗(yàn)次數(shù)達(dá)到預(yù)設(shè)次數(shù)且校驗(yàn)結(jié)果仍為不相同時(shí),通知客戶端存儲(chǔ)失敗。
9.如權(quán)利要求6所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),其特征在于,所述文件信息包括文件的名稱、文件的屬性。
10.如權(quán)利要求6所述的數(shù)據(jù)分塊存儲(chǔ)至分布式服務(wù)器的系統(tǒng),其特征在于,當(dāng)用戶需要通過客戶端從存儲(chǔ)服務(wù)器下載文件時(shí),所述客戶端還用于: 從哈希數(shù)據(jù)庫中獲取各數(shù)據(jù)塊的哈希值; 根據(jù)各數(shù)據(jù)塊的存儲(chǔ)指針從相應(yīng)的存儲(chǔ)區(qū)下載各數(shù)據(jù)塊; 校驗(yàn)各數(shù)據(jù)塊的哈希值與從哈希數(shù)據(jù)庫中獲取的相應(yīng)數(shù)據(jù)塊的哈希值是否相同; 當(dāng)校驗(yàn)結(jié)果為相同時(shí),將通過校驗(yàn)的數(shù)據(jù)塊寫入臨時(shí)存儲(chǔ)區(qū)中; 按照所述數(shù)據(jù)塊的分割順序?qū)⑸鲜鐾ㄟ^校驗(yàn)的數(shù)據(jù)塊進(jìn)行排序組合,生成文件;及校驗(yàn)組合后文件的哈希值與客戶端上傳的文件的哈希值是否相同,當(dāng)校驗(yàn)結(jié)果為相同時(shí),將通過校驗(yàn)的文件返回給客戶端的用戶。
【文檔編號(hào)】H04L29/08GK103873504SQ201210533979
【公開日】2014年6月18日 申請(qǐng)日期:2012年12月12日 優(yōu)先權(quán)日:2012年12月12日
【發(fā)明者】柴智權(quán), 李大鵬, 林海洪, 李忠一 申請(qǐng)人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司