鮑禹含,付印金,2,陳衛(wèi)衛(wèi)
(1.陸軍工程大學 指揮控制工程學院,南京 210001; 2.軍事科學院 系統(tǒng)工程研究院,北京 100039)
云存儲是利用集群計算、虛擬化、效用計算和分布式文件系統(tǒng)等技術將網(wǎng)絡中大量不同類型的存儲設備通過應用軟件集合起來協(xié)同工作,共同對外提供在線數(shù)據(jù)存儲和業(yè)務訪問功能的系統(tǒng)[1]。用戶可隨時通過網(wǎng)絡連接按需使用云端存儲資源[2],不僅在數(shù)據(jù)管理和維護上更為便捷,還能較好地解決本地存儲自身的不可擴容、不方便攜帶、數(shù)據(jù)丟失恢復困難等問題。然而,隨著云存儲的發(fā)展與廣泛應用,傳統(tǒng)單一云存儲服務固有的缺陷逐漸暴露出來[3]。首先,企業(yè)和用戶會遇到供應商鎖定問題,過分依賴于單一供應商的產(chǎn)品和服務,在不產(chǎn)生大量切換成本的情況下無法進行靈活遷移。其次,企業(yè)和用戶將數(shù)據(jù)全部交給一個供應商保管,失去對數(shù)據(jù)的控制權,若供應商內部人員出現(xiàn)問題,很容易獲取用戶的所有信息,數(shù)據(jù)隱私泄漏在所難免。再次,若供應商停止服務或遭遇故障,客戶將面臨數(shù)據(jù)全部丟失的風險,造成不可挽回的經(jīng)濟損失。此外,智能終端設備迅猛發(fā)展,對數(shù)據(jù)處理時延和網(wǎng)絡帶寬的需求越來越高,單云存儲很難滿足在線實時應用的需求。通過多個云存儲提供商進行對等協(xié)作服務,能夠較容易地解決以上問題。
多云協(xié)作服務思想為企業(yè)提供云計算模式。2008年,Cisco公司提出Inter-Cloud[4],試圖通過使用其他云服務提供者的計算、存儲或其他任意類型的資源,解決單一云服務提供者物理資源有限或地理上難以實現(xiàn)無處不在的覆蓋等所帶來的服務質量問題。2013年,Multi-Cloud概念被提出[5],旨在通過更多云服務提供者共存的軟硬件基礎設施冗余優(yōu)化容錯能力,降低云用戶數(shù)據(jù)丟失或云計算環(huán)境中局部構件失效所引起的宕機等情況下產(chǎn)生的服務中斷風險,提高性能,避免云平臺鎖定。2015年,歐盟開展SuperCloud項目研究[6],強調以用戶為中心,試圖跨多個云服務提供者構建全套透明的計算、存儲和數(shù)據(jù)通信服務,權衡安全性、可用性、成本開銷和處理突發(fā)負載等因素。Federated Cloud項目[7]在多個未建立信任關系的云服務提供者之間,通過部署和管理多個內外部云計算服務來匹配業(yè)務需求,支持若干個獨立云平臺合作完成一個目標任務。另外,Cloud Service Broker[8]為云服務提供者與云服務消費者提供咨詢、集成和協(xié)商談判服務,不僅可通過對云服務提供者的服務集成與定制,為云服務消費者提供更優(yōu)質的云服務,還可通過創(chuàng)新渠道和市場機會,為云服務提供者增長銷量。國內王懷民院士團隊近年提出的云際計算(JointCloud Computing)概念[9]是以多個云服務實體之間開放協(xié)作為基礎,通過多方云資源深度融合,方便開發(fā)者通過“軟件定義”方式定制云服務,創(chuàng)造云價值的新一代云計算模式。
隨著多云協(xié)作計算模式的發(fā)展,多云存儲成為圍繞多個云存儲服務進行協(xié)作的新一代云存儲技術。國內外學術界和工業(yè)界的學者已經(jīng)對多云存儲開展大量研究,并取得較多研究成果。本文主要介紹多云存儲技術的概念、系統(tǒng)架構、優(yōu)勢以及主要技術挑戰(zhàn),并分析和總結多云存儲中4項關鍵技術的國內外研究現(xiàn)狀。
多云存儲通過代理將多個供應商的不同云存儲服務虛擬化聯(lián)合管理,實現(xiàn)統(tǒng)一存取、性能調優(yōu)、安全可靠等一系列功能,以此來降低存儲成本、提高效率,最大化地挖掘數(shù)據(jù)價值,保證高可用的業(yè)務連續(xù)性。在部署上既可以使用物理/虛擬的公有云或私有云進行部署,也可以實現(xiàn)兩者的混合部署。多云存儲能很好地改善單云存儲存在的供應商鎖定、數(shù)據(jù)丟失、隱私保護、性能瓶頸等方面的局限性。
目前,國內外學者已提出了多種多云存儲系統(tǒng)架構,依據(jù)存儲代理布局差異,本文將其大致分為集中式代理架構和地理分布式代理架構。多云存儲集中式代理架構如圖1所示。為能夠統(tǒng)一協(xié)調優(yōu)化所有用戶的數(shù)據(jù),并確保數(shù)據(jù)隱私安全,通常將多云存儲代理部署在本地或私有云等可信任的位置,連接用戶和不可信的各大云存儲供應商。該系統(tǒng)大致分為數(shù)據(jù)處理層、選取存儲策略層以及數(shù)據(jù)庫層3個部分。數(shù)據(jù)處理層負責對用戶上傳的數(shù)據(jù)進行分塊、加密、重刪等操作;選取存儲策略層負責根據(jù)實際情況和不同策略計算出數(shù)據(jù)最佳存儲策略;數(shù)據(jù)庫層負責存儲元數(shù)據(jù)以及緩存熱數(shù)據(jù)。SafeStore[10]、NCCloud[11]、Hybris[12]、StoreSim[13]、F2MC[14]等都屬于集中式代理架構。
圖1 多云存儲集中式代理架構Fig.1 Centralized agent architecture of multi-cloud storage
海量數(shù)據(jù)迅速增長和地理位置分散的特點,使得集中式架構中負載集中和遠距離傳輸?shù)娜毕轁u漸暴露出來,越來越高的響應延遲導致一個中心代理無法滿足用戶對性能的需求,因此,地理分布式代理架構應運而生。根據(jù)代理功能布局差異,本文將多云存儲的地理分布式代理架構分為半集中式代理架構和分散式代理架構。多云存儲半集中式架構如圖2所示,根據(jù)地理位置部署多個代理系統(tǒng),每個多云代理系統(tǒng)幫助管理分發(fā)其附近用戶的數(shù)據(jù)到各大云供應商,各代理間通過中心協(xié)調服務統(tǒng)一協(xié)調傳遞信息,保持數(shù)據(jù)一致性。半集中式代理架構相比集中式代理架構具有更好的擴展性,且對地理分散的用戶依然能保持良好的性能。RACS[15]、SPANStore[16]等都屬于半集中式代理架構。
圖2 多云存儲半集中式代理架構Fig.2 Semi-centralized agent architecture of multi-cloud storage
然而,半集中式架構隨著數(shù)據(jù)量的進一步增長依然會面臨中心協(xié)調服務的性能瓶頸,去中心化的分散式架構顯然有更好的發(fā)展前景。多云存儲分散式架構如圖3所示,按地理位置部署多云存儲代理系統(tǒng),同時為每個代理附加協(xié)調器組件,協(xié)調器定期交換狀態(tài),無需中央控制。MetaStorage[17]屬于分散式代理架構。
圖3 多云存儲分散式代理架構Fig.3 Decentralized agent architecture of multi-cloud storage
上述3種多云存儲架構在管理難度、地理范圍和擴展性方面各有不同。如表1所示,多云存儲集中式代理架構方便管理文件元數(shù)據(jù)信息,但不適合地域跨度大的多云部署,擴展性差。而地理分布式代理架構方便用戶訪問最近的副本數(shù)據(jù),減少時間延遲和帶寬資源,但同時保持數(shù)據(jù)一致性變得更加困難。
表1 多云存儲架構對比分析Table 1 Comparative analysis of multi-cloud storage architecture
多云存儲技術對于海量數(shù)據(jù)的迅猛增長具有更好的擴展性和靈活性,單云存儲的固有缺陷也在多云存儲技術的應用中得到解決,越來越多的企業(yè)和用戶傾向于選擇多云服務來存儲數(shù)據(jù)。多云存儲技術的優(yōu)勢主要有以下6個方面:
1)業(yè)務連續(xù)性
采用多云存儲能夠實現(xiàn)單個云供應商無法達到的冗余級別,有助于在災難發(fā)生時仍能確保業(yè)務連續(xù)不中斷。用戶將云資源分散部署在多個云供應商,若某個特定的云供應商遭受攻擊或故障后,則托管于其他云供應商的資源不會受影響。
2)數(shù)據(jù)可靠性
將數(shù)據(jù)存儲在多個云中能夠顯著提高數(shù)據(jù)可靠性,從而降低因云失效引起的數(shù)據(jù)丟失而產(chǎn)生的風險。通過復制或糾刪碼的方式將數(shù)據(jù)存儲在多個云中,即使某個云存儲服務整體故障,也可以通過其他云存儲服務恢復完整數(shù)據(jù),通過一定的云存儲成本換取數(shù)據(jù)服務更高的可靠性。
3)訪問性能
多云存儲能充分利用每個云供應商的優(yōu)勢,即在不同云供應商之間靈活做出最佳選擇,獲得最佳的云服務。多云存儲代理可能會發(fā)現(xiàn)某個云供應商擅長于對象存儲,而另一個供應商的強項是目錄服務,從而根據(jù)客戶的需求將不同客戶的數(shù)據(jù)發(fā)送給不同的云供應商。
4)安全隱私
由于隱私問題,許多用戶不愿將其最敏感的數(shù)據(jù)托管到公共云中,減輕隱私擔憂的方法之一就是使用糾刪碼來跨多個云存儲服務分發(fā)數(shù)據(jù)。這樣就能確保任何單個云供應商都不會擁有數(shù)據(jù)的完整內容,無法讀取和恢復原始數(shù)據(jù)。同樣,如果少數(shù)云供應商遭遇安全漏洞攻擊,攻擊者也將無法獲得完整的數(shù)據(jù)集。
5)管理靈活性
由于每個供應商的云存儲服務在服務質量和價格方面存在差異性,多云存儲能夠靈活運用多個云供應商,根據(jù)每個云的價格以及擅長的特定服務來選取多個云的使用策略,提高用戶使用體驗和降低使用成本,避免供應商鎖定。
6)云存儲成本
云服務供應商設置了每種服務的使用資費,根據(jù)資費情況,使用多個云的客戶可以為不同的服務選擇資費最合理的云供應商。例如,某個供應商的每GB存儲資費可能比另一家便宜2美分,而另一家云供應商則在數(shù)據(jù)傳輸服務項目上提供更低的資費。如果從多個云供應商訂購服務,就可以為使用的每一項服務實現(xiàn)最大的成本效益。
盡管多云存儲技術擁有上述諸多優(yōu)點,但面對指數(shù)增長的數(shù)據(jù)和用戶越來越高的性能需求,其仍面臨著許多技術層面的嚴峻挑戰(zhàn),主要表現(xiàn)在以下4個方面:
1)數(shù)據(jù)可用性
由于大數(shù)據(jù)體量大且增長速度飛快,多云存儲系統(tǒng)的規(guī)模需要不斷擴大,這對其性能和可用性提出了挑戰(zhàn)。研究者針對單云存儲中普通商用服務器構建的分布式存儲系統(tǒng)節(jié)點失效常態(tài)化問題,提出通過數(shù)據(jù)冗余提高可用性的方法[18-21],但多云存儲具有數(shù)據(jù)距離跨度大、智能終端異構化、網(wǎng)絡需求高速化、云容錯技術差異化等特點,用戶和應用程序與多云存儲連接起來的復雜網(wǎng)絡存在速度緩慢或不可靠風險,容易導致高延遲率甚至宕機,系統(tǒng)性能和可用性大大降低。因此,在多云存儲下數(shù)據(jù)容錯技術仍然面臨著不同冗余機制轉換和集中式編碼實現(xiàn)方法引發(fā)的性能瓶頸,以及網(wǎng)絡存儲節(jié)點分散所需的可擴展性挑戰(zhàn)。多云存儲中數(shù)據(jù)可用性問題需要同時兼顧可擴展性和性能,這值得研究人員關注和深入研究。
2)數(shù)據(jù)完整性
云存儲的核心理念是資源租用、應用托管和服務外包,使用戶以較低廉的價格獲得海量的存儲能力。但當用戶選擇將數(shù)據(jù)交給單云平臺保管的同時,也失去了對數(shù)據(jù)的控制權,從而無法保證數(shù)據(jù)的完整性,可能會面臨因軟件失效或硬件損壞導致數(shù)據(jù)丟失、被其他用戶惡意攻擊導致數(shù)據(jù)損壞,以及被供應商內部人員為經(jīng)濟利益擅自刪除不常訪問的數(shù)據(jù)導致數(shù)據(jù)丟失等問題。為解決上述問題,PDP[22]、POR[23]等多種遠程數(shù)據(jù)完整性驗證方案被提出。在多云存儲中,云用戶數(shù)量龐大且更加依賴云存儲服務,用戶在數(shù)據(jù)完整性檢測過程中更加注重用戶體驗,比如支持數(shù)據(jù)動態(tài)操作、個人隱私保護和無限高效檢測等性能。同時,多個云服務供應商也導致數(shù)據(jù)在驗證中更容易出錯以及驗證開銷巨大等問題,給數(shù)據(jù)完整性驗證增加了難度。因此,及時識別存儲在多云中的數(shù)據(jù)是否損壞至關重要,如何使多個云服務供應商協(xié)作存儲和維護客戶數(shù)據(jù)完整性更是一個難點,數(shù)據(jù)完整性控制作為多云存儲的重要安全技術之一,逐漸受到業(yè)內關注。
3)數(shù)據(jù)一致性
隨著用戶對多云存儲系統(tǒng)的存儲容量和地理位置部署廣度的需求不斷提高,多云存儲往往采用分布式的系統(tǒng)架構,利用多地點多臺存儲服務器分擔存儲負荷,提高了系統(tǒng)的可靠性、可用性、擴展性和存取效率,降低了耦合性。但同時也帶來了部署、架構、運維復雜的考驗,不同的云存儲服務系統(tǒng)可能使用不同的存儲類型、編碼方式、加密方法、安全級別以及可能相互沖突的不同API,使得數(shù)據(jù)在多云基礎架構的不同系統(tǒng)間不能有效地跨云移動。因此,如何保證龐大的多云存儲系統(tǒng)數(shù)據(jù)一致性,值得深入研究。
4)數(shù)據(jù)安全性
多云存儲系統(tǒng)的便捷性越來越受到用戶的青睞,導致用戶群的類型、領域范圍和數(shù)量不斷增加,更容易成為黑客攻擊的對象。而多云技術要求海量用戶參與,資源以遠程、虛擬或租用的形式提供給用戶,雖然相比單云存儲數(shù)據(jù),安全性得到一定提高,但要保證數(shù)據(jù)在多云環(huán)境下整個生命周期中的安全性,防止數(shù)據(jù)被泄露和竊取仍然比較困難。目前學者們針對多云存儲中數(shù)據(jù)的安全性與隱私性提出了很多技術,如保護用戶數(shù)據(jù)隱私的數(shù)據(jù)加密和對應的密文搜索機制[24-26]、隱藏用戶數(shù)據(jù)訪問模式的隱藏存儲技術[27-29]、保證用戶數(shù)據(jù)安全銷毀的確定性刪除技術[30-31]以及提高用戶服務性能和安全性的安全重刪技術等。本文主要對安全重刪技術進行重點闡述。云存儲中數(shù)據(jù)的高冗余特點使得重復數(shù)據(jù)刪除技術必不可少,而重刪技術的大量應用會引發(fā)加密阻礙、非授權訪問、側通道攻擊等諸多安全問題。安全重刪技術成為云存儲下保證數(shù)據(jù)性能和安全性的關鍵技術之一。多云存儲環(huán)境下的安全重刪技術還需要面臨提高重刪系統(tǒng)的可擴展性、協(xié)調多云中不同加密方式和編碼方式、跨云重刪以及如何抵御不同攻擊類型等挑戰(zhàn)。因此,制定更加安全高效的重刪機制保證數(shù)據(jù)的隱私安全性尤為關鍵。
隨著云存儲在各個行業(yè)中變得越來越普遍,不同企業(yè)的云服務不斷涌現(xiàn),多云存儲管理平臺的建設也逐漸引起企業(yè)的關注。
國外著名的多云廠商有谷歌的Anthos[32]、IBM Cloud Pak[33]和MultCloud[34]等。谷歌作為云廠商的三大巨頭之一,本身就擁有數(shù)千公里長的光纜、龐大的開源項目、大數(shù)據(jù)收集和分析能力等巨大優(yōu)勢,其多云管理平臺Antos以谷歌首創(chuàng)的多項開源技術(Kubernetes、Istio和Knative等)為基礎構建而成,支持對現(xiàn)有應用現(xiàn)代化改造、構建新應用、安全運行應用等功能,但目前Antos只與AWS和Azure協(xié)同工作,不支持其他公有云。IBM Cloud Pak是適用于企業(yè)的容器化軟件解決方案,有助于在多云管理功能中提供一致的可見性、自動化和治理,支持多集群管理、事件管理、應用程序管理和基礎架構管理等功能。企業(yè)可以利用IBM Cloud Pak來幫助提高由智能數(shù)據(jù)分析和預測黃金信號驅動的運營效率,并獲得對合規(guī)性管理的內置支持。MultCloud是一款功能強大的多云存儲管理器,實現(xiàn)在一個虛擬層下管理來自多個云的在線文件,支持多云文件傳輸、多云文件同步、多云文件管理器等功能。MultCloud不僅提供了一種通過基于Web的應用程序訪問和管理文件的簡便方法,而且還提供了流暢的用戶體驗和直觀的界面。通過成功實施多云戰(zhàn)略,85%的企業(yè)在多云環(huán)境中開展運營,各大廠商已經(jīng)成功降低了用戶的成本增長率,提高了應用程序的可靠性。
目前,國內提供多云管理平臺的廠商主要有行云管家[35]、FIT2CLOUD[36]和貝斯平[37]等。行云管家的發(fā)展較為迅速,主要提供跨云廠商的云管理方案,包括云服務器管理、混合云管理、微信監(jiān)控告警、成本分析與優(yōu)化建議、健康負載與安全體檢、云堡壘機、自動化運維等功能。FIT2CLOUD主要致力于解決企業(yè)在多云環(huán)境下的服務化和管理、安全及數(shù)據(jù)庫服務交付難題,以統(tǒng)一的方式幫助企業(yè)在多云環(huán)境下實現(xiàn)自動化、自助式的服務交付,支持企業(yè)從傳統(tǒng)IT漸進無縫地過渡到多云戰(zhàn)略。貝斯平推出的OpsNow提供了對公有云、私有云、容器、裸金屬服務器的統(tǒng)一接入管理,為用戶隱藏各云商的差異,提供統(tǒng)一的資源抽象,進而提供一致性的體驗。國內多云管理平臺市場尚處于早期階段,但仍然面臨資源孤島、復雜運維以及運營缺失等諸多問題。隨著我國企業(yè)云行動的快速推進,多云環(huán)境安全性、多云管理一致性、多云間數(shù)據(jù)層可靠性和完整性等問題需要研究者進一步研究與探討。
針對多云存儲技術在數(shù)據(jù)的可用性、完整性、一致性和安全性上存在的技術挑戰(zhàn),本文重點分析和總結多云存儲在糾刪碼容錯技術、數(shù)據(jù)完整性證明機制、并發(fā)控制方法以及安全重刪技術等方面的國內外研究現(xiàn)狀。
在多云存儲中為防止數(shù)據(jù)丟失、故障、中斷以及供應商鎖定等損失,往往需要提高數(shù)據(jù)的容錯能力。目前常見的數(shù)據(jù)容錯技術有兩種[38],即多副本容錯技術[39]和糾刪碼容錯技術[40]。與多副本容錯技術相比,糾刪碼容錯技術可以在顯著降低存儲空間消耗的同時,提供相同甚至更高的數(shù)據(jù)容錯能力。糾刪碼容錯技術的基本原理是將數(shù)據(jù)分割成數(shù)據(jù)塊,對數(shù)據(jù)塊進行編碼生成編碼塊,使得每個編碼塊都是所有數(shù)據(jù)塊的線性組合,然后將編碼塊存儲在不同的位置,達到容錯的目的。若某個塊失效,則通過對剩余可用塊進行線性組合計算來恢復。具體的編碼實現(xiàn)主要包括集中式和分布式兩種[41]。在集中式編碼實現(xiàn)方法中,所有編碼工作都由一個編碼節(jié)點來單獨完成。編碼節(jié)點從存儲節(jié)點下載數(shù)據(jù)塊,編碼計算校驗塊,然后再把校驗塊發(fā)送到其他存儲節(jié)點上。
文獻[15]提出RACS代理在多個供應商中使用糾刪碼容錯技術進行冗余存儲,使客戶避免供應商鎖定,更好地容忍供應商的中斷和故障。收到Put請求后,RACS將傳入的數(shù)據(jù)拆分為m個大小相等的數(shù)據(jù)塊(即每個數(shù)據(jù)塊是原始數(shù)據(jù)大小的1/m),其中m 文獻[11]結合網(wǎng)絡編碼的思想設計一種再生碼——MSR碼,提出了使用F-MSR在多個供應商中冗余存儲:將文件劃分為A、B、C、D 4個數(shù)據(jù)塊,并且通過數(shù)據(jù)塊不同的線性組合形成8個不同的編碼塊P1,P2,…,P8。每個數(shù)據(jù)塊大小相同(M/4),每個編碼塊也具有相同的大小(M/8),每2個編碼塊合并成一個代碼塊存儲在一個節(jié)點中。任意2個節(jié)點可以用來恢復初始的4個數(shù)據(jù)塊。假設某個節(jié)點故障,代理從每個幸存節(jié)點收集一個編碼塊,每次下載大小為M/8的3個編碼塊,則代理由3個編碼塊的不同線性組合重新生成P1’和P2’2個編碼塊。注意,P1’和P2’仍是數(shù)據(jù)塊的線性組合。然后代理將P1’和P2’寫到新節(jié)點。在F-MSR中,存儲大小是2M,但是修復流量是0.75M,比RAID6節(jié)省了25%。F-MSR的重點是試圖高效修復云故障,極大減少了修復時的傳輸數(shù)據(jù)量,但其要求節(jié)點不僅具有存儲轉發(fā)的簡單功能,還需要具有可編程性。同時,由于F-MSR只保留代碼塊,而不是原始塊,要訪問某個文件的單個塊,需要為特定塊下載和解碼整個文件。因此,F-MSR只適用于長期存檔應用。 文獻[14]將收斂加密、重復數(shù)據(jù)刪除、壓縮與緩存等技術和糾刪碼相結合,提出F2MC。F2MC與RACS[9]一樣都使用RS碼,將一個加密的文件數(shù)據(jù)分解成m個大小相等的原始碎片,再將m個碎片映射到n個碎片的集合(n>m),用少量存儲成本換來了數(shù)據(jù)的容錯性。同時,F2MC在霧節(jié)點中對數(shù)據(jù)進行重刪、壓縮、編碼和加密,再將加密后的數(shù)據(jù)分散到多個云供應商,不僅進一步節(jié)省了數(shù)據(jù)流量和存儲空間,而且增強了多云存儲的彈性和安全性。同時,霧節(jié)點支持數(shù)據(jù)緩存,以提高客戶端讀取操作的性能,但該方案沒考慮改善糾刪碼性能,且集中式編碼方案也導致其不適用于大規(guī)模部署。 以上的集中式編碼實現(xiàn)方法的優(yōu)點是簡單且易于實現(xiàn),其缺點是在大規(guī)模多云存儲中存在較為嚴重的性能瓶頸和網(wǎng)絡傳輸瓶頸,從而影響編碼實現(xiàn)效率。分布式編碼實現(xiàn)方法是將編碼實現(xiàn)的網(wǎng)絡傳輸負載和計算負載分布到多個節(jié)點上,并行執(zhí)行子任務。相對于集中式編碼實現(xiàn)方法,分布式編碼實現(xiàn)方法可以在數(shù)據(jù)不斷增長且分布范圍廣的現(xiàn)狀下提升編碼實現(xiàn)的性能。 文獻[4]針對在實際情況中不同供應商可能使用不同的冗余機制來存儲數(shù)據(jù)(糾刪碼容錯技術、RAID技術、多副本容錯技術等)的問題,提出一種使用基于信息分層的糾刪碼方案SafeStore。該方案通過公開存儲服務供應商(Storage Service Provider,SSP)內部可接受的冗余選項,對SSP內部冗余進行額外的控制,允許系統(tǒng)在SSP內部和SSP之間有效地劃分存儲冗余,降低網(wǎng)絡帶寬和存儲成本?;旌鲜褂枚喾N糾刪碼可以同時發(fā)揮多種糾刪碼的優(yōu)勢,但是如果使用完全不同種類的糾刪碼,每次動態(tài)轉換都相當于重新進行一次編碼,成本極高。在同一種糾刪碼的不同參數(shù)之間轉換,可以減少轉換需要重新產(chǎn)生的校驗數(shù)據(jù)以及數(shù)據(jù)的讀取量和傳輸量,SafeStore的實現(xiàn)階段就使用了這種方式,采用(3,2)MDS碼以及三副本來跨SSP冗余存儲數(shù)據(jù)。 SafeStore試圖提高將故障限制在特定節(jié)點組的可能性,并有效地在SSP內部和跨SSP 部署存儲以解決此類故障,但其并不考慮提高糾刪碼的性能,且安全性較低。 文獻[43]提出了分布式文件系統(tǒng)NCFS,它支持在分布式存儲設置中進行常規(guī)的讀寫操作,并在節(jié)點故障期間啟用數(shù)據(jù)修復。它的特別之處是支持一種E-MBR碼的特定重新生成編碼方案,跨不同存儲節(jié)點透明地對數(shù)據(jù)進行條帶化,而無需在修復過程中對存儲節(jié)點之間進行協(xié)調,試圖最大程度地減少修復帶寬。在此之前對于再生碼的分布式存儲研究多數(shù)是理論上的,該方案第1次使用實用的分布式文件系統(tǒng)評估重新生成代碼的性能。相比于NCCloud,NCFS需要耗費更多的存儲開銷,但不要求節(jié)點具有編碼性,可擴展性更高??偠灾?再生碼可以有效地降低數(shù)據(jù)修復開銷,但是再生碼的存儲空間利用率明顯低于其他類別糾刪碼,所以不適用于存儲成本要求較高的大規(guī)模存儲系統(tǒng),而更加適合對于帶寬成本敏感的系統(tǒng)。 文獻[44]考慮到數(shù)據(jù)的安全性,提出一種將對稱加密、秘密共享和糾刪碼相結合的DEPSKY方案。數(shù)據(jù)使用隨機密鑰加密,防止個別云泄露數(shù)據(jù);密鑰使用秘密共享進行劃分,每個服務器接收加密數(shù)據(jù)塊和密鑰的共享,確保不會有錯誤的云重建數(shù)據(jù);糾刪碼技術減少每個云中數(shù)據(jù)的大小。DEPSKY不需要節(jié)點具有可編碼性,且相對于RACS增強了數(shù)據(jù)的機密性和安全性。但DEPSKY沒有試圖通過利用供應商之間的差異來尋求最小化成本。 表2從編碼實現(xiàn)方法、糾刪碼類別、節(jié)點可編程性和擴展性等方面對幾種糾刪碼方案進行了對比分析。類似HAIL[45]的單云存儲中數(shù)據(jù)可靠性主要依靠多副本容錯技術和糾刪碼容錯技術的集中式編碼方法,實現(xiàn)起來相對簡單,但隨著數(shù)據(jù)量的增長容易引起網(wǎng)絡擁塞和單點故障。網(wǎng)絡編碼思想[46]是在節(jié)點上進行編碼以提高信息傳輸率,但多數(shù)網(wǎng)絡節(jié)點是使用“存儲-轉發(fā)”機制的路由器,不能對數(shù)據(jù)進行編碼操作,擴展性不高。在多云存儲中,RACS、NCCloud和F2MC方案借鑒了單云存儲中集中式編碼方式和網(wǎng)絡編碼思想,因而限制其擴展性。面對指數(shù)增長的海量數(shù)據(jù),未來的多云存儲系統(tǒng)將越來越龐大,更傾向于使用NCFS、SafeStore和DEPSKY等采用分布式編碼的方案來提高數(shù)據(jù)可靠性。但分布式編碼實現(xiàn)方法需要多個不同節(jié)點相互協(xié)調合作,帶來大量數(shù)據(jù)傳輸,占用較多網(wǎng)絡資源。因此,相對于集中式編碼,分布式編碼的重點已從降低運算復雜度轉換到了降低網(wǎng)絡資源消耗和一致性保證,同時對安全性和性能有更高要求。 表2 多云存儲糾刪碼方案對比分析Table 2 Comparative analysis of multi-cloud storage erasure code schemes 數(shù)據(jù)完整性證明機制[47]可以根據(jù)是否對原數(shù)據(jù)采用容錯預處理技術,分為數(shù)據(jù)持有性證明PDP機制和數(shù)據(jù)可恢復證明POR機制。PDP機制能快速地判斷遠程節(jié)點上的數(shù)據(jù)是否損壞,更多地注重效率。POR機制不僅能識別數(shù)據(jù)是否損壞,并且能夠恢復已損壞的數(shù)據(jù)。兩種機制有不同的應用需求,PDP機制主要用于檢測大數(shù)據(jù)文件的完整性,而POR機制則用于確保重要數(shù)據(jù)的完整性。 文獻[48]提出了一種有效的多副本PDP方案(MR-PDP),可確保存儲服務器存儲多個唯一副本。初始化階段對輸入文件進行“一次”預處理,創(chuàng)建適用于PDP的t個唯一且可區(qū)分的副本,然后客戶端將副本和驗證標簽存儲在服務器上,并保留少量恒定的信息。質詢階段客戶可以執(zhí)行單個挑戰(zhàn)或完整挑戰(zhàn)來確定服務器是否仍然擁有文件副本并通過復制階段來維護所需的副本。該方案可動態(tài)創(chuàng)建新副本,而無需再次預處理文件,且檢查t個副本的開銷比檢查單個副本開銷便宜t倍,但不能支持動態(tài)的數(shù)據(jù)操作。 文獻[49]提出了動態(tài)可證明數(shù)據(jù)持有(DPDP)技術的定義框架和有效構造,它擴展了PDP模型以支持對已存儲數(shù)據(jù)的可證明更新,在塊級別上進行插入、修改、刪除等操作,而這些在傳統(tǒng)PDP機制是無法實現(xiàn)的。當動態(tài)更新操作時,用戶首先發(fā)出更新請求,服務器分以下2個階段進行更新:1)解析請求中的更新操作,若刪除操作,則直接刪除所在數(shù)據(jù)塊;若修改操作,則更新制定數(shù)據(jù)塊內容和塊簽名標簽;若插入操作,則在制定位置插入數(shù)據(jù)塊和塊標簽;2)輔助用戶更新跳表的根哈希值,服務器返回每個指定節(jié)點的認證路徑,用戶利用認證路徑更新根節(jié)點的哈希值。該方案可以完全支持動態(tài)操作,但其認證路徑過長,每次認證過程中需要大量的輔助信息支持,計算和通信開銷較大。 文獻[50]提出了一種支持保護隱私的公共審計的PPPDP方案。該系統(tǒng)將基于公鑰的同態(tài)線性身份驗證器(HLA)[51]與隨機掩蔽技術集成在一起,在審計時無需檢索整個數(shù)據(jù)的副本,不僅大幅減少通信和計算開銷,而且確保TPA在審核過程中不會學習有關存儲在云服務器中的數(shù)據(jù)內容;并將保護隱私的公共審核協(xié)議進一步擴展為多用戶設置,同時應對可能來自大量不同用戶的多個審核委派,大幅提高了工作效率。該方案雖然可以確保數(shù)據(jù)的隱私,但對于POR機制而言,采用這種方法將使得驗證者無法再通過抽取器去恢復損壞的原文件。 文獻[52]提出了一種基于哨兵的PORs機制,用戶無需下載存儲在云上的數(shù)據(jù)即可驗證其完整性,不僅能判斷其是否被刪除或修改,并且可以恢復一定程度的數(shù)據(jù)。在存入云中的數(shù)據(jù)中預先植入一些被稱為“哨兵”的檢驗數(shù)據(jù)塊,并在本地存儲好這些檢驗數(shù)據(jù)塊。遠程服務器無法區(qū)分檢驗數(shù)據(jù)塊與數(shù)據(jù),若數(shù)據(jù)被損壞,則會相應損壞到檢驗數(shù)據(jù)塊。通過對比存儲在本地的檢驗數(shù)據(jù)塊,就能判斷出數(shù)據(jù)完整性以及出錯部分所占的概率。結合糾錯碼對文件進行容錯預處理,使得驗證機制可以恢復一部分損壞的數(shù)據(jù)。雖然POR機制最先考慮到數(shù)據(jù)恢復問題,但該機制不支持公開驗證,且只能進行有限次驗證。 文獻[53]提出了一個健壯的動態(tài)遠程數(shù)據(jù)檢查方案DPOR提高魯棒性,同時支持動態(tài)更新。該方案采用Cauchy RS線性編碼進行數(shù)據(jù)預處理,只需要奇偶校驗符號和新符號即可更新代碼字。僅檢索奇偶校驗符號使得更新通信量顯著減少,有效地提高了恢復錯誤的效率,但更新操作需要云服務器重新生成所有的輔助容錯信息,導致計算代價較高。 文獻[54]提出一種針對多云環(huán)境的完整性和零知識特性(IVCZKP)方案,用戶對數(shù)據(jù)進行預處理后將數(shù)據(jù)索引發(fā)送到受信任的第三方(TTP),將數(shù)據(jù)塊和標簽發(fā)送給組織者,組織者將數(shù)據(jù)分發(fā)到多個云供應商。同時,用戶可通過索引哈希表對數(shù)據(jù)塊進行動態(tài)更新,如數(shù)據(jù)修改、插入和刪除。在驗證時用戶向TTP發(fā)送請求驗證,TTP向組織者發(fā)起挑戰(zhàn),組織者向云供應商發(fā)起相應挑戰(zhàn),組織者匯總CSP質詢相應信息并發(fā)送給TTP,TTP執(zhí)行完整性驗證并將結果告知用戶。該方案運用零知識來確保挑戰(zhàn)云供應商進行數(shù)據(jù)完整性驗證無需任何秘密信息,同時支持動態(tài)更新,但所有驗證都需要經(jīng)過組織者分發(fā)和匯總,頻繁更新和驗證容易引起性能瓶頸。 文獻[55]提出一種多云環(huán)境的數(shù)據(jù)完整性驗證和恢復方案(MRVR),利用同態(tài)、雙線性圖和二進制聚合樹(BAT)技術實現(xiàn)公共審計和快速恢復。在準備階段,用戶借助受信任的權威(TA)對數(shù)據(jù)進行分塊生成密鑰、副本和標簽。在完整性驗證階段,誠實云供應商(HCSP)將多云證明匯總到單個響應中,并將其發(fā)給審核員驗證,審核員驗證后將結果通知用戶。若數(shù)據(jù)已損壞,則進入數(shù)據(jù)恢復階段,MRVR將查找損壞數(shù)據(jù)并借助BAT技術進行恢復。該方案可以在多云環(huán)境下實現(xiàn)很高的數(shù)據(jù)可恢復性和可用性,但審核員的公正性很難保證,且HCSP依然存在集中式引發(fā)的性能瓶頸問題。 表3對7種完整性機制從服務器計算復雜度、用戶計算復雜度、通信復雜度、數(shù)據(jù)恢復、支持動態(tài)操作、驗證次數(shù)等方面進行了對比分析。雖然POR機制可以對數(shù)據(jù)進行一定的恢復,但其用戶計算復雜度也隨著分塊數(shù)n的增加以冪函數(shù)增長,對于大文件來講性能不佳。全動態(tài)操作和POR機制無限次驗證的實現(xiàn)仍然是完整性控制的難點。在單云存儲中,數(shù)據(jù)完整性方案尚不成熟,很難兼顧數(shù)據(jù)恢復、動態(tài)操作和無限次驗證的要求,且擴展性不高,雖然DPOR方案兼顧了以上要求,但在數(shù)據(jù)更新過程中需要大量的輔助信息支持,使用性能不佳。在多云環(huán)境下數(shù)據(jù)分布廣且復雜,完整性驗證和恢復過程更注重安全性,且時間復雜度和空間復雜度都不能過高才有實現(xiàn)的可能。但目前IVCZKP和MRVR 2種方案都需要一個組織者來頻繁分發(fā)和匯總各個云的數(shù)據(jù),擴展性有限。整體來說,目前多云存儲在數(shù)據(jù)完整性研究方面還不成熟,尚未建立起一套完整的理論體系,需要更多學者進行深入研究。 表3 多云完整性檢測機制對比分析Table 3 Comparative analysis of multi-cloud integrity detection mechanisms 分布式環(huán)境下多任務并發(fā)處理不當將會導致時間和數(shù)據(jù)上的不一致,而時間及數(shù)據(jù)的不一致將導致集群效率和性能較低,甚至分布式任務的失敗。多云存儲系統(tǒng)需要保證數(shù)據(jù)在多任務并發(fā)的情況下全部正確寫入,不會出現(xiàn)錯亂或遺漏,同時保證寫操作執(zhí)行成功后,在可接受的時間內所有的用戶可以獲取到最新的數(shù)據(jù)。 目前用來解決并發(fā)問題的使用最廣泛的分布式組件是Zookeeper[56]。Zookeeper相當于集群的管理者,監(jiān)視著集群中各個節(jié)點的狀態(tài),根據(jù)節(jié)點提交的反饋進行下一步合理操作。最終,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。文獻[12]提出了Hybris,該方案結合公有云和私有云兩者的優(yōu)點,將元數(shù)據(jù)保存在受信任的私有云上,而將數(shù)據(jù)分散到多個不受信任的公共云上。私有云上元數(shù)據(jù)的更新,便是在ZooKeeper上使用無等待并發(fā)控制來實現(xiàn),進一步提高了Hybris相對于基于鎖的系統(tǒng)的可伸縮性。但Hybris將元數(shù)據(jù)服務器限制在單個地理位置,擴展性差。 文獻[16]提出一種SPANStore方案,該方案統(tǒng)一協(xié)調地理位置分散的多個供應商,最大限度降低傳播時延和存儲成本,由一個中央位置管理器(PMan)繪制存儲服務的統(tǒng)一視圖,決定哪些SPANStore虛擬機為哪些位置的用戶提供PUT/GET請求服務。在初始化階段,所有的SPANStore虛擬機都將應用程序的工作負載和延遲的摘要傳輸給PMan,PMan根據(jù)對下一個時段中應用程序的工作負載以及應用程序的延遲、一致性和容錯需求的估計,計算應用程序對象使用的最佳復制策略。然后,PMan將新的復制策略傳遞給所有數(shù)據(jù)中心上的SPANStore虛擬機。這些復制策略規(guī)定了SPANStore應該如何在下一個時段中為應用程序的Put和GET操作提供服務。盡管SPANStore試圖最大限度地降低多云存儲的使用成本,但也有一個顯著的缺點,就是所有工作負載和延遲數(shù)據(jù)都需要傳輸?shù)絇Man,這在數(shù)據(jù)量和傳輸量龐大的情況下必然會出現(xiàn)性能瓶頸和單點故障的問題。 為了避免中央?yún)f(xié)調組件成為瓶頸,文獻[17]采用一個分散的解決方案MetaStorage。該方案為每個多云分發(fā)代理附加了一個協(xié)調器組件,該組件負責在代理之間定期交換狀態(tài)。代理的分發(fā)機制基于鍵值哈希的首選項列表,根據(jù)首選云存儲服務及其在首選項列表中的順序存儲在前N個節(jié)點上,從而分布到多個提供者。該方案的思路為一個主協(xié)調器確定所有其他協(xié)調器的狀態(tài)。若主協(xié)調器故障,則無法在一段時間內到達其余協(xié)調器,其余協(xié)調員都會讓主協(xié)調器離線并將其從協(xié)調員名單中刪除。 因此,第2號成為新的第1號,即主協(xié)調員。 由于協(xié)調員了解所有其他協(xié)調員及其具體順序,他們每個人都可以決定新主人是誰以及何時成為主人,無需中央控制。MetaStorage通過分散機制避免了單點故障,但在每個分發(fā)代理上添加了一個額外的層而遍歷每個服務調用會導致一定的延遲,而且Dynamo[57]風格的復制協(xié)議放松了一致性的保證。 文獻[58]提出一種Scalia方案,該方案依靠多版本并發(fā)控制(MVCC)來處理并發(fā)更新,是一種沒有鎖的替代方法,更新操作不會刪除舊數(shù)據(jù),而是用新數(shù)據(jù)覆蓋舊數(shù)據(jù)。舊數(shù)據(jù)被標記為過時并且添加了新版本,導致存儲多個版本的數(shù)據(jù),其中只有一個是最新版本。如果在多個數(shù)據(jù)中心同時更新條目,則數(shù)據(jù)庫將檢測沖突。系統(tǒng)將提示用戶決定哪個版本是好的版本,Scalia將刪除其他版本,也可以自行決定只保留最新版本。該方案對比鎖機制不會阻塞讀操作,大幅優(yōu)化了讀效率。但在云存儲供應商發(fā)生短暫故障的情況下,Scalia需要將故障供應商托管的塊移動到其他供應商,為了移動故障供應商的塊,需要從剩余的塊重建數(shù)據(jù)對象并再次拆分成塊。此時,若最具成本效益的供應商集合的閾值m不同,需要重寫所有塊,這一過程的成本相對較高。 文獻[59]針對不同云之間的兼容問題,提出一個多云文件寫作系統(tǒng)CoCloud,該系統(tǒng)通過在每種流行云附近部署一個或多個代理來有效訪問Web API;同時設計了統(tǒng)一的代理間高級傳輸協(xié)議,包括重復刪除技術、壓縮、多級捆綁,以便利用文件版本之間的相似性提高整體協(xié)作效率;另外設計了相關控制機制優(yōu)化客戶端和控制服務器,以保證及時性并消除文件協(xié)作期間的冗余更新。盡管CoCloud解決了跨云文件的協(xié)作問題,但該方案并未考慮安全和隱私問題。 文獻[60]針對多云環(huán)境下副本選擇問題,提出一種基于帶寬和等待時間的副本選擇機制BLRS,以避免潛在的網(wǎng)絡過載問題。該方案采用多副本管理器(RM)和分析模塊(AM)來應對分散式分析和管理框架。當用戶發(fā)出請求時,RM將在執(zhí)行單元中創(chuàng)建實例請求并發(fā)送環(huán)境分析請求(EAR)給云提供商中相應的AM;AM將收集的延遲和帶寬情況進行評估,生成環(huán)境信息反饋(EIF)返回給RM;根據(jù)收到的EIF,RM將為此實例生成一份副本選擇選項,若網(wǎng)絡過載或副本不可用,RM可根據(jù)副本重建機制自動創(chuàng)建副本到合適的位置。該方案基于對網(wǎng)絡指標的評估,去中心化地選擇更合適的副本路徑,可以顯著增加并發(fā)運行實例數(shù)量,并平衡帶寬使用。但該機制中RM只和云提供商中的AM直接聯(lián)系,RM間并未協(xié)調統(tǒng)一,且未考慮安全性和隱私問題。 文獻[61]針對多云復合應用程序部署問題,提出一種混合遺傳算法HGA,該算法綜合考慮了多云中性能優(yōu)化和預算控制,在GA框架下增加了服務聚類機制、修復算法、解決方案表示、種群初始化和遺傳算子的新算法技術,以實現(xiàn)有效的多云應用程序部署。該算法將多云復合應用程序部署問題定義為約束優(yōu)化問題,在預算約束下大大縮短了響應時間,但并未考慮一些新的云范例,且只設置了一個代理連接應用程序與多云,擴展性有待提高。 表4對幾種并發(fā)控制機制從并發(fā)處理、鎖機制、中央控制以及核心特征等方面進行了比對分析。Scalia適用于多讀場景,沖突發(fā)生較少,省去鎖開銷可以增大系統(tǒng)的吞吐量;而多寫機制會經(jīng)常產(chǎn)生沖突,導致上層應用不斷進行重試,反而降低了性能,使用帶鎖機制的方案更合適。從表4可以看出,能否進行分散架構的并發(fā)控制仍是一個值得深入研究的問題。并發(fā)控制問題的處理是分布式多云存儲的基本任務之一,也是分布式任務完成度以及性能好壞的關鍵所在。隨著多云存儲業(yè)務的不斷豐富,越來越多的用戶認可并投入使用,不斷擴大的數(shù)據(jù)規(guī)模和用戶對多云存儲服務質量的需求使得并發(fā)控制問題越來越具有挑戰(zhàn)性,成為多云存儲研究的重點和難點。 表4 多云并發(fā)控制機制對比分析Table 4 Comparative analysis of multi-cloud concurrency control mechanisms 隨著數(shù)據(jù)量的飛速增長,存儲空間和傳輸速率成為當前網(wǎng)絡存儲領域的一大瓶頸,其中對相同相似數(shù)據(jù)的優(yōu)化處理成為一個研究熱點。據(jù)研究,在所有備份的數(shù)據(jù)中,高達80%以上的數(shù)據(jù)是冗余的[62-63],利用數(shù)據(jù)高度冗余的特性,研究者提出了重復數(shù)據(jù)刪除技術,該技術是一種數(shù)據(jù)縮減技術,它的算法流程是對數(shù)據(jù)進行分塊,計算每個塊的特征值并加入特征值列表,新加入的塊通過對比特征值列表來確定是否重復,若不重復,則建立索引保存該塊特征值和映射關系到特征值列表并存儲原始塊到數(shù)據(jù)庫,若重復則只添加映射關系。而安全重刪是在此基礎上加入糾刪碼、加密等技術,增強了數(shù)據(jù)在全周期內的安全性,不僅降低了數(shù)據(jù)管理所需的存儲空間,實現(xiàn)更快更頻繁的存取,而且實現(xiàn)數(shù)據(jù)的安全防護和高效傳輸。 文獻[64]提出一種基于重復數(shù)據(jù)刪除技術的云中云存儲系統(tǒng),該系統(tǒng)充分挖掘復制和糾刪碼數(shù)據(jù)布局的優(yōu)點,并結合重復數(shù)據(jù)刪除技術中數(shù)據(jù)引用機制,消除云存儲系統(tǒng)中的冗余數(shù)據(jù)量;然后基于數(shù)據(jù)塊引用率將數(shù)據(jù)塊以復制和糾刪碼兩種數(shù)據(jù)布局方式存儲在多個云中。用復制方式存儲高引用數(shù)據(jù)塊,用糾刪碼方式存儲其他數(shù)據(jù)塊,從而使系統(tǒng)整體性能和成本大幅提高。該方案通過結合混合糾刪碼和重刪技術提升多云性能,但并未從安全和隱私方面對數(shù)據(jù)進行保護。 文獻[65]提出一種在多云環(huán)境下提高成本效益的信息簡化計劃CHARM,用最小的費用將信息靈敏放置到不同的云中。在CHARM中,工作負載不斷收集并處理用戶存儲數(shù)據(jù)的信息,將統(tǒng)計信息發(fā)送到預測器,預測器根據(jù)接收到的信息預測文件訪問頻率并發(fā)送給存儲模式切換SMS,SMS根據(jù)預測器輸出決定對存儲數(shù)據(jù)使用糾刪碼還是多副本方式存儲。數(shù)據(jù)在數(shù)據(jù)托管單元中通過放置啟發(fā)式算法計算出成本最小的多云策略,并進行重刪以進一步減小成本。該方案結合糾刪碼、重刪和放置啟發(fā)式算法將數(shù)據(jù)靈活存儲在多云中,大幅降低了存儲成本,但對于預測器的設計沒有深入研究,且未提及安全和隱私風險。 文獻[66]提出一種基于口令認證的密鑰交換協(xié)議的服務器端重復數(shù)據(jù)刪除方案,用戶相互比較私密信息共享密鑰,不需要額外的服務器即可實現(xiàn)跨用戶重刪。該方案不僅允許用戶在本地客戶端加密數(shù)據(jù),而且可以通過限制單個文件訪問次數(shù)來防御惡意用戶或服務器發(fā)起的暴力攻擊。但針對一些熱數(shù)據(jù),用戶同樣需要將其對稱加密,并與其他用戶運行PAKE協(xié)議,增加了計算開銷。 文獻[67]提出一種CDStore方案,該方案綜合考慮安全和成本效率,將秘密共享和兩階段重復數(shù)據(jù)刪除技術相結合,用源自原始數(shù)據(jù)的確定性加密哈希替換傳統(tǒng)秘密共享的隨機輸入,使其能夠在客戶端去重后再編碼發(fā)送到不同的云上,節(jié)省上傳帶寬,然后在服務器端對不同用戶的數(shù)據(jù)進行重復數(shù)據(jù)刪除,進一步節(jié)省存儲空間。但CDStore采用的收斂加密技術仍可能遭受離線的暴力攻擊。 文獻[68]提出一種CloudS方案,該方案為獲得更好的用戶體驗以及安全性和性能之間的平衡,通過壓縮、加密和編碼方案的各種組合提供了多個安全級別。同時提出了基于異或操作XOR的隱私保護碼PPC,在此基礎上提出一種適用于完全并行化的重刪友好型分散算法HCE-PPC,以及變體壓縮PPC和壓縮HCE-PPC,以適應不同用戶的不同需求。HCE-PPC算法與傳統(tǒng)算法相比,在實現(xiàn)近似安全性的基礎上提供了更好的性能。但HCE-PPC算法難以抵抗雙重錯誤。 文獻[69]提出一種CloudShare方案,該方案通過區(qū)塊鏈與收斂加密的結合,將每個云存儲系統(tǒng)相融合構成一個巨大的聯(lián)盟云,跨用戶進行加密重復數(shù)據(jù)刪除。CloudShare分為兩層:上層采用區(qū)塊鏈記錄跨云用戶的存在和所有權,不可更改和刪除;底層由云供應商及其相應用戶組成,每個用戶將數(shù)據(jù)存儲在所在的云中,但可以訪問多個云的數(shù)據(jù)。不同的云資源可以獲得有效的集成和分配,顯著降低了每個云的存儲成本,并節(jié)省了用戶的上傳帶寬,確保了數(shù)據(jù)的保密性和一致性。但由于區(qū)塊鏈技術實施機制的原因,只能處理比較少的并發(fā)任務,一旦超過閾值,則會產(chǎn)生性能瓶頸。 文獻[14]利用云霧計算的互補性提出一種F2MC方案,該方案將本地霧計算與遠程云計算相結合,把關鍵數(shù)據(jù)處理功能放在霧節(jié)點中完成,利用重復數(shù)據(jù)刪除技術、壓縮技術、糾刪碼以及緩存在多個云供應商之間分散存儲加密數(shù)據(jù),增強了服務質量,提高了數(shù)據(jù)流量和空間效率,進一步增強了多云存儲的彈性和安全性。但該方案屬于多云存儲集中式架構,隨著數(shù)據(jù)量的增長,將數(shù)據(jù)處理功能都放在一個霧節(jié)點上容易產(chǎn)生性能瓶頸,不適宜進行大規(guī)模部署。 不同于上述都是對相同數(shù)據(jù)進行處理以達到優(yōu)化性能目的的方案,文獻[12]考慮到相似數(shù)據(jù)跨多個云可能引起信息泄露,提出了一種多云信息泄漏感知存儲系統(tǒng)StoreSim,采用基于聚類的存儲計劃生成算法,將語法相似的數(shù)據(jù)存儲在同一個云上,從而最小化用戶跨多個云的信息泄漏。但該方案只能針對語法相似度進行劃分,基于語義的優(yōu)化存儲隱私算法還需要進一步研究。 表5對基于重復數(shù)據(jù)的防護機制在算法、數(shù)據(jù)去重級別、抗攻擊類型、第三方服務器、重刪范圍等方面進行了對比分析。文件級去重模式易管理,相比之下塊級去重模式具有更高的靈活性和可靠性,在數(shù)據(jù)庫環(huán)境下更傾向于塊級去重模式。引入第三方服務器可以提高安全性,實現(xiàn)對密鑰的有效管理,但同時存在實用性低、重刪效率低、擴展性差且不能保證與云服務器合謀的缺點,對于海量數(shù)據(jù)并不適用,多云方案都未使用第三方服務器。多云環(huán)境下同領域用戶增多,更加迫切需要在保證數(shù)據(jù)安全性的前提下對相同或相似數(shù)據(jù)進行刪減優(yōu)化[70],目前多云重刪方案大都局限于客戶端重刪和云內部重刪,云與云之間重刪實現(xiàn)困難,CloudShare打破了多云屏障,通過區(qū)塊鏈降低了每個云的存儲成本,但該技術尚不成熟,對于并發(fā)任務并不友好。目前,對相同或相似數(shù)據(jù)的研究雖有一定的成果,但還不夠完善,跨云安全重刪和相似數(shù)據(jù)研究等方向值得當今學術界和產(chǎn)業(yè)界重點關注。 表5 基于重復數(shù)據(jù)的防護機制對比分析Table 5 Comparative analysis of protections mechanism based on duplicate data 本節(jié)結合多云存儲的實際應用需求和研究現(xiàn)狀,總結多云存儲的研究趨勢。 目前云存儲服務市場蓬勃發(fā)展,國外比較著名的有亞馬遜、微軟、谷歌等,國內有阿里、騰訊、華為等,多個云存儲服務給企業(yè)帶來更多的選擇。為避免供應商鎖定,利用就近計算優(yōu)勢以及提高業(yè)務應用的全域服務能力,企業(yè)更傾向于將自己的服務應用部署到多個地域、多個云存儲供應商的數(shù)據(jù)中心內[71-72],越來越多的企業(yè)基于多云架構提升靈活性和成本效益。然而,不同云平臺之間并不是無縫銜接的,不同的生產(chǎn)環(huán)境、操作系統(tǒng)、數(shù)據(jù)庫以及中間件等,都會導致多云間難以實現(xiàn)數(shù)據(jù)的及時傳輸和分析,形成一座座信息孤島,使得企業(yè)的業(yè)務進程不能正常推進。因此,如何科學有效地提高企業(yè)在多云間遷移和管理數(shù)據(jù)的能力變得尤為重要。不同云平臺的數(shù)據(jù)遷移情況復雜,實現(xiàn)困難,既要保證數(shù)據(jù)在遷移過程中的隱私性、完整性和一致性,又要維持遷移過程中業(yè)務的可用性、穩(wěn)定性和性能。同時,應用數(shù)據(jù)在遷移前需要基于不同云平臺做兼容性部署,甚至要對應用系統(tǒng)重新拆分、設計架構和構建,才能更好地貼合不同云架構和實際需求。因此,遷移準備中的兼容調整和測試驗證、遷移過程中的傳輸秩序和安全保障機制以及遷移后的運維等,都是多云間數(shù)據(jù)遷移必須直接面對的機遇和挑戰(zhàn)。 隨著多云存儲業(yè)務的不斷豐富,投入使用的云用戶越來越多,導致云數(shù)據(jù)量激增,分布式云存儲架構越龐大,部署也越來越復雜。而多云間數(shù)據(jù)一致性問題是分布式多云存儲的核心問題之一,也是分布式任務完成程度以及性能好壞的關鍵所在。數(shù)據(jù)一致性的出現(xiàn),引出分布式系統(tǒng)的核心理論——CAP理論[73],后又在一致性和可用性的權衡下逐步演化為BASE理論[74],該理論減弱了數(shù)據(jù)一致性的約束,提出服務基本可用,數(shù)據(jù)存在軟狀態(tài),但能確保最終一致的方案[75]。常見的數(shù)據(jù)一致性協(xié)議有2PC[76]、3PC、Paxos[77]、Zab[78]和Raft[79]等,這些協(xié)議有些實現(xiàn)簡單,能夠保證數(shù)據(jù)的強一致性,但降低了系統(tǒng)的可用性;有些實現(xiàn)復雜,能夠保證系統(tǒng)較高的可用性,只實現(xiàn)數(shù)據(jù)的最終一致性。而多云存儲系統(tǒng)涉及到多個云存儲系統(tǒng)之間的相互協(xié)調調用,情況更為復雜,需要從需求背景出發(fā)選擇最合適的數(shù)據(jù)一致性方案。目前企業(yè)更傾向于選擇去中心化程度更高的分散式多云存儲系統(tǒng)來避免數(shù)據(jù)容量和帶寬流量沖突造成的性能瓶頸,導致一致性保證變得更為艱難?,F(xiàn)有工作雖然能夠完成分布式任務,并針對實際情況遇到的問題提出一些改進方法,但大多采用集中式管理方式。隨著數(shù)據(jù)量上升,弊端也逐漸暴露出來,與人們對多云存儲性能的預期還有很大差距。多云間數(shù)據(jù)一致性的保證涉及數(shù)據(jù)安全、資源消耗、工作效率以及服務質量等方面,是多云存儲研究的重點和難點。 云存儲在為用戶帶來便利的同時,也造成了數(shù)據(jù)所有權和控制權的分離[80]。供應商可能搜索、獲取用戶存儲在云端上的數(shù)據(jù),也可能因為系統(tǒng)故障導致用戶數(shù)據(jù)丟失,同時也可能存在黑客通過攻擊云端的服務器獲取用戶的數(shù)據(jù)等,這些都是信息泄露、數(shù)據(jù)丟失的潛在風險。而使用多云存儲會增加攻擊面的數(shù)量以及數(shù)據(jù)受損的可能性,用戶使用的云存儲服務越多,風險就越大。多云存儲帶來的安全問題不僅局限在一維層面,它涉及到設備維度、網(wǎng)絡維度、系統(tǒng)維度、云端維度等多個方面,任何一點疏漏都可能導致整體的安全防護功虧一簣,各個云供應商必須全面分析并著手解決面臨的各種安全和隱私問題,才能使用戶放心地將自己的數(shù)據(jù)交付于多云[81]?,F(xiàn)有工作利用數(shù)據(jù)加密、身份驗證、訪問控制級別、秘密共享、糾刪碼、數(shù)據(jù)壓縮處理等技術,在一定情況下減少了信息泄漏風險,改進了多云存儲的安全性能。但每個云存儲供應商對多云平臺的可見性有限,只針對自身系統(tǒng)應用設計賬戶管理模式和數(shù)據(jù)防護方案,不同的防護工具和流程使得多云安全性更加復雜,模式不兼容和規(guī)則漏洞的情況時有發(fā)生。若不同的云存儲平臺能理解不同體系結構的模式和規(guī)范,采用全面一致的防護策略,數(shù)據(jù)安全風險將大幅減小,但這顯然并不容易。制定多云協(xié)同的隱私安全和治理策略還需要投入更多的努力去探索。 云數(shù)據(jù)的迅猛增長使得網(wǎng)絡空間和帶寬資源都變得日趨緊張,而利用數(shù)據(jù)高度冗余的特性,重刪技術能夠極大降低存儲空間開銷和網(wǎng)絡帶寬,并進一步降低能耗和管理成本。憑借在數(shù)據(jù)縮減上的優(yōu)勢,目前重刪技術主要應用于備份、容災、歸檔、虛擬機環(huán)境下的主存儲系統(tǒng)、內存性能優(yōu)化[82]和延長SSD使用壽命[83]等環(huán)境中。盡管現(xiàn)有工作利用重刪技術節(jié)省了一定網(wǎng)絡資源,且具備一定的防御能力,但仍然不容樂觀。多云數(shù)據(jù)的重復度極高,隨著數(shù)據(jù)的增長元數(shù)據(jù)將會十分龐大,從而影響數(shù)據(jù)查找效率,因此調整元數(shù)據(jù)的組織結構和數(shù)據(jù)布局提高重刪性能十分必要。多云存儲的興起使得企業(yè)更傾向于在云端進行跨用戶重刪,若能打破多云壁壘實現(xiàn)多云間重刪,數(shù)據(jù)縮減將有質的提升。但同時用戶的隱私可能會因此受到極大威脅,而且企業(yè)對重刪的偏愛會導致用戶數(shù)據(jù)安全性降低,如何平衡尚有待解決?;谠齐H計算的跨用戶重刪還有很多尚待解決的問題等待人們去研究和挑戰(zhàn)。 近幾年,區(qū)塊鏈作為一項新興技術引起了人們的廣泛關注。區(qū)塊鏈分為公有區(qū)塊鏈、聯(lián)盟區(qū)塊鏈、私有區(qū)塊鏈[84-85],具有去中心化、開放性、獨立性、安全性、匿名性等特點[86],眾多優(yōu)勢可以很好地解決現(xiàn)有技術所面臨的瓶頸問題,使其迅速成為學術界的熱門研究話題之一,目前已經(jīng)滲透到全球多個行業(yè)應用領域。云際資源調度[87-88]是多云存儲中至關重要的一環(huán),多云平臺接收到用戶的服務請求后,會根據(jù)用戶的要求(時間、效率、成本等)給出最優(yōu)的資源調度組合,從而在滿足用戶要求的同時,極大地提高了資源利用率。而將區(qū)塊鏈與云際資源調度相結合,不僅可以促進云際資源調度領域的一些突破,實現(xiàn)更經(jīng)濟、更高效、更安全的分布式多云存儲,而且可以解決區(qū)塊鏈技術因信息爆炸而產(chǎn)生的存儲容量不足的問題[89],為大規(guī)模應用奠定基礎。但基于區(qū)塊鏈的云際資源調度發(fā)展尚不完整,還存在如下挑戰(zhàn):在資源調度中針對具體的分布式特性與管理需求采取合適的偏好決策[90];解決區(qū)塊鏈的計算能力及響應速度不能滿足應用領域實時計算的要求;改善區(qū)塊鏈記賬方式效率不高和資源耗費嚴重的問題[91];解決區(qū)塊鏈技術只能添加,不可刪除,導致數(shù)據(jù)增長不可逆的問題;打破多云屏障實現(xiàn)去中心化?;趨^(qū)塊鏈的云際資源調度仍然是一個開放的課題。 當前世界科學技術迅猛發(fā)展,大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、多云存儲等技術的廣泛應用不斷推動社會生產(chǎn)方式發(fā)生變化。2008年,IBM在外國關系理事會上提出“智慧地球”概念,意在使用先進信息技術改善商業(yè)運作和公共服務[92]?!爸腔鄣厍颉本褪前迅袘髑度牒脱b備到鐵路、電網(wǎng)、供水系統(tǒng)、油氣管道等各種物體中,普遍連接形成物聯(lián)網(wǎng),然后通過多云環(huán)境將物聯(lián)網(wǎng)數(shù)據(jù)整合起來用人工智能進行分析,植入“智慧”的理念,人們能夠以更加精細和動態(tài)的方式管理生產(chǎn)和生活,達到全球“智慧”狀態(tài)?!爸腔鄣厍颉笨朔诵畔⒓夹g應用中零散的、各自為戰(zhàn)的現(xiàn)狀,從一個總體產(chǎn)業(yè)或社會生態(tài)系統(tǒng)出發(fā),調動該生態(tài)系統(tǒng)中的各個角色,充分發(fā)揮先進信息技術的潛力以促進整個生態(tài)系統(tǒng)的互動,以更加智慧的方式解決當今世界的重大問題。目前人們普遍接受這一理念,并從“智慧城市”與“智慧企業(yè)”做起,逐步向“智慧地球”靠攏,但距離實現(xiàn)目標還很遙遠。首先,多云存儲技術發(fā)展尚不完善,而物聯(lián)網(wǎng)技術中傳感器收集的數(shù)據(jù)具有海量、異構、移動的特點,很難實現(xiàn)及時處理以適應動態(tài)調整。其次,“智慧地球”的實現(xiàn)存在很多安全威脅,可感知、互聯(lián)互通和更加智能化意味著一切更加透明,更易被操控。最重要的是,實現(xiàn)“智慧地球”需要制定統(tǒng)一的技術框架和規(guī)則,各個國家不會輕易接受其他國家的技術、產(chǎn)品、管理方式和運行模式,都想建立自己的智慧系統(tǒng),但實際技術水平差異巨大,很難統(tǒng)一。因此,基于多云環(huán)境的“智慧地球”還需要不斷嘗試和探索。 多云存儲是目前廣受關注的熱點研究領域。本文簡述了多云存儲的概念、體系結構、技術優(yōu)勢、挑戰(zhàn)及相關產(chǎn)品,對多云存儲相關技術中的數(shù)據(jù)可靠性保障、數(shù)據(jù)完整性證明、并發(fā)控制方法以及安全重刪技術的最新研究進展進行了深入分析和討論,并展望了多云間數(shù)據(jù)遷移、數(shù)據(jù)一致性保證、隱私防護、跨用戶重刪、云際資源調度、基于多云環(huán)境的“智慧地球”應用等若干未來潛在的研究方向。鑒于多云存儲技術應用上的復雜性,目前大量研究成果仍停留在理論和試驗階段,未來更為成熟的先進技術推廣應用值得期待。2.2 數(shù)據(jù)完整性證明機制
2.3 并發(fā)控制方法
2.4 安全重刪技術
3 多云存儲未來研究展望
3.1 多云間數(shù)據(jù)遷移
3.2 多云間數(shù)據(jù)一致性
3.3 云端協(xié)同的隱私防護
3.4 基于云際計算的跨用戶重刪
3.5 基于區(qū)塊鏈的云際資源調度
3.6 基于多云環(huán)境的“智慧地球”
4 結束語