本發(fā)明涉及一種基于公有云的安全可靠的公有云存儲系統(tǒng)及上傳、下載、刪除、保障其可靠性的方法,屬于大數(shù)據(jù)的云存儲領(lǐng)域。
背景技術(shù):
在現(xiàn)在的大數(shù)據(jù)時代背景下數(shù)據(jù)作為一種資產(chǎn),誰掌握海量數(shù)據(jù)誰就占據(jù)了巨量的財(cái)富。而用戶的數(shù)據(jù)信息存儲在一些公有云上則面臨著數(shù)據(jù)泄露的危險,在數(shù)據(jù)挖掘技術(shù)的日益發(fā)展的當(dāng)下誰都不能保證自己的數(shù)據(jù)存儲在某些公有云平臺上不被數(shù)據(jù)挖掘,這樣用戶的數(shù)據(jù)安全性無從談起。
新興的大數(shù)據(jù)技術(shù)讓越來越多的企業(yè)意識到大數(shù)據(jù)的重要性,也想得到大數(shù)據(jù)的資產(chǎn),于是許多企業(yè)發(fā)展大數(shù)據(jù)技術(shù),提供云存儲服務(wù),有的甚至為了得到“大數(shù)據(jù)資產(chǎn)”甚至提供免費(fèi)云存儲服務(wù),但是在大數(shù)據(jù)時代興起的初期,探索不都是成功的,有的企業(yè)提供的公有云服務(wù)在一段時間過后并沒有發(fā)現(xiàn)企業(yè)的盈利模式,但是提供的云存儲服務(wù)每天都會產(chǎn)生大量的費(fèi)用。于是企業(yè)的探索以失敗告終,可能會關(guān)停提供的服務(wù)。這樣,用戶存儲的大量數(shù)據(jù)就會面臨危險。存儲在公有云上的數(shù)據(jù)不夠可靠。
完全依賴某一家的公有云服務(wù)性能和價格的比較可能不盡如人意。
建設(shè)和維護(hù)一個數(shù)據(jù)中心要花費(fèi)大量的人力物力財(cái)力,所以即使大型的公有云提供商也只是建設(shè)有幾個數(shù)據(jù)中心,而需要大數(shù)據(jù)服務(wù)的用戶可能在全國各地,這樣數(shù)據(jù)的調(diào)度及傳輸?shù)仁艿轿锢砭嚯x網(wǎng)絡(luò)性能影響很大。存儲性能受到客觀條件的限制。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對現(xiàn)有公有云存儲存在的問題,提供了一種安全性高、可靠性好、性價比高以及調(diào)度靈活的基于公有云的安全可靠的公有云存儲系統(tǒng)及上傳、下載、刪除方法。
本發(fā)明的架構(gòu)方案:
一種基于公有云的安全可靠的公有云存儲系統(tǒng)的架構(gòu),包括服務(wù)器、多家公有云和客戶端,服務(wù)器僅負(fù)責(zé)存儲文件的元數(shù)據(jù)信息以及對外提供公有云存儲服務(wù),多家公有云則存儲實(shí)際的文件數(shù)據(jù),客戶端調(diào)用服務(wù)器的公有云存儲服務(wù),服務(wù)器的底層對客戶端不可見。
優(yōu)選的:所述客戶端包括編碼模塊、解碼模塊、服務(wù)器交互模塊、公有云交互模塊,其中:
編碼模塊,負(fù)責(zé)對用戶要上傳文件的原始數(shù)據(jù)選擇N+M的方式生成M個校驗(yàn)塊,其中,N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。并根據(jù)分成的校驗(yàn)塊生成初始元數(shù)據(jù)信息。
解碼模塊,負(fù)責(zé)對用戶從公有云下載下來的校驗(yàn)塊的解碼并整合恢復(fù)成原始數(shù)據(jù)。
服務(wù)器交互模塊,負(fù)責(zé)調(diào)用服務(wù)器的公有云存儲服務(wù),主要包括向服務(wù)器發(fā)送上傳請求,所述上傳請求包括要上傳文件的初始元數(shù)據(jù)信息,接收服務(wù)器根據(jù)初始元數(shù)據(jù)信息反饋的存儲元數(shù)據(jù)信息,以及向服務(wù)器發(fā)送下載請求。
公有云交互模塊,負(fù)責(zé)把編碼模塊生成的校驗(yàn)塊根據(jù)存儲元數(shù)據(jù)信息分別上傳到公有云,以及根據(jù)存儲元數(shù)據(jù)信息分別下載對應(yīng)的公有云上的校驗(yàn)塊到客戶端。
優(yōu)選的:所述服務(wù)器包括文件系統(tǒng)管理模塊、公有云存儲管理調(diào)度模塊、數(shù)據(jù)容錯恢復(fù)模塊、客戶端接口模塊,其中:
文件系統(tǒng)管理模塊,負(fù)責(zé)存儲文件的存儲元數(shù)據(jù)信息。
公有云存儲管理調(diào)度模塊,負(fù)責(zé)底層多家公有云的管理,根據(jù)初始元數(shù)據(jù)信息為所述客戶端上傳文件所需要的M家公有云的URL地址的分配,將初始元數(shù)據(jù)信息和其對應(yīng)的URL地址合成為存儲元數(shù)據(jù)信息。公有云存儲管理調(diào)度模塊用于檢測公有云的服務(wù)狀況。
數(shù)據(jù)容錯恢復(fù)模塊,負(fù)責(zé)底層公有云服務(wù)情況的容錯恢復(fù)處理。
多家公有云負(fù)責(zé)存儲實(shí)際的數(shù)據(jù)塊。主要用于存儲客戶端根據(jù)存儲元數(shù)據(jù)信息上傳的校驗(yàn)塊。
優(yōu)選的:若公有云存儲管理調(diào)度模塊檢測有X家公有云發(fā)布臨時停止服務(wù)的消息,X小于N,數(shù)據(jù)容錯恢復(fù)模塊把不能用的X家公有云的存儲的校驗(yàn)塊的信息狀態(tài)改為不可用,在服務(wù)器端接收客戶端對文件的請求時先讀取文件校驗(yàn)塊的狀態(tài)信息,選擇狀態(tài)為可用的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息返回給客戶端,公有云存儲管理調(diào)度模塊發(fā)現(xiàn)臨時停止服務(wù)的公有云恢復(fù)正常服務(wù),數(shù)據(jù)容錯恢復(fù)模塊把恢復(fù)正常服務(wù)的公有云的校驗(yàn)塊的信息狀態(tài)由不可用改為可用。
若公有云存儲管理調(diào)度模塊檢測到有X家公有云關(guān)停服務(wù),服務(wù)器更新維護(hù)云存儲文件系統(tǒng)。數(shù)據(jù)容錯恢復(fù)模塊根據(jù)關(guān)停的公有云檢測出哪些文件的校驗(yàn)塊少于M塊,把根據(jù)檢測到的這些文件的校驗(yàn)塊信息,從中讀取N個校驗(yàn)塊信息。根據(jù)選出的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息到對應(yīng)的N個公有云存儲系統(tǒng)中下載這N個校驗(yàn)塊。根據(jù)這N個校驗(yàn)塊生成缺失的X個校驗(yàn)塊,給這X個校驗(yàn)塊分配X家未使用的正常運(yùn)行的公有云的URL地址。根據(jù)URL地址把這X個校驗(yàn)塊上傳到X家公有云。全部上傳成功后,數(shù)據(jù)容錯恢復(fù)模塊把X個校驗(yàn)塊信息寫入到服務(wù)器的存儲系統(tǒng)中的對應(yīng)文件的存儲元數(shù)據(jù)信息中,對這個文件的存儲元數(shù)據(jù)信息進(jìn)行更新。
一種基于公有云的安全可靠的公有云存儲系統(tǒng)的架構(gòu)方法,包括服務(wù)器、多家公有云和客戶端,服務(wù)器僅負(fù)責(zé)存儲文件的元數(shù)據(jù)信息以及對外提供公有云存儲服務(wù),多家公有云則存儲實(shí)際的文件數(shù)據(jù),客戶端只負(fù)責(zé)調(diào)用服務(wù)器的公有云存儲服務(wù),服務(wù)器的底層對客戶端不可見,由此構(gòu)建出底層為多家公有云的公有云存儲系統(tǒng)。
優(yōu)選的:客戶端包括編碼模塊、解碼模塊、服務(wù)器交互模塊、公有云交互模塊,服務(wù)器包括文件系統(tǒng)管理模塊、公有云存儲管理調(diào)度模塊、數(shù)據(jù)容錯恢復(fù)模塊、客戶端接口模塊,其中:
通過編碼模塊對用戶要上傳文件的原始數(shù)據(jù)選擇N+M的方式生成M個校驗(yàn)塊,其中,N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。并根據(jù)分成的校驗(yàn)塊生成初始元數(shù)據(jù)信息。
通過服務(wù)器交互模塊向服務(wù)器發(fā)送上傳請求,所述上傳請求包括要上傳文件的初始元數(shù)據(jù)信息。
通過公有云存儲管理調(diào)度模塊根據(jù)初始元數(shù)據(jù)信息為所述客戶端上傳文件分配所需要的M家公有云的URL地址,將初始元數(shù)據(jù)信息和其對應(yīng)的URL地址合成為存儲元數(shù)據(jù)信息,并將該存儲元數(shù)據(jù)信息反饋給服務(wù)器交互模塊,同時將該存儲元數(shù)據(jù)信息發(fā)送給文件系統(tǒng)管理模塊進(jìn)行存儲。
通過公有云交互模塊把編碼模塊生成的校驗(yàn)塊根據(jù)存儲元數(shù)據(jù)信息分別上傳到對應(yīng)的公有云。
多家公有云用于存儲客戶端上傳的校驗(yàn)塊。
通過公有云存儲管理調(diào)度模塊用于檢測公有云的服務(wù)狀況。更加公有云的服務(wù)狀況,通過數(shù)據(jù)容錯恢復(fù)模塊進(jìn)行容錯恢復(fù)處理。
通過客戶端的服務(wù)器交互模塊向服務(wù)器發(fā)送下載請求,服務(wù)器的文件系統(tǒng)管理模塊根據(jù)下載請求將下載請求中對應(yīng)的存儲元數(shù)據(jù)信息發(fā)送給客戶端。公有云交互模塊根據(jù)存儲元數(shù)據(jù)信息分別下載對應(yīng)的公有云上的校驗(yàn)塊到客戶端,通過解碼模塊將用戶從公有云下載下來的校驗(yàn)塊的解碼并整合恢復(fù)成原始數(shù)據(jù)。
進(jìn)一步地,其可靠性方法如下:若公有云存儲管理調(diào)度模塊檢測有X家公有云發(fā)布臨時停止服務(wù)的消息,X小于N,通過數(shù)據(jù)容錯恢復(fù)模塊把不能用的X家公有云的存儲的校驗(yàn)塊的信息狀態(tài)改為不可用,在服務(wù)器端接收客戶端對文件的請求時先讀取文件校驗(yàn)塊的狀態(tài)信息,選擇狀態(tài)為可用的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息返回給客戶端,公有云存儲管理調(diào)度模塊發(fā)現(xiàn)臨時停止服務(wù)的公有云恢復(fù)正常服務(wù),數(shù)據(jù)容錯恢復(fù)模塊把恢復(fù)正常服務(wù)的公有云的校驗(yàn)塊的信息狀態(tài)由不可用改為可用。
若公有云存儲管理調(diào)度模塊檢測到有X家公有云關(guān)停服務(wù),通過服務(wù)器更新維護(hù)云存儲文件系統(tǒng)。數(shù)據(jù)容錯恢復(fù)模塊根據(jù)關(guān)停的公有云檢測出哪些文件的校驗(yàn)塊少于M塊,把根據(jù)檢測到的這些文件的校驗(yàn)塊信息,從中讀取N個校驗(yàn)塊信息。根據(jù)選出的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息到對應(yīng)的N個公有云存儲系統(tǒng)中下載這N個校驗(yàn)塊。根據(jù)這N個校驗(yàn)塊生成缺失的X個校驗(yàn)塊,給這X個校驗(yàn)塊分配X家未使用的正常運(yùn)行的公有云的URL地址。根據(jù)URL地址把這X個校驗(yàn)塊上傳到X家公有云。全部上傳成功后,數(shù)據(jù)容錯恢復(fù)模塊把X個校驗(yàn)塊信息寫入到服務(wù)器的存儲系統(tǒng)中的對應(yīng)文件的存儲元數(shù)據(jù)信息中,對這個文件的存儲元數(shù)據(jù)信息進(jìn)行更新。
進(jìn)一步地,上傳方法包括以下步驟:
步驟1,上傳文件:用戶在客戶端上傳本地文件。
步驟2,文件編碼分塊:上傳的文件通過編碼模塊選擇N+M的方式生成M個校驗(yàn)塊,其中,N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。
步驟3,客戶端向服務(wù)器發(fā)送上傳請求:客戶端向服務(wù)器發(fā)送上傳請求,請求信息包含要上傳的文件的初始元數(shù)據(jù)信息和編碼方式。
步驟4,服務(wù)器端生成文件的存儲元數(shù)據(jù)信息:系統(tǒng)檢測到客戶端上傳請求,根據(jù)請求攜帶的文件相關(guān)信息在服務(wù)器端生成此文件的存儲元數(shù)據(jù)信息并且分配M個帶有簽名認(rèn)證的URL地址。
步驟5,服務(wù)器端發(fā)送分配的URL地址信息給客戶端。
步驟6,客戶端上傳M個校驗(yàn)塊到M個公有云:客戶端根據(jù)服務(wù)器端分配的M個URL地址把M個校驗(yàn)塊上傳到對應(yīng)公有云上。
步驟7,公有云返回存儲成功信息給客戶端:公有云存儲成功,返回成功信息給客戶端。
步驟8,客戶端發(fā)送上傳成功的信息給服務(wù)器端:當(dāng)所有的公有云都返回上傳成功的信息后,客戶端發(fā)送給服務(wù)器端上傳成功的信息。
步驟9,服務(wù)器端保存上傳的文件的存儲元數(shù)據(jù)信息:服務(wù)器收到客戶端成功上傳的信息后,把步驟4生成的此文件的存儲元數(shù)據(jù)信息存儲到服務(wù)器端的存儲系統(tǒng)中。
進(jìn)一步地,下載方法包括以下步驟:
步驟1,客戶端發(fā)送下載請求:用戶在客戶端發(fā)送下載文件的請求,請求信息包括要下載的文件名。
步驟2,服務(wù)器接收客戶端的請求并進(jìn)行預(yù)處理:服務(wù)器接收到客戶端的下載請求,根據(jù)文件名在服務(wù)器端的云存儲系統(tǒng)中讀取該文件的存儲元數(shù)據(jù)信息,包括N個校驗(yàn)塊信息及對應(yīng)的URL地址。
步驟3,服務(wù)器發(fā)送此文件的存儲元數(shù)據(jù)信息給客戶端。
步驟4,客戶端接收要下載文件的存儲元數(shù)據(jù)信息,所述存儲元數(shù)據(jù)信息含有N個帶簽名認(rèn)證的URL地址。
步驟5,客戶端下載校驗(yàn)塊:客戶端根據(jù)接收到的N個帶簽名認(rèn)證的URL地址從N個公有云中下載N個校驗(yàn)塊。
步驟6,文件解碼完成下載:客戶端根據(jù)下載的N個校驗(yàn)塊通過解碼模塊進(jìn)行解碼把N個校驗(yàn)塊整合成一個完整的文件。此時客戶端就完成了文件下載的整個過程。
進(jìn)一步地,刪除方法包括以下步驟:
步驟1,客戶端提出刪除請求:用戶在客戶端提出刪除某文件的請求。
步驟2,客戶端發(fā)送刪除請求:客戶端發(fā)送刪除請求及要刪除的文件名給服務(wù)器。
步驟3,服務(wù)器接收到客戶端的刪除請求。
步驟4,服務(wù)器根據(jù)客戶端發(fā)送來的文件名在服務(wù)器端的云存儲系統(tǒng)中查找到文件的存儲元數(shù)據(jù)信息。
步驟5,服務(wù)器向M個公有云發(fā)送刪除命令:服務(wù)器根據(jù)元數(shù)據(jù)信息中的M個帶簽名認(rèn)證的URL向M個公有云發(fā)送刪除命令。
步驟6,公有云反饋刪除成功信息給服務(wù)器。
步驟7,服務(wù)器發(fā)送刪除成功信息給客戶端:M個公有云都返回刪除成功的信息后服務(wù)器發(fā)送刪除成功的信息給客戶端。同時公有云都返回刪除成功的信息后,服務(wù)器端把該文件對應(yīng)的存儲元數(shù)據(jù)信息刪除。
本發(fā)明相比現(xiàn)有技術(shù),具有以下有益效果:
一、安全性問題解決方案
針對安全性問題,本發(fā)明提供了兩種安全性保障:
1、客戶端與公有云交互過程中數(shù)據(jù)的安全性保障
云上云技術(shù)通過算法生成M個校驗(yàn)塊存儲到M個不同的公有云上,一家公有云提供方不可能根據(jù)一個校驗(yàn)塊得到完整的數(shù)據(jù)信息。這樣就規(guī)避了存儲在公有云上的用戶數(shù)據(jù)泄露的風(fēng)險。
2、服務(wù)器端與客戶端交互過程中數(shù)據(jù)的安全性保障
云上云技術(shù)通過數(shù)據(jù)在客戶端通過公鑰和私鑰對的形式對數(shù)據(jù)進(jìn)行加密,而私鑰數(shù)據(jù)存放在客戶端的配置文件中,服務(wù)器端沒有,這樣就保證了客戶數(shù)據(jù)的安全性。
二、可靠性問題解決方案
云上云的可靠性體現(xiàn)在即使關(guān)停幾家也不會對數(shù)據(jù)造成很大的影響。
實(shí)現(xiàn)原理:
如果以N+M(M>N)方式存儲數(shù)據(jù),校驗(yàn)塊存儲在不同的公有云,即使M-N家停止服務(wù)也不會影響校驗(yàn)塊恢復(fù)成原始數(shù)據(jù)。
云上云可靠性效果:
所有的維護(hù)工作都是在服務(wù)器端進(jìn)行,即使出現(xiàn)一些公有云停止服務(wù)的現(xiàn)象客戶端也感覺不到,這樣就保證了用戶在使用的時候有很好的用戶體驗(yàn)。
此方案保證了即使M-N家公有云同時停止服務(wù)也不會影響校驗(yàn)塊的恢復(fù)(事實(shí)上M-N家同時停止服務(wù)的可能性幾率是很小的,但是即使發(fā)生這樣惡劣的情況此方案亦可保證存儲在云上云的文件不會丟失)。
三、性價比問題解決方案
云上云的底層存儲是多家公有云,云上云的費(fèi)用管理系統(tǒng)會根據(jù)不同公有云的存儲量,流量,帶寬價格等進(jìn)行綜合比較進(jìn)行數(shù)據(jù)存儲配置,這樣達(dá)到最優(yōu)的性價比,由此提供的云上云的存儲服務(wù)當(dāng)然也具備高性價比。
四、調(diào)度問題解決方案
云上云服務(wù)器端的云存儲系統(tǒng)存的是元數(shù)據(jù)信息,云上云的云存儲系統(tǒng)搭建成一個小型云就完全可以滿足海量的數(shù)據(jù)存儲,并且小型云存儲系統(tǒng)還可以進(jìn)行增量擴(kuò)展。這樣搭建小型云的成本比起大型的數(shù)據(jù)中心要小得多。小型云可以根據(jù)不同公有云的地理位置、網(wǎng)絡(luò)狀況等進(jìn)行搭建,從而達(dá)到優(yōu)化調(diào)度。
綜上所述,本發(fā)明安全性高、可靠性好、性價比高以及調(diào)度靈活性好。
附圖說明
圖1是本發(fā)明的物理架構(gòu)的圖示。
圖2是本發(fā)明的功能模塊圖。
圖3是本發(fā)明解決數(shù)據(jù)可靠性情景一的圖解。
圖4是本發(fā)明解決數(shù)據(jù)可靠性情景二的圖解。
圖5是本發(fā)明上傳文件的時序圖。
圖6是本發(fā)明下載文件的時序圖。
具體實(shí)施方式
附圖非限制性地公開了本發(fā)明一個優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖,以下將結(jié)合附圖詳細(xì)地說明本發(fā)明的技術(shù)方案。
實(shí)施例
一種基于公有云的安全可靠的公有云存儲系統(tǒng),簡稱云上云,云上云底層的存儲是搭建在多家不同的公有云存儲系統(tǒng)之上,而云上云的服務(wù)器本身也是一個云存儲系統(tǒng)。云上云對外提供接口給用戶使用。底層對普通用戶來說是不可見的,用戶在使用云上云時和普通的公有云一樣方便。只是使用了云上云,用戶的數(shù)據(jù)會更加的安全、可靠。包括客戶端、多家公有云和服務(wù)器,服務(wù)器僅負(fù)責(zé)存儲文件的元數(shù)據(jù)信息以及對外提供公有云存儲服務(wù),多家公有云則存儲實(shí)際的文件數(shù)據(jù),客戶端調(diào)用服務(wù)器的公有云存儲服務(wù),服務(wù)器的底層對客戶端不可見。
如圖3、4所示:所述客戶端包括編碼模塊、解碼模塊、服務(wù)器交互模塊、公有云交互模塊,其中:
編碼模塊,負(fù)責(zé)對用戶要上傳文件的原始數(shù)據(jù)選擇N+M的方式生成M個校驗(yàn)塊,生成校驗(yàn)塊時,可以采用EC算法生成,其中,N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。并根據(jù)分成的校驗(yàn)塊生成初始元數(shù)據(jù)信息。
解碼模塊,負(fù)責(zé)對用戶從公有云下載下來的校驗(yàn)塊的解碼并整合恢復(fù)成原始數(shù)據(jù)。
服務(wù)器交互模塊,負(fù)責(zé)調(diào)用服務(wù)器的公有云存儲服務(wù),主要包括向服務(wù)器發(fā)送上傳請求,所述上傳請求包括要上傳文件的初始元數(shù)據(jù)信息,接收服務(wù)器根據(jù)初始元數(shù)據(jù)信息反饋的存儲元數(shù)據(jù)信息,以及向服務(wù)器發(fā)送下載請求。
公有云交互模塊,負(fù)責(zé)把編碼模塊生成的校驗(yàn)塊根據(jù)存儲元數(shù)據(jù)信息分別上傳到公有云,以及根據(jù)存儲元數(shù)據(jù)信息分別下載對應(yīng)的公有云上的校驗(yàn)塊到客戶端。
如圖3、4所示:所述服務(wù)器包括文件系統(tǒng)管理模塊、公有云存儲管理調(diào)度模塊、數(shù)據(jù)容錯恢復(fù)模塊、客戶端接口模塊,其中:
文件系統(tǒng)管理模塊,負(fù)責(zé)存儲文件的存儲元數(shù)據(jù)信息。
公有云存儲管理調(diào)度模塊,負(fù)責(zé)底層多家公有云的管理,根據(jù)初始元數(shù)據(jù)信息為所述客戶端上傳文件所需要的M家公有云的URL地址的分配,將初始元數(shù)據(jù)信息和其對應(yīng)的URL地址合成為存儲元數(shù)據(jù)信息。公有云存儲管理調(diào)度模塊用于檢測公有云的服務(wù)狀況。
數(shù)據(jù)容錯恢復(fù)模塊,負(fù)責(zé)底層公有云服務(wù)情況的容錯恢復(fù)處理。若公有云存儲管理調(diào)度模塊檢測有X家公有云發(fā)布臨時停止服務(wù)的消息,X小于N,數(shù)據(jù)容錯恢復(fù)模塊更新維護(hù)服務(wù)器端的文件系統(tǒng)信息(把不能用的X家公有云的存儲的校驗(yàn)塊的信息狀態(tài)改為不可用),在服務(wù)器端接收客戶端對文件的請求時先讀取文件校驗(yàn)塊的狀態(tài)信息,選擇狀態(tài)為可用的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息(帶簽名認(rèn)證的URL地址信息)返回給客戶端,公有云存儲管理調(diào)度模塊發(fā)現(xiàn)臨時停止服務(wù)的公有云恢復(fù)正常服務(wù),數(shù)據(jù)容錯恢復(fù)模塊更新維護(hù)服務(wù)器端云存儲文件系統(tǒng)(把這X家的公有云的校驗(yàn)塊的信息狀態(tài)由不可用改為可用)。
若公有云存儲管理調(diào)度模塊檢測到有X家公有云關(guān)停服務(wù),服務(wù)器更新維護(hù)云存儲文件系統(tǒng)。數(shù)據(jù)容錯恢復(fù)模塊根據(jù)關(guān)停的公有云檢測出哪些文件的校驗(yàn)塊少于M塊,把根據(jù)檢測到的這些文件的校驗(yàn)塊信息,從中讀取N個校驗(yàn)塊信息。根據(jù)選出的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息到對應(yīng)的N個公有云存儲系統(tǒng)中下載這N個校驗(yàn)塊。根據(jù)這N個校驗(yàn)塊生成缺失的X個校驗(yàn)塊,給這X個校驗(yàn)塊分配X家未使用的正常運(yùn)行的公有云的URL地址。根據(jù)URL地址把這X個校驗(yàn)塊上傳到X家公有云。全部上傳成功后,數(shù)據(jù)容錯恢復(fù)模塊把X個校驗(yàn)塊信息寫入到服務(wù)器的存儲系統(tǒng)中的對應(yīng)文件的存儲元數(shù)據(jù)信息中,對這個文件的存儲元數(shù)據(jù)信息進(jìn)行更新。
多家公有云負(fù)責(zé)存儲實(shí)際的數(shù)據(jù)塊。主要用于存儲客戶端根據(jù)存儲元數(shù)據(jù)信息上傳的校驗(yàn)塊。
所述客戶端還設(shè)置有GnuPG加密程序,所述GnuPG加密程序用于將客戶端上傳的本地文件進(jìn)行加密,生成公鑰和私鑰對。將加密后的文件發(fā)送給EC算法模塊生成M個校驗(yàn)塊。而私鑰存儲在客戶端的配置文件中。
客戶端從公有云下載已經(jīng)加密過的文件。GnuPG加密程序通過私鑰對文件進(jìn)行解密得到原文件。
所述客戶端用于提出刪除文件的請求,并發(fā)送刪除請求及要刪除的文件名給服務(wù)器。接收服務(wù)器發(fā)送的刪除成功信息。
所述服務(wù)器用于接收到客戶端的刪除請求和要刪除的文件名,根據(jù)客戶端發(fā)送來的要刪除的文件名在服務(wù)器端的云存儲系統(tǒng)中查找到該文件的存儲元數(shù)據(jù)信息,服務(wù)器根據(jù)存儲元數(shù)據(jù)信息中的M個帶簽名認(rèn)證的URL向器對應(yīng)的M個公有云發(fā)送刪除命令。服務(wù)器接收成功刪除信息,且M個公有云都返回刪除成功的信息后服務(wù)器發(fā)送刪除成功的信息給客戶端。同時公有云都返回刪除成功的信息后,服務(wù)器端把該文件對應(yīng)的存儲元數(shù)據(jù)信息刪除。
公有云用于執(zhí)行服務(wù)器發(fā)送的刪除命令,并反饋刪除成功信息給服務(wù)器。
另外,服務(wù)器有用戶管理認(rèn)證模塊,負(fù)責(zé)用戶的注冊、登錄認(rèn)證等用戶管理,服務(wù)器有客戶端接口模塊,負(fù)責(zé)為所述客戶端提供公有云存儲服務(wù);客戶端有用戶接口模塊,用戶可以通過用戶接口進(jìn)行相關(guān)操作。
一種基于公有云的安全可靠的公有云存儲系統(tǒng)的架構(gòu)方法,包括服務(wù)器、多家公有云和客戶端,服務(wù)器僅負(fù)責(zé)存儲文件的元數(shù)據(jù)信息以及對外提供公有云存儲服務(wù),多家公有云則存儲實(shí)際的文件數(shù)據(jù),客戶端只負(fù)責(zé)調(diào)用服務(wù)器的公有云存儲服務(wù),服務(wù)器的底層對客戶端不可見,由此構(gòu)建出底層為多家公有云的公有云存儲系統(tǒng)。
優(yōu)選的:客戶端包括編碼模塊、解碼模塊、服務(wù)器交互模塊、公有云交互模塊,服務(wù)器包括文件系統(tǒng)管理模塊、公有云存儲管理調(diào)度模塊、數(shù)據(jù)容錯恢復(fù)模塊、客戶端接口模塊,其中:
通過編碼模塊對用戶要上傳文件的原始數(shù)據(jù)選擇N+M的方式生成M個校驗(yàn)塊,其中,N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。并根據(jù)分成的校驗(yàn)塊生成初始元數(shù)據(jù)信息。
通過服務(wù)器交互模塊向服務(wù)器發(fā)送上傳請求,所述上傳請求包括要上傳文件的初始元數(shù)據(jù)信息。
通過公有云存儲管理調(diào)度模塊根據(jù)初始元數(shù)據(jù)信息為所述客戶端上傳文件分配所需要的M家公有云的URL地址,將初始元數(shù)據(jù)信息和其對應(yīng)的URL地址合成為存儲元數(shù)據(jù)信息,并將該存儲元數(shù)據(jù)信息反饋給服務(wù)器交互模塊,同時將該存儲元數(shù)據(jù)信息發(fā)送給文件系統(tǒng)管理模塊進(jìn)行存儲。
通過公有云交互模塊把編碼模塊生成的校驗(yàn)塊根據(jù)存儲元數(shù)據(jù)信息分別上傳到對應(yīng)的公有云。
多家公有云用于存儲客戶端上傳的校驗(yàn)塊。
通過公有云存儲管理調(diào)度模塊用于檢測公有云的服務(wù)狀況。更加公有云的服務(wù)狀況,通過數(shù)據(jù)容錯恢復(fù)模塊進(jìn)行容錯恢復(fù)處理。
通過客戶端的服務(wù)器交互模塊向服務(wù)器發(fā)送下載請求,服務(wù)器的文件系統(tǒng)管理模塊根據(jù)下載請求將下載請求中對應(yīng)的存儲元數(shù)據(jù)信息發(fā)送給客戶端。公有云交互模塊根據(jù)存儲元數(shù)據(jù)信息分別下載對應(yīng)的公有云上的校驗(yàn)塊到客戶端,通過解碼模塊將用戶從公有云下載下來的校驗(yàn)塊的解碼并整合恢復(fù)成原始數(shù)據(jù)。
其可靠性方法如下:若公有云存儲管理調(diào)度模塊檢測有X家公有云發(fā)布臨時停止服務(wù)的消息,X小于N,通過數(shù)據(jù)容錯恢復(fù)模塊把不能用的X家公有云的存儲的校驗(yàn)塊的信息狀態(tài)改為不可用,在服務(wù)器端接收客戶端對文件的請求時先讀取文件校驗(yàn)塊的狀態(tài)信息,選擇狀態(tài)為可用的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息返回給客戶端,公有云存儲管理調(diào)度模塊發(fā)現(xiàn)臨時停止服務(wù)的公有云恢復(fù)正常服務(wù),數(shù)據(jù)容錯恢復(fù)模塊把恢復(fù)正常服務(wù)的公有云的校驗(yàn)塊的信息狀態(tài)由不可用改為可用。
若公有云存儲管理調(diào)度模塊檢測到有X家公有云關(guān)停服務(wù),通過服務(wù)器更新維護(hù)云存儲文件系統(tǒng)。數(shù)據(jù)容錯恢復(fù)模塊根據(jù)關(guān)停的公有云檢測出哪些文件的校驗(yàn)塊少于M塊,把根據(jù)檢測到的這些文件的校驗(yàn)塊信息,從中讀取N個校驗(yàn)塊信息。根據(jù)選出的N個校驗(yàn)塊的存儲元數(shù)據(jù)信息到對應(yīng)的N個公有云存儲系統(tǒng)中下載這N個校驗(yàn)塊。根據(jù)這N個校驗(yàn)塊生成缺失的X個校驗(yàn)塊,給這X個校驗(yàn)塊分配X家未使用的正常運(yùn)行的公有云的URL地址。根據(jù)URL地址把這X個校驗(yàn)塊上傳到X家公有云。全部上傳成功后,數(shù)據(jù)容錯恢復(fù)模塊把X個校驗(yàn)塊信息寫入到服務(wù)器的存儲系統(tǒng)中的對應(yīng)文件的存儲元數(shù)據(jù)信息中,對這個文件的存儲元數(shù)據(jù)信息進(jìn)行更新。
上傳方法,如圖5所示,包括以下步驟:
步驟1,上傳文件:用戶在客戶端上傳本地文件。
步驟2,文件編碼分塊:上傳的文件用EC算法,選擇N+M的方式生成M個校驗(yàn)塊,其中,N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。
步驟3,客戶端向服務(wù)器發(fā)送上傳請求:客戶端向服務(wù)器發(fā)送上傳請求,信息包含要上傳的文件的初始元數(shù)據(jù)信息和分塊信息。
步驟4,服務(wù)器端生成文件的存儲元數(shù)據(jù)信息:系統(tǒng)檢測到客戶端上傳請求,根據(jù)請求攜帶的文件相關(guān)信息在服務(wù)器端生成此文件的存儲元數(shù)據(jù)信息并且分配出M個帶有簽名認(rèn)證的URL。
步驟5,服務(wù)器端發(fā)送分配的URL信息給客戶端。
步驟6,客戶端上傳M個校驗(yàn)塊到M個公有云:客戶端根據(jù)服務(wù)器端分配的M個URL把M個校驗(yàn)塊上傳到對應(yīng)公有云上。
步驟7,公有云返回存儲成功信息給客戶端:公有云存儲成功,返回成功信息給客戶端。
步驟8,客戶端發(fā)送上傳成功的信息給服務(wù)器端:當(dāng)所有的公有云都返回上傳成功的信息后,客戶端發(fā)送給服務(wù)器端上傳成功的信息。
步驟9,服務(wù)器端保存上傳的文件的存儲元數(shù)據(jù)信息:服務(wù)器收到客戶端成功上傳的信息后,把步驟4生成的此文件的存儲元數(shù)據(jù)信息存儲到服務(wù)器端的云存儲系統(tǒng)中。
下載方法,如圖6所示,包括以下步驟:
步驟1,客戶端提出下載請求:用戶在客戶端提出下載某文件的請求。
步驟2,客戶端發(fā)送下載請求:客戶端發(fā)送下載請求及要下載的文件名給服務(wù)器。
步驟3,服務(wù)器接收客戶端的請求并進(jìn)行預(yù)處理:服務(wù)器接收到客戶端的下載請求,根據(jù)文件名在服務(wù)器端的云存儲系統(tǒng)中讀取該文件的存儲元數(shù)據(jù)信息,包括N個校驗(yàn)塊信息及對應(yīng)的URL信息。
步驟4,服務(wù)器發(fā)送此文件的存儲元數(shù)據(jù)信息給客戶端。
步驟5,客戶端接收要下載文件的存儲元數(shù)據(jù)信息,所述存儲元數(shù)據(jù)信息含有N個帶簽名認(rèn)證的URL。
步驟6,客戶端下載校驗(yàn)塊:客戶端根據(jù)接收到的N個帶簽名認(rèn)證的URL從公有云存儲系統(tǒng)中下載N個校驗(yàn)塊。
步驟7,文件解碼完成下載:客戶端根據(jù)下載的N個校驗(yàn)塊根據(jù)EC算法進(jìn)行解碼把N個校驗(yàn)塊整合成一個完整的文件。此時客戶端就完成了文件下載的整個過程。
刪除文件方法,包括以下步驟:
步驟1,客戶端提出刪除請求:用戶在客戶端提出刪除某文件的請求。
步驟2,客戶端發(fā)送刪除請求:客戶端發(fā)送刪除請求及要刪除的文件名給服務(wù)器。
步驟3,服務(wù)器接收到客戶端的刪除請求。
步驟4,服務(wù)器根據(jù)客戶端發(fā)送來的文件名在服務(wù)器端的云存儲系統(tǒng)中查找到文件的存儲元數(shù)據(jù)信息。
步驟5,服務(wù)器向M個公有云發(fā)送刪除命令:服務(wù)器根據(jù)元數(shù)據(jù)信息中的M個帶簽名認(rèn)證的URL向M個公有云發(fā)送刪除命令。
步驟6,公有云反饋刪除成功信息給服務(wù)器。
步驟7,服務(wù)器發(fā)送刪除成功信息給客戶端:M個公有云都返回刪除成功的信息后服務(wù)器發(fā)送刪除成功的信息給客戶端。同時公有云都返回刪除成功的信息后,服務(wù)器端把該文件對應(yīng)的存儲元數(shù)據(jù)信息刪除。
解決數(shù)據(jù)可靠性的方法
前提:客戶端選擇N+M的方式已經(jīng)把M個校驗(yàn)塊分別上傳到M家公有云存儲系統(tǒng)上了。
情景1(如圖3):
有一個或多個公有云因?yàn)榫S護(hù)等原因臨時停止服務(wù)(臨時停止服務(wù)的公有云要少于M-N家)。
包含以下步驟:
步驟1,服務(wù)器端公有云后臺管理模塊發(fā)現(xiàn)有公有云發(fā)布臨時停止服務(wù)的消息。
步驟2,服務(wù)器端更新維護(hù)服務(wù)器端云存儲文件系統(tǒng)(把不能用的公有云的存儲的校驗(yàn)塊的信息狀態(tài)改為不可用)。
步驟3,服務(wù)器端接收客戶端對文件的請求時先讀取文件校驗(yàn)塊的狀態(tài)信息,選擇狀態(tài)為可用N個校驗(yàn)塊相關(guān)信息(帶簽名認(rèn)證的URL信息)返回給客戶端。
步驟4,服務(wù)器端公有云后臺管理模塊發(fā)現(xiàn)臨時停止服務(wù)的公有云恢復(fù)正常服務(wù)。
步驟5,服務(wù)器端更新維護(hù)服務(wù)器端云存儲文件系統(tǒng)(把相關(guān)在公有云的校驗(yàn)塊的信息狀態(tài)由不可用改為可用)。
情景2(如圖4):
有一個或多個公有云關(guān)停服務(wù)。(同時關(guān)停服務(wù)的公有云要少于M-N家)。
如圖2所示,包含以下步驟:
步驟1,服務(wù)器端公有云后臺管理模塊發(fā)現(xiàn)有X家公有云關(guān)停服務(wù)。
步驟2,服務(wù)器端更新維護(hù)服務(wù)器端云存儲文件系統(tǒng)(把不能用的公有云的URL校驗(yàn)塊的信息刪除掉,保證在分配給客戶端時的N個帶簽名認(rèn)證的URL都是可用的)。
步驟3,服務(wù)器端維護(hù)服務(wù)器端云存儲文件系統(tǒng),檢測出哪些文件的校驗(yàn)塊少于M塊。
步驟4,服務(wù)器端把根據(jù)檢測到的這些文件的校驗(yàn)塊信息,從中讀取N個校驗(yàn)塊信息。
步驟5,服務(wù)器端根據(jù)選出的N個校驗(yàn)塊的帶簽名認(rèn)證的URL到對應(yīng)的N個公有云存儲系統(tǒng)中下載這N個校驗(yàn)塊。
步驟6,服務(wù)器端根據(jù)這N個校驗(yàn)塊生成缺失的X個校驗(yàn)塊。
步驟7,服務(wù)器端給這X個校驗(yàn)塊分配X家公有云的帶簽名認(rèn)證的URL信息,這X家公有云應(yīng)該是這個文件里現(xiàn)存的正常校驗(yàn)塊沒有用過的正常的公有云。
步驟8,服務(wù)器端把這X個校驗(yàn)塊上傳到X家公有云。
步驟9,全部上傳成功后,服務(wù)器端把X個校驗(yàn)塊信息寫入到服務(wù)器端的云存儲文件系統(tǒng)中的對應(yīng)文件的元數(shù)據(jù)信息中,對這個文件的元數(shù)據(jù)信息進(jìn)行更新。
說明:
云上云底層不依賴于某一家公有云,底層的公有云中除了正常投入使用的幾家,還會有一定數(shù)目的公有云用來應(yīng)對萬一發(fā)生的幾家同時關(guān)停服務(wù)的情況。
在備用的公有云投入使用后會再選另外的公有云用來應(yīng)對極端情況,總之會維持一定數(shù)目的使用和備用的公有云數(shù)目。
解決數(shù)據(jù)安全性的方法
在客戶端本地的文件經(jīng)加密之后上傳服務(wù)器端和公有云都無法得到原文件,保障了用戶數(shù)據(jù)的絕對安全。
包含以下兩個角度說明:
1、客戶端與公有云交互過程中數(shù)據(jù)的安全性保障,包含以下步驟:
步驟1,客戶端上傳本地文件。
步驟2,本地文件選擇N+M的方式進(jìn)行編碼,利用EC(Erasure Code)算法生成M個校驗(yàn)塊。
步驟3,客戶端把M個校驗(yàn)塊分別上傳到M家公有云存儲系統(tǒng)上。
說明:
N是指恢復(fù)文件的最少校驗(yàn)塊,M是指生成的校驗(yàn)塊數(shù)目。
如果想要得到這個上傳的文件必須得到至少N個校驗(yàn)塊再通過EC(Erasure Code)算法解碼才能夠得到。所以一家公有云僅有一個校驗(yàn)塊不可能得到這個文件,由此達(dá)到了防止數(shù)據(jù)泄露的風(fēng)險。
2、服務(wù)器端與客戶端交互過程中數(shù)據(jù)的安全性保障,包含以下步驟:
步驟1,客戶端上傳文件。
步驟2,上傳的文件用GnuPG加密程序進(jìn)行加密,生成公鑰和私鑰對。
步驟3,加密后的文件再進(jìn)行下一步的處理(利用EC(Erasure Code)算法編碼等后續(xù)步驟),私鑰存儲在客戶端的配置文件中。
步驟4,客戶端從公有云下載已經(jīng)加密過的文件。
步驟5,客戶端通過私鑰對文件進(jìn)行解密得到原文件。
說明:
對密級較高的文件采用這種加密方式,私鑰以配置文件形式存儲在用戶那里,云上云服務(wù)器端也是無法讀取用戶加密后的文件的。
上面結(jié)合附圖所描述的本發(fā)明優(yōu)選具體實(shí)施例僅用于說明本發(fā)明的實(shí)施方式,而不是作為對前述發(fā)明目的和所附權(quán)利要求內(nèi)容和范圍的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所做的任何簡單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)和權(quán)利保護(hù)范疇。