本發(fā)明涉及云存儲技術(shù)領(lǐng)域,尤其涉及一種基于糾刪碼的多云碎片化安全存儲方法及系統(tǒng)。
背景技術(shù):
隨著新興信息技術(shù)與現(xiàn)代經(jīng)濟(jì)社會的交匯融合,各行業(yè)產(chǎn)生的數(shù)據(jù)量正快速增長,大數(shù)據(jù)正快速聚集規(guī)模巨大、種類繁多、復(fù)雜多變的數(shù)據(jù),并對其進(jìn)行收集、存儲、處理和分析應(yīng)用,從海量數(shù)據(jù)中發(fā)現(xiàn)規(guī)律、提取價(jià)值、創(chuàng)造財(cái)富的服務(wù)業(yè)態(tài)。由于數(shù)據(jù)中隱藏了巨大的價(jià)值財(cái)富,使得數(shù)據(jù)逐漸成為一個(gè)國家的基礎(chǔ)性戰(zhàn)略資源,同時(shí)大數(shù)據(jù)基礎(chǔ)設(shè)施、分析和服務(wù)技術(shù)的發(fā)展使企業(yè)能夠轉(zhuǎn)型為數(shù)據(jù)驅(qū)動(dòng)型機(jī)構(gòu)。由于大數(shù)據(jù)的重要性,國家、企業(yè)、組織機(jī)構(gòu)都需要構(gòu)建大數(shù)據(jù)能力來保持競爭力。我國近年來大力支持大數(shù)據(jù)發(fā)展應(yīng)用,推動(dòng)國家數(shù)據(jù)中心平臺建設(shè),推進(jìn)信用、交通、醫(yī)療、就業(yè)等領(lǐng)域政府?dāng)?shù)據(jù)資源適度向社會開發(fā),以消除信息孤島,達(dá)到建設(shè)數(shù)據(jù)強(qiáng)國目的。
數(shù)據(jù)中心具有數(shù)據(jù)規(guī)模大、種類多、結(jié)構(gòu)多樣等特征,且要求高可靠性、高安全性、高擴(kuò)展性,對數(shù)據(jù)存儲安全提出了新要求。云存儲能支持海量資源數(shù)據(jù)存儲和有效管理百億級文件,為數(shù)據(jù)中心建設(shè)提供可靠的解決方案?,F(xiàn)有數(shù)據(jù)存儲安全技術(shù)及存在問題如下:①數(shù)據(jù)加密:存在數(shù)據(jù)可用性問題,如數(shù)據(jù)損壞、丟失等。②副本技術(shù):存儲開銷過大;③raid和糾刪碼技術(shù):數(shù)據(jù)安全性問題,如傳輸過程被竊取等。此外,假設(shè)將數(shù)據(jù)存儲在單云數(shù)據(jù)中心,存在數(shù)據(jù)可用性、可靠性等問題,如云數(shù)據(jù)中心故障、不可信等。因此,數(shù)據(jù)安全存儲一直是數(shù)據(jù)中心的核心問題。
國內(nèi)專利:一種基于多個(gè)云存儲系統(tǒng)的安全存儲方法及系統(tǒng)(cn103118089a),提供了包括數(shù)據(jù)寫操作、讀操作的安全存儲方法,數(shù)據(jù)寫操作步驟包括數(shù)據(jù)分塊、數(shù)據(jù)加密、冗余編碼、數(shù)字簽名、分享處理及數(shù)據(jù)存儲字步驟;數(shù)據(jù)讀操作步驟包括解密元數(shù)據(jù)分片文件、數(shù)字簽名檢查、冗余編碼及解密密文數(shù)據(jù)塊子步驟。同時(shí)安全存儲系統(tǒng),包括加解密編碼模塊、冗余編碼模塊、秘密分享模塊和數(shù)字簽名模塊。但沒有保證數(shù)據(jù)存儲階段的時(shí)間消耗及服務(wù)質(zhì)量。
國外文獻(xiàn):implementationofcloud-raid:asecureandreliablestorageabovetheclouds(internationalconferenceongridandpervasivecomputing,springerberlinheidelberg,2013)提供多個(gè)云存儲供應(yīng)商以避免鎖定問題,利用raid技術(shù)保證數(shù)據(jù)可用性、機(jī)密性和完整性,但當(dāng)多個(gè)云存儲供應(yīng)商出現(xiàn)故障時(shí),無法保證數(shù)據(jù)可用性,且無法保證用戶與系統(tǒng)交互服務(wù)質(zhì)量。
因此,針對以上問題,迫切需要一種新型的適用數(shù)據(jù)中心的云存儲系統(tǒng),不僅滿足數(shù)據(jù)安全性、可用可靠性、機(jī)密性,而且能極大的節(jié)約數(shù)據(jù)中心建設(shè)成本,同時(shí)保證用戶與云存儲系統(tǒng)之間交互的服務(wù)質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種基于糾刪碼的多云碎片化安全存儲方法及系統(tǒng),用于數(shù)據(jù)中心解決數(shù)據(jù)安全存儲等問題,同時(shí)提升用戶與云存儲系統(tǒng)之間交互的服務(wù)質(zhì)量。
為了實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明的技術(shù)方案是:
一種基于糾刪碼的多云碎片化安全存儲方法,包括多云數(shù)據(jù)中心的數(shù)據(jù)存儲步驟和多云數(shù)據(jù)中心的數(shù)據(jù)讀取步驟,
所述的多云數(shù)據(jù)中心的數(shù)據(jù)存儲步驟,包括數(shù)據(jù)碎片化步驟、數(shù)據(jù)分發(fā)步驟和數(shù)據(jù)條帶存儲步驟:
1)、數(shù)據(jù)碎片化:
對用戶上傳數(shù)據(jù)通過密鑰進(jìn)行加密,生成加密數(shù)據(jù),然后將加密數(shù)據(jù)進(jìn)行編碼后生成多個(gè)文件塊,并生成記錄包括密鑰在內(nèi)的文件塊信息的元數(shù)據(jù)文件;
2)、數(shù)據(jù)分發(fā):
根據(jù)各個(gè)云數(shù)據(jù)中心的響應(yīng)時(shí)間按照從小到大進(jìn)行排序,將步驟1)中生成的文件塊依次分發(fā)到排序后的各個(gè)云數(shù)據(jù)中心;
3)、數(shù)據(jù)條帶存儲:
每個(gè)云數(shù)據(jù)中心提供邏輯上連續(xù)的地址空間,同一個(gè)加密數(shù)據(jù)存儲在不同云數(shù)據(jù)中心上的文件塊形成一個(gè)條帶組;
所述的多云數(shù)據(jù)中心的數(shù)據(jù)讀取步驟,包括元數(shù)據(jù)文件讀取步驟、數(shù)據(jù)碎片化讀取步驟和數(shù)據(jù)還原步驟;
①、元數(shù)據(jù)文件讀取:
從元數(shù)據(jù)服務(wù)器中讀取元數(shù)據(jù)文件,以獲取數(shù)據(jù)的n個(gè)文件塊信息;
②、數(shù)據(jù)碎片化讀?。?/p>
根據(jù)文件塊信息查找存儲了相應(yīng)文件塊的云數(shù)據(jù)中心,并下載文件塊;
③、數(shù)據(jù)還原:
通過密鑰解密數(shù)據(jù),得到原始數(shù)據(jù)。
所述的一種基于糾刪碼的多云碎片化安全存儲方法,所述的數(shù)據(jù)碎片化步驟的具體步驟包括:
首先,使用密鑰為key的對稱加密算法對數(shù)據(jù)data進(jìn)行加密,生成加密數(shù)據(jù)data′;
其次,采用糾刪碼算法編碼加密數(shù)據(jù)data′,生成n個(gè)文件塊,其中包括k個(gè)數(shù)據(jù)塊和m個(gè)編碼塊,且n=k+m;
同時(shí),產(chǎn)生一份data′的元數(shù)據(jù)文件,元數(shù)據(jù)文件存儲在元數(shù)據(jù)服務(wù)器中。元數(shù)據(jù)文件包括數(shù)據(jù)data名稱、大小,數(shù)據(jù)塊個(gè)數(shù)k、編碼塊個(gè)數(shù)m、糾刪碼算法名稱,密鑰key。
所述的一種基于糾刪碼的多云碎片化安全存儲方法,所述的數(shù)據(jù)碎片化步驟中,還包括采用散列算法對用戶上傳數(shù)據(jù)data進(jìn)行哈希值運(yùn)算,將得到的哈希值作為對稱加密算法密鑰key的步驟。
所述的一種基于糾刪碼的多云碎片化安全存儲方法,所述的數(shù)據(jù)分發(fā)步驟的具體步驟包括:
云數(shù)據(jù)中心的數(shù)量為c個(gè),c取自然數(shù),按照響應(yīng)時(shí)間大小,將云數(shù)據(jù)中心排序?yàn)閧c1,c2,...,cc}的集合c,將n個(gè)文件塊分發(fā)存儲到s個(gè)云數(shù)據(jù)中心,其中s∈c;
若n>c,則按照云數(shù)據(jù)中心排序的順序依次分發(fā)存儲文件塊;
若1≤n≤c,則選取前n個(gè)云數(shù)據(jù)中心分發(fā)存儲文件塊。
所述的一種基于糾刪碼的多云碎片化安全存儲方法,所述的數(shù)據(jù)分發(fā)步驟中,響應(yīng)時(shí)間θ=te-tb,其中te為相應(yīng)的云數(shù)據(jù)中心開始接收第一個(gè)數(shù)據(jù)字節(jié)的時(shí)間,tb為系統(tǒng)開始向相應(yīng)的云數(shù)據(jù)中心發(fā)送請求時(shí)間。
所述的一種基于糾刪碼的多云碎片化安全存儲方法,所述的數(shù)據(jù)碎片化讀取步驟中,在下載文件塊時(shí),還包括當(dāng)某個(gè)云數(shù)據(jù)中心上的文件塊下載失敗時(shí),則根據(jù)從其他云數(shù)據(jù)中心下載的存活文件塊進(jìn)行解碼計(jì)算,從而恢復(fù)該數(shù)據(jù)。
所述的一種基于糾刪碼的多云碎片化安全存儲方法,所述的數(shù)據(jù)還原步驟中,還包括采用散列算法對解密后數(shù)據(jù)進(jìn)行哈希值運(yùn)算,再與原始哈希值進(jìn)行比較的步驟,若哈希值相等,則讀取的數(shù)據(jù)為原始數(shù)據(jù),否則判定為讀取數(shù)據(jù)失敗。
一種基于糾刪碼的多云碎片化安全存儲系統(tǒng),包括數(shù)據(jù)碎片層、數(shù)據(jù)調(diào)度層和云服務(wù)層:
所述數(shù)據(jù)碎片層包括用戶應(yīng)用服務(wù)模塊、數(shù)據(jù)加密/解密服務(wù)模塊、數(shù)據(jù)編碼/解碼服務(wù)模塊和元數(shù)據(jù)服務(wù)模塊;
(1)、用戶應(yīng)用服務(wù)模塊用于提供與用戶進(jìn)行交互的接口服務(wù),對用戶身份進(jìn)行標(biāo)識登記,并為不同類型用戶設(shè)置不同的訪問及功能權(quán)限;
(2)、數(shù)據(jù)加密/解密服務(wù)模塊用于為用戶在存儲數(shù)據(jù)和讀取數(shù)據(jù)時(shí)分別通過密鑰進(jìn)行加密和解密服務(wù);
(3)、數(shù)據(jù)編碼服務(wù)模塊用于生成文件塊,包括將加密后的數(shù)據(jù)進(jìn)行切分為多個(gè)數(shù)據(jù)塊并通過糾刪碼編碼計(jì)算產(chǎn)生多個(gè)編碼塊;數(shù)據(jù)解碼服務(wù)模塊用于從各云數(shù)據(jù)中心下載相應(yīng)的文件塊,通過糾刪碼解碼計(jì)算恢復(fù)加密數(shù)據(jù);
(4)、元數(shù)據(jù)服務(wù)模塊用于生成記錄包括密鑰在內(nèi)的文件塊信息的元數(shù)據(jù)文件;
所述數(shù)據(jù)調(diào)度層包括數(shù)據(jù)調(diào)度服務(wù)模塊和數(shù)據(jù)分發(fā)服務(wù)模塊;
ⅰ、數(shù)據(jù)調(diào)度服務(wù)模塊用于根據(jù)系統(tǒng)與各云數(shù)據(jù)中心的響應(yīng)時(shí)間,將云數(shù)據(jù)中心按照優(yōu)→差進(jìn)行排序,以此來調(diào)度編碼后生成的文件塊;
ii、數(shù)據(jù)分發(fā)服務(wù)模塊用于通過restfulapi(互聯(lián)網(wǎng)應(yīng)用程序的api設(shè)計(jì)理論)與各云數(shù)據(jù)中心進(jìn)行連接,將文件塊分發(fā)到各個(gè)云數(shù)據(jù)中心;
所述云服務(wù)層由多個(gè)云數(shù)據(jù)中心組成,用于進(jìn)行云數(shù)據(jù)儲存。
所述的一種基于糾刪碼的多云碎片化安全存儲系統(tǒng),所述的數(shù)據(jù)加密服務(wù)模塊在用戶存儲數(shù)據(jù)時(shí),先采用散列算法計(jì)算數(shù)據(jù)的哈希值,將哈希值作為密鑰key,再采用密鑰為key的對稱加密算法加密數(shù)據(jù);
所述的數(shù)據(jù)解密服務(wù)模塊在用戶讀取數(shù)據(jù)時(shí),從元數(shù)據(jù)文件中獲取密鑰key值,再采用密鑰為key的對稱加密算法解密數(shù)據(jù)。
所述的一種基于糾刪碼的多云碎片化安全存儲系統(tǒng),所述的數(shù)據(jù)編碼服務(wù)模塊將加密后的數(shù)據(jù)采用(n,k)糾刪碼算法平均切分為k個(gè)數(shù)據(jù)塊,再通過編碼計(jì)算產(chǎn)生m個(gè)編碼塊,其中k個(gè)數(shù)據(jù)塊和m個(gè)編碼塊的大小均相等,共生成n=k+m個(gè)文件塊;
所述的元數(shù)據(jù)服務(wù)模塊所生成的元數(shù)據(jù)文件中記錄有數(shù)據(jù)名稱、大小,數(shù)據(jù)塊個(gè)數(shù)k、編碼塊個(gè)數(shù)m、糾刪碼算法名稱和密鑰key。
所述的數(shù)據(jù)解碼服務(wù)模塊在用戶讀取數(shù)據(jù)時(shí),先從元數(shù)據(jù)文件中獲取各個(gè)文件塊存儲的云數(shù)據(jù)中心信息,再從各云數(shù)據(jù)中心下載相應(yīng)的文件塊,若部分文件塊不可用或失效,則根據(jù)(n,k)糾刪碼算法解碼計(jì)算恢復(fù)數(shù)據(jù)。
本發(fā)明的技術(shù)效果在于:
(1)數(shù)據(jù)經(jīng)加密算法和糾刪碼算法處理后,存儲在多個(gè)云數(shù)據(jù)中心,既節(jié)省數(shù)據(jù)中心硬件建設(shè)成本,又避免單云數(shù)據(jù)中心所導(dǎo)致的數(shù)據(jù)可用可靠性問題,能最大化云數(shù)據(jù)中心多樣性、最大程度容忍云數(shù)據(jù)中心不可用,實(shí)現(xiàn)容錯(cuò)最大化和提高數(shù)據(jù)訪問效率。
(2)文件塊根據(jù)響應(yīng)時(shí)間來選擇相應(yīng)的云數(shù)據(jù)中心,能提高文件塊分發(fā)效率,提升用戶與云存儲系統(tǒng)之間交互的服務(wù)質(zhì)量。
(3)文件塊分散存儲在多個(gè)云數(shù)據(jù)中心,元數(shù)據(jù)存儲在元數(shù)據(jù)服務(wù)器上,能避免云數(shù)據(jù)中心壟斷竊取用戶數(shù)據(jù),同時(shí)避免系統(tǒng)開發(fā)者獲取用戶數(shù)據(jù),提升數(shù)據(jù)中心數(shù)據(jù)的存儲安全性。
附圖說明
圖1為基于糾刪碼的多云碎片化安全存儲系統(tǒng)示意圖。
圖2為本發(fā)明多云數(shù)據(jù)中心的數(shù)據(jù)存儲流程示意圖。
圖3為本發(fā)明多云數(shù)據(jù)中心的數(shù)據(jù)讀取流程示意圖。
圖4為本發(fā)明數(shù)據(jù)存儲方法流程圖。
圖5為本發(fā)明數(shù)據(jù)讀取方法流程圖。
圖6為本發(fā)明系統(tǒng)架構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明。
本發(fā)明基于raid思想和多個(gè)云數(shù)據(jù)中心,如圖1所示,各用戶通過云存儲系統(tǒng)將數(shù)據(jù)存儲在多個(gè)云數(shù)據(jù)中心,云數(shù)據(jù)中心由一些大型云存儲供應(yīng)商組成,如amazons3,microsoftazure,阿里云,騰訊云和百度云等。
本發(fā)明所提供的一種基于糾刪碼的多云碎片化安全存儲方法,包括多云數(shù)據(jù)中心的數(shù)據(jù)存儲和多云數(shù)據(jù)中心的數(shù)據(jù)讀取。
多云數(shù)據(jù)中心的數(shù)據(jù)存儲,主要由數(shù)據(jù)碎片化、數(shù)據(jù)分發(fā)和數(shù)據(jù)條帶存儲組成。
(1)數(shù)據(jù)碎片化:
首先,采用散列算法對用戶上傳數(shù)據(jù)data進(jìn)行哈希值運(yùn)算,將得到的哈希值作為對稱加密算法密鑰key,再使用密鑰為key的對稱加密算法對數(shù)據(jù)data進(jìn)行加密,生成加密數(shù)據(jù)data′;
其次,采用糾刪碼算法編碼加密數(shù)據(jù)data′,生成n個(gè)文件塊,其中包括k個(gè)數(shù)據(jù)塊和m個(gè)編碼塊,且n=k+m。
同時(shí),產(chǎn)生一份data′的元數(shù)據(jù)文件,元數(shù)據(jù)文件存儲在元數(shù)據(jù)服務(wù)器中。元數(shù)據(jù)文件包括數(shù)據(jù)data名稱、大小,數(shù)據(jù)塊個(gè)數(shù)k、編碼塊個(gè)數(shù)m、糾刪碼算法名稱,密鑰key。
(2)數(shù)據(jù)分發(fā)
設(shè)系統(tǒng)由c個(gè)不同的云數(shù)據(jù)中心組成,記為c={1,2,...,c}。
定義響應(yīng)時(shí)間θ=te-tb,其中te為相應(yīng)的云數(shù)據(jù)中心開始接收第一個(gè)數(shù)據(jù)字節(jié)的時(shí)間,tb為系統(tǒng)開始向相應(yīng)的云數(shù)據(jù)中心發(fā)送請求時(shí)間。
按照響應(yīng)時(shí)間大小,將云數(shù)據(jù)中心排序?yàn)閧c1,c2,...,cc}。將n個(gè)文件塊分發(fā)存儲到s個(gè)云數(shù)據(jù)中心,其中s∈c。
若n>c,則按照云數(shù)據(jù)中心排序的順序依次分發(fā)存儲文件塊;
若1≤n≤c,則選取前n個(gè)云數(shù)據(jù)中心分發(fā)存儲文件塊。
(3)數(shù)據(jù)條帶存儲
每個(gè)云數(shù)據(jù)中心提供邏輯地址連續(xù)但物理存放地址可能并不連續(xù)的數(shù)據(jù)存儲空間,數(shù)據(jù)data′存儲在不同云數(shù)據(jù)中心上的文件塊稱為條帶組。
多云數(shù)據(jù)中心的數(shù)據(jù)讀取,主要由元數(shù)據(jù)文件讀取、數(shù)據(jù)碎片化讀取、哈希值檢查組成。
(1)元數(shù)據(jù)文件讀取
從元數(shù)據(jù)服務(wù)器中讀取數(shù)據(jù)碎片化后存儲的元數(shù)據(jù)文件,從元數(shù)據(jù)文件上獲取n個(gè)文件塊信息。
(2)數(shù)據(jù)碎片化讀取
根據(jù)文件塊信息查找存儲了相應(yīng)文件塊的云數(shù)據(jù)中心,從云數(shù)據(jù)中心獲取文件塊碎片信息,開始下載文件塊。若某云數(shù)據(jù)中心上的文件塊下載失敗,則根據(jù)其他存活文件塊解碼計(jì)算恢復(fù)該數(shù)據(jù)。
再通過密鑰為key的對稱加密算法解密數(shù)據(jù),得到原始數(shù)據(jù)。
(3)數(shù)據(jù)還原
采用散列算法對解密后數(shù)據(jù)進(jìn)行哈希值運(yùn)算,再與原始哈希值進(jìn)行比較,若相等則讀取的數(shù)據(jù)為原始數(shù)據(jù),若不相等,則讀取數(shù)據(jù)失敗。
本發(fā)明所提供的一種基于糾刪碼的多云碎片化安全存儲系統(tǒng),包括數(shù)據(jù)碎片層、數(shù)據(jù)調(diào)度層和云服務(wù)層:
所述數(shù)據(jù)碎片層由用戶應(yīng)用服務(wù)、數(shù)據(jù)加密/解密服務(wù)、元數(shù)據(jù)服務(wù)和數(shù)據(jù)編碼/解碼服務(wù)組成。
①用戶應(yīng)用服務(wù)。提供與用戶進(jìn)行交互的接口服務(wù),對用戶身份進(jìn)行標(biāo)識登記,不同類型用戶具有不同的訪問權(quán)限及可以使用不同的功能。
②數(shù)據(jù)加密/解密服務(wù)。
數(shù)據(jù)加密服務(wù)。當(dāng)用戶存儲數(shù)據(jù)時(shí),先采用散列算法計(jì)算數(shù)據(jù)的哈希值,將哈希值作為密鑰key,再采用密鑰為key的對稱加密算法加密數(shù)據(jù)。
數(shù)據(jù)解密服務(wù)。當(dāng)用戶讀取數(shù)據(jù)時(shí),從元數(shù)據(jù)文件中獲取密鑰key值,再采用密鑰為key的對稱加密算法解密數(shù)據(jù)。
③數(shù)據(jù)編碼/解碼服務(wù)。
數(shù)據(jù)編碼服務(wù)。加密后的數(shù)據(jù)采用(n,k)糾刪碼算法先將數(shù)據(jù)平均切分為k個(gè)數(shù)據(jù)塊,再通過編碼計(jì)算產(chǎn)生m個(gè)編碼塊,其中k個(gè)數(shù)據(jù)塊和m個(gè)編碼塊大小均相等,共生成n=k+m個(gè)文件塊。編碼后生成1份元數(shù)據(jù)文件,其中包含數(shù)據(jù)名稱、大小,數(shù)據(jù)塊個(gè)數(shù)k、編碼塊個(gè)數(shù)m、糾刪碼算法名稱,密鑰key。
數(shù)據(jù)解碼服務(wù)。當(dāng)用戶讀取數(shù)據(jù)時(shí),先從元數(shù)據(jù)文件中獲取各個(gè)文件塊信息,根據(jù)文件塊信息查找存儲的云數(shù)據(jù)中心,再從各云數(shù)據(jù)中心下載相應(yīng)的文件塊,若部分文件塊不可用或失效(失效數(shù)小于m),則根據(jù)(n,k)糾刪碼算法編碼計(jì)算恢復(fù)數(shù)據(jù)。
④元數(shù)據(jù)服務(wù)
元數(shù)據(jù)服務(wù)。數(shù)據(jù)編碼后生成元數(shù)據(jù)文件,包含數(shù)據(jù)名稱、大小,數(shù)據(jù)塊個(gè)數(shù)k、編碼塊個(gè)數(shù)m、糾刪碼算法名稱,密鑰key。
所述數(shù)據(jù)調(diào)度層由數(shù)據(jù)調(diào)度服務(wù)、數(shù)據(jù)分發(fā)服務(wù)組成。
①數(shù)據(jù)調(diào)度服務(wù)。
根據(jù)系統(tǒng)與各云數(shù)據(jù)中心的響應(yīng)時(shí)間,將云數(shù)據(jù)中心按照優(yōu)→差進(jìn)行排序,以此來調(diào)度編碼后生成的文件塊。
②數(shù)據(jù)分發(fā)服務(wù)。
系統(tǒng)通過restfulapi與各云數(shù)據(jù)中心進(jìn)行連接,將文件塊分發(fā)到各個(gè)云數(shù)據(jù)中心。
所述云服務(wù)層,主要由若干云數(shù)據(jù)中心組成,云數(shù)據(jù)中心是知名互聯(lián)網(wǎng)企業(yè)云存儲產(chǎn)品,如amazons3、microsoftazure、阿里云、騰訊云和百度云等。
本發(fā)明的實(shí)施例選取5個(gè)云數(shù)據(jù)中心,分別為amazons3、microsoftazure、阿里云、騰訊云、百度云,各數(shù)據(jù)節(jié)點(diǎn)位置分別為東京、中國東部數(shù)據(jù)中心、杭州、廣州、北京。
該基于糾刪碼的多云碎片化安全存儲系統(tǒng)(簡寫:rclouds),rclouds系統(tǒng)示意圖如圖1所示,包括多云數(shù)據(jù)中心的數(shù)據(jù)存儲和多云數(shù)據(jù)中心的數(shù)據(jù)讀取步驟;
多云數(shù)據(jù)中心的數(shù)據(jù)存儲,如圖2所示,包括如下三個(gè)過程:
(1.1)數(shù)據(jù)碎片化
假設(shè)用戶需要存儲的數(shù)據(jù)data大小為129643295b,使用md5哈希算法計(jì)算哈希值為6392103b85a39d790f979f7fcb21c320,再采用key為該哈希值的aes算法加密數(shù)據(jù),生成加密數(shù)據(jù)data′。
加密數(shù)據(jù)采用(6,4)rs糾刪碼算法編碼處理,先將加密數(shù)據(jù)切分為4個(gè)大小為32440320的數(shù)據(jù)塊di,i∈[1,5],再編碼處理生成2個(gè)大小為32440320的編碼塊ej,j∈[1,2],總共有6個(gè)文件塊。編碼處理完成后,生成1份元數(shù)據(jù)文件,元數(shù)據(jù)文件包括數(shù)據(jù)data名稱、大小,數(shù)據(jù)塊個(gè)數(shù)k、編碼塊個(gè)數(shù)m、糾刪碼算法名稱,密鑰key。其中元數(shù)據(jù)文件存儲在元數(shù)據(jù)服務(wù)器中。
(1.2)數(shù)據(jù)分發(fā)
評估5個(gè)云數(shù)據(jù)中心傳輸性能,通過restfulapi與各云數(shù)據(jù)中心進(jìn)行連接,定義響應(yīng)時(shí)間θ=te-tb,其中te為相應(yīng)的云數(shù)據(jù)中心開始接收第一個(gè)數(shù)據(jù)字節(jié)的時(shí)間,tb為系統(tǒng)開始發(fā)送向相應(yīng)的云數(shù)據(jù)中心發(fā)送請求時(shí)間。將θ值從小到大進(jìn)行排序,對應(yīng)云數(shù)據(jù)中心為騰訊云、阿里云、microsoftazure、百度云、amazons3。加密數(shù)據(jù)編碼后生成大小相等的6個(gè)文件塊,其中d1分發(fā)到騰訊云,d2分發(fā)到阿里云,d3分發(fā)到microsoftazure,d4分發(fā)到百度云,e1分發(fā)到amazons3,e2分發(fā)到騰訊云。
(1.3)數(shù)據(jù)條帶存儲
6個(gè)文件塊依次存儲在不同的云數(shù)據(jù)中心,這6個(gè)文件塊稱為條帶組。
圖4為多云數(shù)據(jù)中心的數(shù)據(jù)存儲方法流程圖。
多云數(shù)據(jù)中心的數(shù)據(jù)讀取,如圖3所示,包括如下三個(gè)過程:
(2.1)元數(shù)據(jù)文件讀取
當(dāng)用戶需要讀取數(shù)據(jù)時(shí),先從元數(shù)據(jù)服務(wù)器中讀取數(shù)據(jù)碎片化后存儲的元數(shù)據(jù)文件,從元數(shù)據(jù)文件中獲取n個(gè)文件塊信息,根據(jù)文件信息查找存儲的云數(shù)據(jù)中心。
(2.2)數(shù)據(jù)碎片化讀取
從云數(shù)據(jù)中心獲取文件塊碎片信息,開始下載文件塊。若某云數(shù)據(jù)中心上的文件塊下載失敗,則根據(jù)其他存活文件塊編碼計(jì)算恢復(fù)該數(shù)據(jù)。再通過密鑰為key的對稱加密算法解密數(shù)據(jù),得到原始數(shù)據(jù)。
(2.3)數(shù)據(jù)還原
采用md5散列算法對解密后數(shù)據(jù)進(jìn)行哈希值運(yùn)算,再與原始哈希值進(jìn)行比較,若相等則讀取的數(shù)據(jù)為原始數(shù)據(jù),若不相等,則讀取數(shù)據(jù)失敗。
圖5為多云數(shù)據(jù)中心的數(shù)據(jù)讀取流程圖。
rclouds系統(tǒng)架構(gòu)如圖6所示,rclouds系統(tǒng)主要由數(shù)據(jù)碎片層、數(shù)據(jù)調(diào)度層和云服務(wù)層組成。
(1)數(shù)據(jù)碎片層,主要包括:①用戶應(yīng)用服務(wù)。②數(shù)據(jù)加密/解密服務(wù)。③元數(shù)據(jù)服務(wù)。④數(shù)據(jù)編碼/解碼服務(wù)。
(2)數(shù)據(jù)調(diào)度層,主要包括:①數(shù)據(jù)調(diào)度服務(wù)。②數(shù)據(jù)分發(fā)服務(wù)。
(3)云服務(wù)層,主要包括:amazons3、microsoftazure、阿里云、騰訊云、百度云等云數(shù)據(jù)中心。