朱良杰,沈佳杰,周揚(yáng)帆 ,王 新,3
(1.復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 201203;2.上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室,上海 200433;3.復(fù)旦大學(xué)信息化辦公室,上海 200433)
隨著互聯(lián)網(wǎng)技術(shù)與應(yīng)用的快速發(fā)展,用戶數(shù)據(jù)開始呈現(xiàn)爆發(fā)式增長(zhǎng)。根據(jù)國(guó)際數(shù)據(jù)資訊公司IDC的預(yù)測(cè),從2020 年開始,每2年上網(wǎng)用戶總量將增長(zhǎng)一倍,每6~9個(gè)月企業(yè)產(chǎn)生的數(shù)據(jù)量將會(huì)翻一番[1]。面對(duì)如此海量的用戶數(shù)據(jù),云存儲(chǔ)作為一種有效的存儲(chǔ)方案被廣泛應(yīng)用于在線數(shù)據(jù)存儲(chǔ)。
然而,當(dāng)前的云存儲(chǔ)系統(tǒng)普遍存在諸多問(wèn)題:首先,云存儲(chǔ)系統(tǒng)存在云提供商存儲(chǔ)服務(wù)鎖死的問(wèn)題[2]。當(dāng)用戶需要更換供應(yīng)云提供商時(shí),需要進(jìn)行大量數(shù)據(jù)拷貝和遷移操作,從而導(dǎo)致大量的數(shù)據(jù)傳輸開銷。其次,云存儲(chǔ)系統(tǒng)存在存儲(chǔ)數(shù)據(jù)可靠性的問(wèn)題。當(dāng)云存儲(chǔ)失效時(shí),可能會(huì)導(dǎo)致用戶數(shù)據(jù)丟失的情況[3]。最后,云存儲(chǔ)存在安全問(wèn)題。當(dāng)云基礎(chǔ)設(shè)施被黑客攻陷后,攻擊者將獲取云存儲(chǔ)中的數(shù)據(jù)[4]。
為了彌補(bǔ)云存儲(chǔ)系統(tǒng)的上述不足之處,學(xué)者們提出了云際存儲(chǔ)方案[5]。在云際存儲(chǔ)系統(tǒng)中,采用不同提供商的云存儲(chǔ)服務(wù)來(lái)構(gòu)建一個(gè)統(tǒng)一的存儲(chǔ)管理平臺(tái),提供安全可靠的存儲(chǔ)服務(wù)。通過(guò)將數(shù)據(jù)編碼存儲(chǔ)在不同的云服務(wù)提供商的存儲(chǔ)空間中,云際存儲(chǔ)系統(tǒng)可以保障在若干個(gè)云失效的情況下恢復(fù)出用戶數(shù)據(jù)。此外,云際存儲(chǔ)系統(tǒng)對(duì)機(jī)密數(shù)據(jù)進(jìn)行加密和編碼生成多個(gè)分片上傳至不同的云存儲(chǔ)空間,即使中間的若干個(gè)云被黑客攻破,攻擊者因信息不全將無(wú)法破解出完整的機(jī)密數(shù)據(jù)[6],從而保證數(shù)據(jù)的機(jī)密性。
由于云際存儲(chǔ)系統(tǒng)具有這些優(yōu)良的特性,近年來(lái)已成為云存儲(chǔ)系統(tǒng)的重要發(fā)展方向和研究熱點(diǎn)。然而,若簡(jiǎn)單地用當(dāng)前云際存儲(chǔ)方案替換云存儲(chǔ)方案部署在當(dāng)前在線應(yīng)用而不優(yōu)化上層的軟硬件架構(gòu),則會(huì)限制云際存儲(chǔ)系統(tǒng)的性能。具體說(shuō)來(lái),制約云際存儲(chǔ)系統(tǒng)性能的主要因素有:
(1)網(wǎng)絡(luò)適配能力。用戶端設(shè)備需要通過(guò)互聯(lián)網(wǎng)將加密和編碼后的數(shù)據(jù)上傳到云端。由于在這種網(wǎng)絡(luò)環(huán)境下帶寬往往具有較大的波動(dòng)性,云際存儲(chǔ)系統(tǒng)需要?jiǎng)討B(tài)調(diào)整傳輸策略以適應(yīng)當(dāng)前網(wǎng)絡(luò)狀態(tài),從而更好地滿足實(shí)際在線應(yīng)用的存儲(chǔ)需求。
(2)資源管理機(jī)制。在數(shù)據(jù)存儲(chǔ)過(guò)程中,云際存儲(chǔ)系統(tǒng)需要將數(shù)據(jù)分發(fā)到多個(gè)云,并有效地管理這些已經(jīng)存儲(chǔ)在云端的數(shù)據(jù)。這就要求云際存儲(chǔ)系統(tǒng)可以高效地管理用戶端設(shè)備和云端的計(jì)算、傳輸和存儲(chǔ)資源,從而保證用戶數(shù)據(jù)存儲(chǔ)的安全性和效率。
(3)應(yīng)用場(chǎng)景適應(yīng)能力。不同的存儲(chǔ)應(yīng)用中用戶端設(shè)備和云端可使用的資源往往有較大的差異。由于不同在線應(yīng)用的存儲(chǔ)需求差異較大,云際存儲(chǔ)系統(tǒng)往往需要根據(jù)在線應(yīng)用的需求特性來(lái)優(yōu)化對(duì)應(yīng)數(shù)據(jù)讀寫和修復(fù)方案,并調(diào)整自身的數(shù)據(jù)傳輸及資源管理策略,從而適應(yīng)不同的應(yīng)用場(chǎng)景。
針對(duì)上述3個(gè)問(wèn)題,當(dāng)前的研究工作通過(guò)構(gòu)建高效的云際存儲(chǔ)管理機(jī)制和數(shù)據(jù)分發(fā)方案來(lái)解決這些問(wèn)題。本文綜述了當(dāng)前云際存儲(chǔ)系統(tǒng)的性能優(yōu)化方案,包括以下3個(gè)方面內(nèi)容:
首先,本文介紹了云際存儲(chǔ)系統(tǒng)中數(shù)據(jù)讀寫及修復(fù)操作執(zhí)行過(guò)程,并總結(jié)了常見的數(shù)據(jù)分發(fā)方案。在此基礎(chǔ)上,本文介紹了當(dāng)前提升云際存儲(chǔ)系統(tǒng)網(wǎng)絡(luò)傳輸效率的主流設(shè)計(jì)方案,如構(gòu)建新的編碼網(wǎng)絡(luò)方案來(lái)減少數(shù)據(jù)修復(fù)操作。本文綜述了這些操作對(duì)于網(wǎng)絡(luò)的需求及當(dāng)前云際存儲(chǔ)中主要的用戶端設(shè)備和云端之間的網(wǎng)絡(luò)傳輸方案。
其次,在分析了運(yùn)行過(guò)程中用戶端設(shè)備和云端所使用的主要資源的基礎(chǔ)上,本文介紹了云際存儲(chǔ)系統(tǒng)主要的管理方案。針對(duì)于云際存儲(chǔ)3種主要的系統(tǒng)資源(即,計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)資源),本文綜述了當(dāng)前主流的云際存儲(chǔ)系統(tǒng)資源管理方案并分析了這些方案的適用場(chǎng)景及優(yōu)缺點(diǎn)。
最后,本文介紹了云際存儲(chǔ)系統(tǒng)的3種經(jīng)典應(yīng)用場(chǎng)景(即,數(shù)據(jù)備份、移動(dòng)應(yīng)用和云際計(jì)算)。在此基礎(chǔ)上,本文總結(jié)了當(dāng)前云際存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)機(jī)制和優(yōu)化方案。通過(guò)分析和對(duì)比當(dāng)前云際存儲(chǔ)系統(tǒng)及其適合的應(yīng)用場(chǎng)景,本文總結(jié)了云際存儲(chǔ)系統(tǒng)亟待解決的問(wèn)題。
云際存儲(chǔ)系統(tǒng)需要使用數(shù)據(jù)分發(fā)算法(Dispersal Algorithm)將數(shù)據(jù)分片上傳,并完成數(shù)據(jù)讀寫及修復(fù)等操作。本文首先介紹當(dāng)前的云際存儲(chǔ)系統(tǒng)背景及運(yùn)行時(shí)需要執(zhí)行的操作。在此基礎(chǔ)上,本文總結(jié)了當(dāng)前云際存儲(chǔ)系統(tǒng)中主要的數(shù)據(jù)分發(fā)方案,并分析了它們的復(fù)雜度。
為了保證用戶存儲(chǔ)數(shù)據(jù)的可靠性,當(dāng)前云際存儲(chǔ)系統(tǒng)使用數(shù)據(jù)分發(fā)算法將數(shù)據(jù)分發(fā)到不同的云存儲(chǔ)空間。
圖1[7]展示了云際存儲(chǔ)系統(tǒng)中的主要操作。
Figure 1 Main operations in cloud-of-clouds storage圖1 云際存儲(chǔ)系統(tǒng)中主要操作
在云際存儲(chǔ)系統(tǒng)中,用戶端設(shè)備執(zhí)行寫入(加密、編碼和上傳)操作和讀取(下載、解碼和解密)操作,云端執(zhí)行修復(fù)操作。在這些操作的執(zhí)行過(guò)程中,存在2種主要的網(wǎng)絡(luò)傳輸優(yōu)化方案,即通過(guò)構(gòu)建編碼方案來(lái)減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量或根據(jù)當(dāng)前網(wǎng)絡(luò)和系統(tǒng)狀態(tài)來(lái)動(dòng)態(tài)調(diào)整相應(yīng)數(shù)據(jù)傳輸機(jī)制。
根據(jù)實(shí)際應(yīng)用場(chǎng)景的需求和特點(diǎn),云際存儲(chǔ)系統(tǒng)需要使用不同的數(shù)據(jù)分發(fā)方案來(lái)提供存儲(chǔ)服務(wù)。例如,為了保證存儲(chǔ)數(shù)據(jù)的安全性和可靠性,云際存儲(chǔ)系統(tǒng)需要使用分發(fā)算法將數(shù)據(jù)加密并編碼生成多個(gè)分片并分配到不同云。因此,研究人員提出多種數(shù)據(jù)分發(fā)方案來(lái)提升云際存儲(chǔ)系統(tǒng)的性能。若一個(gè)數(shù)據(jù)分發(fā)算法將原始數(shù)據(jù)加上冗余數(shù)據(jù)之后的目標(biāo)數(shù)據(jù)分為n個(gè)分片,并且利用其中任意k個(gè)分片即可恢復(fù)原始數(shù)據(jù)。同時(shí)為保證云際存儲(chǔ)系統(tǒng)數(shù)據(jù)安全性,黑客在攻陷t個(gè)存儲(chǔ)節(jié)點(diǎn)時(shí)無(wú)法獲取機(jī)密消息的相關(guān)數(shù)據(jù)。這樣的數(shù)據(jù)分發(fā)算法被定義為(n,k,t)數(shù)據(jù)分發(fā)算法,其中t為安全度,云系統(tǒng)上存儲(chǔ)的目標(biāo)數(shù)據(jù)與原始數(shù)據(jù)的比值定義為存儲(chǔ)增益Ω 。下面將介紹當(dāng)前云際存儲(chǔ)系統(tǒng)廣泛使用的數(shù)據(jù)分發(fā)方案。
在提出云際存儲(chǔ)系統(tǒng)相關(guān)概念之前,研究人員已經(jīng)開展了很多與數(shù)據(jù)分發(fā)操作相關(guān)的工作[7],很多分發(fā)操作方案依然被廣泛用于當(dāng)前的云際存儲(chǔ)系統(tǒng)來(lái)安全地讀寫數(shù)據(jù)。Rabin[8]提出了一個(gè)信息分配算法IDA(Information Dispersal Algorithm)在不考慮安全性(安全度t=0)的情況下完成數(shù)據(jù)分發(fā)操作。在保證數(shù)據(jù)安全性的基礎(chǔ)上(安全度t=k-1),Shamir[9]提出了Shamir秘密共享算法SSSS(Shamir’s Secret Sharing Scheme)來(lái)完成數(shù)據(jù)分發(fā)操作。Blakley等人[10]提出了機(jī)密信息共享RSSS(Ramp Secret Sharing Scheme) 方案來(lái)構(gòu)建安全性可調(diào)(安全度t∈[0,k-1])的通用分發(fā)算法。Krawczyk[11]提出了消息分享方案SSMS(Secret Sharing Made Short)來(lái)減少Shamir秘密共享算法SSSS的存儲(chǔ)開銷。這些方案在設(shè)計(jì)之初只考慮了安全性,卻忽略了帶來(lái)的存儲(chǔ)空間和性能開銷的問(wèn)題。
上述數(shù)據(jù)分發(fā)算法具有很高的計(jì)算復(fù)雜性,因而在實(shí)際的云際存儲(chǔ)系統(tǒng)中很難高效地執(zhí)行這些算法。Resch等人[6]提出了AONT-RS(All-Or-Northing Transform with Reed-Solomon coding)算法來(lái)提升數(shù)據(jù)分發(fā)算法的性能和安全性。但是,AONT-RS使用隨機(jī)密鑰來(lái)加密機(jī)密消息,這種機(jī)制會(huì)影響數(shù)據(jù)去重的性能和數(shù)據(jù)存儲(chǔ)效率。Li等人[4]提出了2種不同的分配算法CRSSS (Convergent RSSS)和CAONT-RS (Convergent AONT-RS)來(lái)有效提升云際存儲(chǔ)的存儲(chǔ)空間利用率。Shen等人[12]利用非系統(tǒng)編碼HCE-PPC(Hash Cyclic Encryption-Privacy Protecting Codes)來(lái)快速進(jìn)行數(shù)據(jù)編解碼操作。Yao等人[13]提出一種安全的數(shù)據(jù)分發(fā)算法SAONT-RS(Safe and efficient AONT-RS)來(lái)提升數(shù)據(jù)存儲(chǔ)操作的安全性。通過(guò)對(duì)云際存儲(chǔ)冗余數(shù)據(jù)的合理分配,Mao等人[14]有效提升了云際存儲(chǔ)系統(tǒng)的可用性。Bernstein等人[15]構(gòu)建了一個(gè)云際存儲(chǔ)系統(tǒng)的測(cè)試平臺(tái),用于分析各種云際存儲(chǔ)方案優(yōu)缺點(diǎn)。針對(duì)數(shù)據(jù)安全性問(wèn)題,Louk等人[16]提出了一種云際同態(tài)加密方案。Shen等人[17]提出了基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)方案NCCS(Network Coding based Cloud of clouds Storage)來(lái)減少移動(dòng)應(yīng)用場(chǎng)景中用戶設(shè)備存儲(chǔ)數(shù)據(jù)的開銷。Kapusta等人[18]引入新的數(shù)據(jù)分片方式KFA(Kapusta’s Fragmentation Algorithm),將數(shù)據(jù)塊拆分為更小的迷你塊,再利用偽隨機(jī)的重排列優(yōu)化分片方式,提升數(shù)據(jù)存儲(chǔ)的安全性。表1比較了數(shù)據(jù)分發(fā)算法的安全度和存儲(chǔ)增益[17]。
Table 1 Security and storage gain of dispersal algorithms表1 主要的數(shù)據(jù)分發(fā)算法的安全度和存儲(chǔ)增益
由于不同的應(yīng)用場(chǎng)景對(duì)于安全度和存儲(chǔ)增益的要求不一致,現(xiàn)有云際存儲(chǔ)系統(tǒng)需要部署不同的數(shù)據(jù)分發(fā)算法。與此同時(shí),在數(shù)據(jù)分發(fā)過(guò)程中,由于需要執(zhí)行加密、編碼和傳輸操作,這些操作將會(huì)引起較大數(shù)據(jù)讀寫時(shí)延,從而增加了云際存儲(chǔ)系統(tǒng)的時(shí)延開銷。為了保證可以執(zhí)行相應(yīng)的存儲(chǔ)操作,云際存儲(chǔ)系統(tǒng)需要進(jìn)一步優(yōu)化讀寫操作來(lái)減少操作時(shí)延。
當(dāng)前,云際存儲(chǔ)系統(tǒng)已經(jīng)被廣泛地部署,用于存儲(chǔ)用戶數(shù)據(jù)。其中比較著名的云際存儲(chǔ)系統(tǒng)包括IBM的Cleversafe、歐盟基金會(huì)的SafeCloud和法國(guó)的InterCloud。Cleversafe使用AONT-RS[6]來(lái)分發(fā)用戶數(shù)據(jù),從而保證云端用戶數(shù)據(jù)的安全性和可靠性,其主要被用于IBM云對(duì)象存儲(chǔ)。SafeCloud主要面向個(gè)人數(shù)據(jù)存儲(chǔ)。當(dāng)前SafeCloud已經(jīng)被部署到了多個(gè)歐洲企業(yè)。InterCloud與阿里云、AWS、Azure和Google等合作,提供了軟件定義云互聯(lián)平臺(tái)。InterCloud主要用于企業(yè)數(shù)據(jù)存儲(chǔ),其客戶包括施耐德電氣、空客等公司。
當(dāng)前數(shù)據(jù)分發(fā)算法的計(jì)算瓶頸為解碼時(shí)對(duì)大規(guī)模線性方程組的求解。傳統(tǒng)求解方法有多種,如高斯消元法、LU分解法和QR分解法等。如今馮達(dá)等人[19]也提出一種優(yōu)化方案EVLE-LS(Efficient Verifiable outsourcing of solving large scale Linear Equations with Low Storage overhead)。EVLE-LS利用偽隨機(jī)數(shù)生成器將系數(shù)矩陣改造為稀疏矩陣,從而優(yōu)化解方程的時(shí)間開銷。本文以高斯消元法為求解方法分析數(shù)據(jù)分發(fā)算法的復(fù)雜度。
IDA算法計(jì)算開銷主要在解碼恢復(fù)數(shù)據(jù)階段中。對(duì)生成矩陣A求逆矩陣A-1時(shí),其復(fù)雜度為O(n3)。SSSS分發(fā)算法插值的開銷為O(n*log(n)),由于數(shù)據(jù)向量中存在冗余數(shù)據(jù),所求數(shù)據(jù)僅存在于向量組中的一個(gè)向量,所以求逆矩陣時(shí),其復(fù)雜度為O(n4)。RSSS與CRSSS的復(fù)雜度與安全度相關(guān),當(dāng)t=0時(shí),RSSS和CRSSS的復(fù)雜度為O(n3),而極端情況下t逼近k-1時(shí),復(fù)雜度為O(n4)。CRSSS的加密哈希密鑰是由自身數(shù)據(jù)生成的,以部分哈希值的計(jì)算開銷為代價(jià),減少了數(shù)據(jù)重復(fù)。SSMS的主要開銷為SSSS分享,復(fù)雜度與SSSS相同,也為O(n4)。
AONT-RS和CAONT-RS的主要開銷也是在求生成矩陣的逆矩陣這一階段。AONT-RS、CAONT-RS引入RS糾刪碼。RS code是基于有限域(Galois Field)的一種編碼算法,其可基于范德蒙(Vandermonde)矩陣和柯西矩陣,基于二者矩陣編碼的復(fù)雜度為O(n2),但在解碼這一過(guò)程中,范德蒙矩陣解碼復(fù)雜度為O(n3),而柯西矩陣解碼復(fù)雜度為O(n2)。與AONT-RS相比,CAONT-RS的加密哈希密鑰是由自身數(shù)據(jù)生成的,減少了數(shù)據(jù)重復(fù)的同時(shí)也增加了計(jì)算開銷,兩者的復(fù)雜度均為O(n3)。
HCE-PPC的主要開銷也在解碼時(shí)。與AONT-RS、CAONT-RS算法相比,HCE-PPC在編碼時(shí),不依賴整體數(shù)據(jù)的哈希值,而是基于當(dāng)前數(shù)據(jù)塊的哈希值,并行化程度更高。同時(shí),HCE-PPC的生成矩陣更加簡(jiǎn)單。雖然復(fù)雜度也為O(n3),但實(shí)際運(yùn)行中,HCE-PPC的運(yùn)行速度會(huì)更快。
而在NCCS中,NAONT-RS和NCAONT-RS所需工作量仍與AONT-RS和CAONT-RS一致,但引入網(wǎng)絡(luò)編碼時(shí),移動(dòng)終端編碼解碼傳輸?shù)闹饕^(guò)程由速度更快的服務(wù)器完成。KFA分片過(guò)程的操作為生成拆分排列、數(shù)據(jù)分發(fā)、編碼和數(shù)據(jù)重排列,其中主要開銷為迷你塊的編碼。在解碼過(guò)程中,與ANOT-RS類似,其復(fù)雜度為O(n3)。表2展示了當(dāng)前數(shù)據(jù)分發(fā)算法的復(fù)雜度。
Table 2 Complexity of dispersal algorithms in cloud-of-clouds storage system表2 云際存儲(chǔ)系統(tǒng)中主要數(shù)據(jù)分發(fā)算法的復(fù)雜度
由于在線應(yīng)用需要高速地訪問(wèn)用戶數(shù)據(jù)并保證存儲(chǔ)數(shù)據(jù)的可靠性,云際存儲(chǔ)系統(tǒng)需要頻繁地執(zhí)行讀寫、修復(fù)和傳輸操作,在不同的應(yīng)用場(chǎng)景下可針對(duì)這些操作進(jìn)行相應(yīng)的性能優(yōu)化。
在云際存儲(chǔ)系統(tǒng)中,用戶端設(shè)備需要通過(guò)讀寫用戶數(shù)據(jù)來(lái)完成相應(yīng)的讀寫請(qǐng)求。
數(shù)據(jù)分發(fā):為了保存用戶數(shù)據(jù),云際存儲(chǔ)系統(tǒng)需要將數(shù)據(jù)分發(fā)到不同的云存儲(chǔ)空間。圖2[17]展示了數(shù)據(jù)分發(fā)操作在云際存儲(chǔ)系統(tǒng)中的執(zhí)行過(guò)程。
Figure 2 Data dispersal process in cloud-of-clouds storage圖2 云際存儲(chǔ)系統(tǒng)數(shù)據(jù)分發(fā)過(guò)程
如圖2所示,云際存儲(chǔ)系統(tǒng)通過(guò)機(jī)密消息加密、編碼和傳輸?shù)榷鄠€(gè)步驟完成數(shù)據(jù)分發(fā)操作,這些操作往往會(huì)帶來(lái)大量的系統(tǒng)開銷,包括計(jì)算開銷和傳輸開銷,并降低數(shù)據(jù)寫入操作的性能。
數(shù)據(jù)讀?。涸谠齐H存儲(chǔ)系統(tǒng)讀取數(shù)據(jù)時(shí),需要執(zhí)行下載、解碼和解密操作來(lái)獲取原始用戶數(shù)據(jù),圖3[7]展示了云際存儲(chǔ)系統(tǒng)的數(shù)據(jù)讀取操作過(guò)程。
Figure 3 Data reading process in cloud-of-clods storage圖3 云際存儲(chǔ)系統(tǒng)數(shù)據(jù)讀取過(guò)程
云際存儲(chǔ)系統(tǒng)讀取操作過(guò)程中的下載、解碼和解密操作會(huì)產(chǎn)生計(jì)算和傳輸開銷,這些操作會(huì)增加存儲(chǔ)系統(tǒng)執(zhí)行讀寫操作的時(shí)延,從而影響用戶體驗(yàn)并限制云際存儲(chǔ)系統(tǒng)的應(yīng)用場(chǎng)景。
由于在云際存儲(chǔ)中存在存儲(chǔ)失效問(wèn)題,為了保證數(shù)據(jù)的可靠性,云際存儲(chǔ)系統(tǒng)需要修復(fù)失效的云節(jié)點(diǎn)中的數(shù)據(jù)。圖4[7]展示了云際存儲(chǔ)修復(fù)操作的例子。
Figure 4 Erasure code based data recovery process圖4 傳統(tǒng)糾刪碼云際存儲(chǔ)修復(fù)方案
假設(shè)大小為1 MB的原始對(duì)象被分成2個(gè)數(shù)據(jù)分片A和B,每一個(gè)分片為0.5 MB。假設(shè)分片A所在云存儲(chǔ)節(jié)點(diǎn)失效,為了修復(fù)1個(gè)分片A的數(shù)據(jù),云端需要下載總數(shù)據(jù)量為1 MB的2個(gè)分片,即分片B和A+B,來(lái)完成修復(fù)工作。這些數(shù)據(jù)傳輸操作將會(huì)帶來(lái)較大的傳輸開銷,降低云際存儲(chǔ)系統(tǒng)的可靠性。
針對(duì)云際存儲(chǔ)系統(tǒng)數(shù)據(jù)修復(fù)過(guò)程傳輸開銷較大的問(wèn)題[7],不同的研究者提出了許多減少云際存儲(chǔ)系統(tǒng)數(shù)據(jù)修復(fù)操作數(shù)據(jù)傳輸量的方案。例如,通過(guò)在云際存儲(chǔ)系統(tǒng)中部署再生碼來(lái)減少修復(fù)過(guò)程消耗的網(wǎng)絡(luò)帶寬[3]。圖5[3]展示了基于再生碼的云際存儲(chǔ)數(shù)據(jù)的修復(fù)過(guò)程的例子:
Figure 5 Regeneration code based data recovery process圖5 基于再生碼的云際存儲(chǔ)修復(fù)方案
在圖5中,一個(gè)大小為1 MB的對(duì)象分成了4個(gè)分片A、B、C和D。其中,每一個(gè)分片為0.25 MB。通過(guò)隨機(jī)線性編碼,云際存儲(chǔ)系統(tǒng)將這些分片生成編碼分片P1、P2、P3、P4、P5、P6、P7和P8。每一個(gè)編碼分片為0.25 MB。當(dāng)前在恢復(fù)數(shù)據(jù)的過(guò)程中,代理服務(wù)器僅僅需要從幸存的每一個(gè)云節(jié)點(diǎn)下載一個(gè)大小為0.25 MB的編碼分片,生成新的編碼分片P′1和P′2,并將這些分片存儲(chǔ)到新生節(jié)點(diǎn)。在這個(gè)過(guò)程中,網(wǎng)絡(luò)的數(shù)據(jù)傳輸總量為0.25*3=0.75 MB。
在這個(gè)例子中,相較于傳統(tǒng)糾刪碼數(shù)據(jù)修復(fù)方案,基于再生碼[20]的數(shù)據(jù)修復(fù)方案將修復(fù)過(guò)程需要傳輸?shù)臄?shù)據(jù)量從1 MB減少到0.75 MB。通過(guò)減少數(shù)據(jù)修復(fù)過(guò)程傳輸?shù)臄?shù)據(jù)量,云際存儲(chǔ)系統(tǒng)可以有效地減少修復(fù)過(guò)程中網(wǎng)絡(luò)數(shù)據(jù)傳輸操作所需要的時(shí)間,從而提升云際存儲(chǔ)數(shù)據(jù)的可靠性。
由于云際存儲(chǔ)系統(tǒng)需要通過(guò)互聯(lián)網(wǎng)將用戶數(shù)據(jù)上傳到云端,用戶端設(shè)備與云端之間帶寬通常十分有限。此外,云端修復(fù)數(shù)據(jù)的過(guò)程中云存儲(chǔ)節(jié)點(diǎn)之間也需要傳輸數(shù)據(jù),如何減少數(shù)據(jù)傳輸操作帶來(lái)的時(shí)延成為了提升云際存儲(chǔ)系統(tǒng)性能的關(guān)鍵性問(wèn)題。
首先,研究人員[3,18,21,22]嘗試構(gòu)建編碼來(lái)減少云際存儲(chǔ)系統(tǒng)需要完成數(shù)據(jù)讀寫和修復(fù)操作需要傳輸?shù)臄?shù)據(jù)量。通過(guò)部署再生碼,Chen等人[3]設(shè)計(jì)了NCCloud(Network-Coding-based storage system in a Cloud of Clouds)來(lái)減少修復(fù)操作網(wǎng)絡(luò)需要傳輸?shù)臄?shù)據(jù)量。通過(guò)在移動(dòng)云際存儲(chǔ)系統(tǒng)中部署網(wǎng)絡(luò)編碼方案,Shen等人[17]設(shè)計(jì)了NCCSCLOUD(Network Coding based Cloud of clouds Storage CLOUD)來(lái)減少用戶端設(shè)備的計(jì)算與數(shù)據(jù)傳輸開銷,從而提升數(shù)據(jù)分發(fā)效率。Cui 等人[21]提出了QuickSync在移動(dòng)場(chǎng)景下加速同步用戶端設(shè)備和云端的數(shù)據(jù)同步性能。Tang等人[22]通過(guò)合理存儲(chǔ)UniDrive來(lái)減少用戶在云際存儲(chǔ)數(shù)據(jù)讀取過(guò)程中的時(shí)延。通過(guò)部署非系統(tǒng)碼HCE-PPC,Shen等人[12]設(shè)計(jì)云際存儲(chǔ)系統(tǒng)CloudS(multi-Cloud Storage system with multi-level security)提升數(shù)據(jù)編碼效率。
其次,為了更好地適應(yīng)網(wǎng)絡(luò)狀態(tài)的變化,云際存儲(chǔ)系統(tǒng)需要根據(jù)當(dāng)前的網(wǎng)絡(luò)狀態(tài)調(diào)整數(shù)據(jù)傳輸策略。Li等人[23,24]通過(guò)根據(jù)網(wǎng)絡(luò)拓?fù)溥x擇和并行化數(shù)據(jù)修復(fù)過(guò)程提出了基于樹形的和基于流水線的數(shù)據(jù)修復(fù)方案。通過(guò)根據(jù)異構(gòu)網(wǎng)絡(luò)帶寬確定數(shù)據(jù)傳輸量,Wang等人[25]提出了彈性樹形修復(fù)拓?fù)錁?gòu)建檔案FTR(Flexible Tree-structured Regeneration)來(lái)保證修復(fù)后數(shù)據(jù)的完整性,并進(jìn)一步縮短修復(fù)過(guò)程的時(shí)間。Shen等人[26]提出數(shù)據(jù)修復(fù)方案OMFR(Optimal Multiple Failures Repair),以根據(jù)當(dāng)前的網(wǎng)絡(luò)帶寬決定修復(fù)操作開始的時(shí)間,從而減少修復(fù)操作需要傳輸?shù)臄?shù)據(jù)量和消耗的時(shí)間。
由于數(shù)據(jù)讀寫操作和數(shù)據(jù)修復(fù)操作是云際存儲(chǔ)系統(tǒng)中引起數(shù)據(jù)傳輸操作的主要原因,當(dāng)前云際存儲(chǔ)系統(tǒng)性能優(yōu)化方案主要圍繞減少這2種類型的操作的網(wǎng)絡(luò)開銷展開研究工作。表3展示了當(dāng)前云際存儲(chǔ)傳輸優(yōu)化方案針對(duì)的操作類型,其中PTR代表基于流水線的修復(fù)方案。
Table 3 Optimization schemes for cloud-of-clouds storage system表3 云際存儲(chǔ)系統(tǒng)傳輸優(yōu)化方案
如表3所示,當(dāng)前云際存儲(chǔ)系統(tǒng)數(shù)據(jù)傳輸優(yōu)化方案通常僅針對(duì)存儲(chǔ)或修復(fù)中的一種操作。因此,若有機(jī)地結(jié)合2種不同的數(shù)據(jù)傳輸優(yōu)化方案,可以進(jìn)一步優(yōu)化云際存儲(chǔ)系統(tǒng)數(shù)據(jù)傳輸效率。
為了高效地管理云際存儲(chǔ)的資源,云際存儲(chǔ)系統(tǒng)提出了很多資源管理方案。由于云際存儲(chǔ)系統(tǒng)主要包括用戶端設(shè)備資源和云端資源,云際存儲(chǔ)系統(tǒng)需要合理管理這些資源來(lái)完成讀寫和修復(fù)操作。
云際存儲(chǔ)系統(tǒng)需要合理地管理用戶端設(shè)備資源來(lái)完成數(shù)據(jù)讀寫操作。在云際存儲(chǔ)系統(tǒng)中,用戶端設(shè)備通常需要使用以下資源:
(1)計(jì)算資源。為了保證數(shù)據(jù)的安全性和可靠性,用戶端設(shè)備需要進(jìn)行加密操作和編碼操作,從而產(chǎn)生了用戶端設(shè)備的計(jì)算開銷[17]。然而,用戶端移動(dòng)設(shè)備的計(jì)算資源通常比較有限,如移動(dòng)存儲(chǔ)應(yīng)用場(chǎng)景下,這些加密和編碼操作帶來(lái)的計(jì)算開銷將導(dǎo)致較大的數(shù)據(jù)計(jì)算時(shí)延,且降低了云際存儲(chǔ)系統(tǒng)的存儲(chǔ)性能。
(2)傳輸資源。云際存儲(chǔ)系統(tǒng)需要通過(guò)互聯(lián)網(wǎng)來(lái)傳輸用戶端設(shè)備與云端的數(shù)據(jù),而互聯(lián)網(wǎng)上可用帶寬十分有限,并且波動(dòng)性較大[24]。因此,云際存儲(chǔ)系統(tǒng)數(shù)據(jù)讀寫性能提升的關(guān)鍵在于減少用戶端設(shè)備與云端之間傳輸?shù)臄?shù)據(jù)量。
由于用戶端設(shè)備計(jì)算和網(wǎng)絡(luò)資源有限,云際存儲(chǔ)系統(tǒng)需要根據(jù)應(yīng)用場(chǎng)景合理地分配用戶端設(shè)備的資源,從而完成相應(yīng)用戶數(shù)據(jù)讀寫操作。構(gòu)建高效的機(jī)制來(lái)有效地管理用戶端設(shè)備資源成為了保證云際存儲(chǔ)系統(tǒng)性能的關(guān)鍵性問(wèn)題。
為了在云端可靠地保存用戶數(shù)據(jù),云存儲(chǔ)節(jié)點(diǎn)需要在數(shù)據(jù)失效時(shí)完成存儲(chǔ)數(shù)據(jù)修復(fù)操作,為了修復(fù)這些失效的數(shù)據(jù),云端需要管理以下資源:
(1)計(jì)算資源。在數(shù)據(jù)修復(fù)過(guò)程中,云端需要編碼現(xiàn)存的數(shù)據(jù)來(lái)生成失效云節(jié)點(diǎn),以保證存儲(chǔ)數(shù)據(jù)的可靠性。為了完成數(shù)據(jù)的編碼操作,云端需要有效地管理云節(jié)點(diǎn)的計(jì)算資源。
(2)存儲(chǔ)資源。為了保證數(shù)據(jù)的可靠性,云節(jié)點(diǎn)在存儲(chǔ)用戶數(shù)據(jù)之外還需要保存冗余數(shù)據(jù)。因此,云際存儲(chǔ)系統(tǒng)需要在保證用戶數(shù)據(jù)可靠性的前提下合理地管理存儲(chǔ)空間,從而減小存儲(chǔ)開銷。
(3)傳輸資源。當(dāng)出現(xiàn)云節(jié)點(diǎn)故障時(shí),云際存儲(chǔ)系統(tǒng)需要根據(jù)現(xiàn)存數(shù)據(jù)恢復(fù)出已失效的數(shù)據(jù),在這個(gè)修復(fù)過(guò)程中,云節(jié)點(diǎn)之間需要傳輸大量的數(shù)據(jù)。此外,為了減少用戶端設(shè)備上傳到云端的數(shù)據(jù)量,云際存儲(chǔ)方案需要將用戶端設(shè)備的計(jì)算和傳輸開銷遷移到云端[17]。合理地管理云端網(wǎng)絡(luò)傳輸資源將有效地保證存儲(chǔ)數(shù)據(jù)可靠性和數(shù)據(jù)讀寫的性能。
為了快速地完成加解密、編解碼和傳輸操作,云際存儲(chǔ)系統(tǒng)需要高效地管理用戶端設(shè)備和云端資源。下面,本文將綜述云際存儲(chǔ)系統(tǒng)的資源管理方案并分析這些方案適用的場(chǎng)景。
為了高效地管理云際存儲(chǔ)系統(tǒng)的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源,研究人員主要從存儲(chǔ)數(shù)據(jù)可靠性和訪問(wèn)性能2方面提出了各種資源管理及優(yōu)化方案。
首先,為了保證存儲(chǔ)數(shù)據(jù)的可靠性,云際存儲(chǔ)平臺(tái)需要根據(jù)應(yīng)用場(chǎng)景的需求選擇適當(dāng)?shù)馁Y源管理策略。Pereira等人[27]設(shè)計(jì)了Storekeeper方案,并構(gòu)建了安全可靠的數(shù)據(jù)分享機(jī)制和管理平臺(tái)來(lái)整合各云服務(wù)提供商的存儲(chǔ)資源。Zhao等人[28]設(shè)計(jì)了中間件SafeSky,從而實(shí)現(xiàn)了云際存儲(chǔ)系統(tǒng)中對(duì)用戶文件存儲(chǔ)的操作請(qǐng)求進(jìn)行重定位操作。Ma等人[29]使用緩存副本的方式提出了CAROM(Cache A Replica On Modification)來(lái)提升用戶數(shù)據(jù)訪問(wèn)性能和云際存儲(chǔ)系統(tǒng)可靠性。
其次,為了快速完成用戶端讀寫操作,研究人員分析了云際存儲(chǔ)系統(tǒng)應(yīng)用場(chǎng)景的特點(diǎn)并提出了相應(yīng)的優(yōu)化方案。Chung等人[30]提出了CYRUS(Client-defined privacY-protected Reliable cloUd Service)來(lái)優(yōu)化在多用戶情況下的并行數(shù)據(jù)訪問(wèn)能力。Shen等人[31]提出了基于流水線的數(shù)據(jù)存儲(chǔ)方案,以充分利用計(jì)算和傳輸資源來(lái)并行化加密、編碼和傳輸操作,加速數(shù)據(jù)存儲(chǔ)過(guò)程。通過(guò)將糾刪碼與副本存儲(chǔ)方案相結(jié)合,Wu等人[32]提出了DAC(Deduplication_Assisted primary storage system in Cloud-of-clouds)方案來(lái)增加數(shù)據(jù)去冗余度,從而提升高存儲(chǔ)頻率用戶數(shù)據(jù)的數(shù)據(jù)訪問(wèn)性能。通過(guò)使用糾刪碼與副本來(lái)存儲(chǔ)不同大小的文件,Mao等人[14]設(shè)計(jì)了HyRD來(lái)減少云際存儲(chǔ)系統(tǒng)的存儲(chǔ)開銷和訪問(wèn)時(shí)延。Bernstein等人[33]設(shè)計(jì)了簡(jiǎn)單副本管理協(xié)議SSRP(Simple Storage Replication Protocol)來(lái)管理云際存儲(chǔ)空間。表4展示了云際存儲(chǔ)系統(tǒng)中主要資源管理方案,其中Pipeline代表基于流水線的數(shù)據(jù)存儲(chǔ)方案。
Table 4 Resource management schemes forcloud-of-clouds storage system表4 云際存儲(chǔ)系統(tǒng)資源管理方案
如表4所示,當(dāng)前的資源管理方案通常僅優(yōu)化針對(duì)系統(tǒng)可靠性和性能中的一項(xiàng)。因此,云際存儲(chǔ)系統(tǒng)資源管理方案如何在不同應(yīng)用場(chǎng)景下兼顧數(shù)據(jù)可靠性和讀寫性能依然是一個(gè)值得研究的問(wèn)題。
由于云際存儲(chǔ)具有高可靠性、高安全性的特點(diǎn),云際存儲(chǔ)方案被廣泛應(yīng)用到了數(shù)據(jù)備份、移動(dòng)存儲(chǔ)應(yīng)用和云際計(jì)算等諸多場(chǎng)景。
當(dāng)存儲(chǔ)的數(shù)據(jù)出現(xiàn)失效時(shí),用戶端設(shè)備需要從其它存儲(chǔ)系統(tǒng)中獲取備份數(shù)據(jù)來(lái)保證用戶數(shù)據(jù)的可靠性。通過(guò)將數(shù)據(jù)加密和編碼后分發(fā)到不同的云,云際存儲(chǔ)提供了安全且可靠的數(shù)據(jù)存儲(chǔ)服務(wù)。因此,云際存儲(chǔ)廣泛地應(yīng)用到了數(shù)據(jù)備份場(chǎng)景。
圖6[21]展示了云際備份存儲(chǔ)場(chǎng)景。
Figure 6 Backup paradigm for cloud-of-clouds storage system圖6 云際備份存儲(chǔ)場(chǎng)景
通過(guò)使用數(shù)據(jù)同步算法[21],用戶端設(shè)備可以將本地?cái)?shù)據(jù)與云際存儲(chǔ)系統(tǒng)的數(shù)據(jù)進(jìn)行同步操作。當(dāng)前用戶端設(shè)備出現(xiàn)數(shù)據(jù)失效時(shí),用戶端設(shè)備可以下載備份在云端的數(shù)據(jù),從而恢復(fù)出本地失效的數(shù)據(jù)。在這個(gè)過(guò)程中,云際存儲(chǔ)系統(tǒng)需要保證存儲(chǔ)在云端數(shù)據(jù)的安全性和可靠性。
雖然備份存儲(chǔ)系統(tǒng)可以安全可靠地存儲(chǔ)用戶數(shù)據(jù),云際存儲(chǔ)系統(tǒng)部署到其他的應(yīng)用場(chǎng)景依然面對(duì)諸多挑戰(zhàn)。首先,為了保證在線應(yīng)用的用戶體驗(yàn),云際存儲(chǔ)系統(tǒng)需要根據(jù)應(yīng)用場(chǎng)景來(lái)提升讀寫操作的性能。其次,由于不同的應(yīng)用場(chǎng)景往往有著不同數(shù)據(jù)存儲(chǔ)需求,云際存儲(chǔ)系統(tǒng)需要有針對(duì)性地優(yōu)化相應(yīng)的數(shù)據(jù)讀寫和修復(fù)方案。下面,本文將分析2種經(jīng)典的云際存儲(chǔ)應(yīng)用場(chǎng)景,即移動(dòng)應(yīng)用場(chǎng)景和云際計(jì)算場(chǎng)景,并總結(jié)不同的云際存儲(chǔ)系統(tǒng)的應(yīng)用場(chǎng)景和這些系統(tǒng)包含的主要功能及實(shí)現(xiàn)機(jī)制。
在移動(dòng)云際存儲(chǔ)系統(tǒng)中,用戶端設(shè)備相較于云端的計(jì)算和傳輸資源通常較為有限,并且用戶端設(shè)備需要通過(guò)無(wú)線網(wǎng)絡(luò)(如WiFi[34]、LTE[35]和5G NR[36])和互聯(lián)網(wǎng)來(lái)傳輸數(shù)據(jù)。因此,相較于云端虛擬機(jī),移動(dòng)設(shè)備需要更長(zhǎng)的時(shí)間來(lái)完成數(shù)據(jù)加密、編碼和傳輸操作。
根據(jù)移動(dòng)應(yīng)用場(chǎng)景下用戶端設(shè)備和云端設(shè)備的特點(diǎn),云際存儲(chǔ)系統(tǒng)需要調(diào)整數(shù)據(jù)分發(fā)方案來(lái)優(yōu)化數(shù)據(jù)讀寫操作的性能?;诰W(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)方案通過(guò)使用網(wǎng)絡(luò)編碼存儲(chǔ)的例子來(lái)說(shuō)明如何在實(shí)際的云際存儲(chǔ)系統(tǒng)中減少用戶端上傳到云端的數(shù)據(jù)量。
假設(shè)移動(dòng)云際存儲(chǔ)系統(tǒng)中有4個(gè)不同的云和1個(gè)用戶端設(shè)備。用戶希望寫入1個(gè)M字節(jié)大小的機(jī)密消息。為了存儲(chǔ)k個(gè)分片加密后的M/k字節(jié)消息,當(dāng)前分發(fā)方案需要用戶編碼并將分片上傳到所有的云。圖7[17]展示了云際存儲(chǔ)系統(tǒng)中數(shù)據(jù)分發(fā)過(guò)程。
Figure 7 Traditional and the dispersal scheme based on network code圖7 傳統(tǒng)分發(fā)方案和基于網(wǎng)絡(luò)編碼的分發(fā)方案
圖7a展示了傳統(tǒng)基于糾刪碼的數(shù)據(jù)分發(fā)方案。在存儲(chǔ)的過(guò)程中,用戶設(shè)備將加密消息分成2個(gè)數(shù)據(jù)分片A和B,編碼后生成校驗(yàn)分片A+B和A+2B,并且最后上傳到云端。為了存儲(chǔ)M字節(jié)機(jī)密消息,用戶端設(shè)備編碼M字節(jié)數(shù)據(jù)并發(fā)送了2M字節(jié)數(shù)據(jù)。由于移動(dòng)設(shè)備通常計(jì)算和傳輸資源有限,這些操作將會(huì)嚴(yán)重影響分發(fā)操作的性能。
為了減少用戶端設(shè)備數(shù)據(jù)計(jì)算和傳輸開銷,云際存儲(chǔ)系統(tǒng)可以通過(guò)部署網(wǎng)絡(luò)編碼將這些開銷遷移到云端系統(tǒng)。基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)方案將4個(gè)云分成2個(gè)初始云和2個(gè)后繼云。圖7b展示了基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)方案執(zhí)行過(guò)程,首先,用戶設(shè)備生成2個(gè)數(shù)據(jù)分片A和B,并且上傳這些分片到初始云。其次,初始云將分片A和B分成數(shù)據(jù)包A1、A2、B1和B2。其中,每一個(gè)包大小為M/4字節(jié)。然后,初始云將數(shù)據(jù)包A1、B1、A2和B2傳輸?shù)胶罄^云。最后,后繼云編碼生成數(shù)據(jù)包A1+B1、A1+2B1、A2+B2和A2+2B2,并交換數(shù)據(jù)包A1+2B1和A2+B2來(lái)生成校驗(yàn)分片A+B和A+2B。
相較于基于糾刪碼的數(shù)據(jù)分發(fā)方案,用戶端移動(dòng)設(shè)備需要編碼M字節(jié)并傳輸2M字節(jié)數(shù)據(jù),通過(guò)部署網(wǎng)絡(luò)編碼方案,用戶端移動(dòng)設(shè)備在無(wú)需編碼操作的前提下,只需要上傳M字節(jié)數(shù)據(jù)。
通過(guò)上述例子可知,通過(guò)將編碼計(jì)算和網(wǎng)絡(luò)傳輸負(fù)載遷移到云端,基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)方案可以有效地減少用戶端設(shè)備上傳到云端的數(shù)據(jù)量,從而有效地提升移動(dòng)設(shè)備的存儲(chǔ)操作性能。與此同時(shí),除了存儲(chǔ)操作外,云際存儲(chǔ)依然存在數(shù)據(jù)更新時(shí)延較長(zhǎng)等問(wèn)題。因此,如何優(yōu)化其他操作依然是提升移動(dòng)云際存儲(chǔ)性能的重點(diǎn)問(wèn)題。
通過(guò)合理地協(xié)調(diào)各個(gè)用戶占用云端的各類資源,云際計(jì)算平臺(tái)[37]提供了高效的服務(wù)平臺(tái)來(lái)完成用戶端設(shè)備提交的各種計(jì)算和存儲(chǔ)任務(wù)。圖8展示了云際計(jì)算系統(tǒng)的體系結(jié)構(gòu)[37]。
Figure 8 Architecture of cloud-of-clouds computing 圖8 云際計(jì)算系統(tǒng)架構(gòu)
為了有效地利用云端資源和管理用戶端設(shè)備,云際計(jì)算系統(tǒng)通過(guò)云際服務(wù)仲裁系統(tǒng)整合了云端資源,并將用戶進(jìn)行分組管理。為了保證數(shù)據(jù)可靠性,云際計(jì)算系統(tǒng)需要在云端存儲(chǔ)多個(gè)副本并要求對(duì)應(yīng)的云際存儲(chǔ)系統(tǒng)保證這些副本的一致性。這將引入較大的數(shù)據(jù)讀寫時(shí)延,并嚴(yán)重降低系統(tǒng)性能。
為了給云際計(jì)算提供高可用的存儲(chǔ)服務(wù),云際存儲(chǔ)系統(tǒng)需要在保證數(shù)據(jù)一致性的前提下,降低數(shù)據(jù)存儲(chǔ)的時(shí)延。針對(duì)這一問(wèn)題,研究人員提出了許多高效的副本數(shù)據(jù)讀寫策略。例如,DepSky[5]通過(guò)加入元數(shù)據(jù)來(lái)實(shí)現(xiàn)云端副本的弱一致性。
圖9[5]展示了DepSky的數(shù)據(jù)存儲(chǔ)和讀取過(guò)程:
Figure 9 Data storage and read process of DepSky圖9 DepSky的數(shù)據(jù)存儲(chǔ)和讀取過(guò)程
不同于經(jīng)典的一致性協(xié)議(如,拜占庭仲裁)[38],Depsky使用元數(shù)據(jù)來(lái)確定當(dāng)前最新版本的副本。為了保證寫入數(shù)據(jù)的完整性,計(jì)算節(jié)點(diǎn)會(huì)先在云端存儲(chǔ)副本數(shù)據(jù),然后將帶有版本信息的元數(shù)據(jù)上傳到云端。在數(shù)據(jù)讀取過(guò)程中,計(jì)算節(jié)點(diǎn)首先從云端下載元數(shù)據(jù)來(lái)確定云端副本的版本,從而保證在此之后計(jì)算節(jié)點(diǎn)可以獲取最新版本的副本數(shù)據(jù)。
綜上所述,由于相較于直接讀取副本數(shù)據(jù)僅需要多下載副本元數(shù)據(jù),這種方案可以以較小的代價(jià)保證寫入和讀取數(shù)據(jù)的一致性。由于云際計(jì)算系統(tǒng)需要對(duì)存儲(chǔ)數(shù)據(jù)復(fù)制多個(gè)副本,這些副本的存儲(chǔ)往往會(huì)占用較大的存儲(chǔ)空間。如何在保證數(shù)據(jù)一致性和訪問(wèn)性能的前提下,部署存儲(chǔ)空間利用率高的存儲(chǔ)方案(如糾刪碼存儲(chǔ))依然是一個(gè)值得研究的問(wèn)題。
雖然當(dāng)前有很多數(shù)據(jù)分發(fā)方案,但如何部署這些存儲(chǔ)機(jī)制到實(shí)際的在線應(yīng)用中依然是一個(gè)具有挑戰(zhàn)性的問(wèn)題。研究人員開發(fā)了許多云際存儲(chǔ)系統(tǒng)來(lái)滿足各種應(yīng)用場(chǎng)景的數(shù)據(jù)存儲(chǔ)需求。
首先,為了安全且可靠地存儲(chǔ)用戶數(shù)據(jù),云際存儲(chǔ)系統(tǒng)使用了不同的安全和可靠性方案。通過(guò)設(shè)計(jì)仲裁機(jī)制,Bessani等人[5]提出了DepSky系統(tǒng),解決了云端存儲(chǔ)副本數(shù)據(jù)的一致性問(wèn)題。Bessani等人[39]設(shè)計(jì)了SCFS(Shared Cloud-backed File Systems),通過(guò)設(shè)計(jì)一致性將文件分發(fā)到多個(gè)云的元數(shù)據(jù)和數(shù)據(jù)來(lái)提升數(shù)據(jù)分享的效率。Lacoste等人[40]構(gòu)建了Supercloud平臺(tái),從而提升了云際計(jì)算操作的安全性和可靠性。通過(guò)應(yīng)用冗余磁盤陣列編碼技術(shù)(RAID),Abu-Libdeh等人[2]設(shè)計(jì)了RACS(Redundant Array of Cloud Storage)來(lái)提升云際存儲(chǔ)系統(tǒng)的可靠性和數(shù)據(jù)存儲(chǔ)效率。通過(guò)將元數(shù)據(jù)和數(shù)據(jù)分別保存在私有云和公有云,Dobre等人[41]設(shè)計(jì)了Hybris來(lái)提升云際存儲(chǔ)系統(tǒng)的安全性。通過(guò)在用戶端設(shè)備加入遠(yuǎn)端認(rèn)證服務(wù),Matos等人[42]構(gòu)建了RockFS(RecOverable Cloud-backed File-System)系統(tǒng)來(lái)同時(shí)兼顧用戶端設(shè)備及云端存儲(chǔ)數(shù)據(jù)的可靠性。
除此以外,為了提升云際存儲(chǔ)系統(tǒng)操作的執(zhí)行效率,研究人員在不同應(yīng)用場(chǎng)景下優(yōu)化了云際存儲(chǔ)系統(tǒng)性能。通過(guò)在多個(gè)云存儲(chǔ)提供商存儲(chǔ)用戶數(shù)據(jù)的副本,Wu等人[43]設(shè)計(jì)了Spanstore系統(tǒng),從而提升云際文件存儲(chǔ)系統(tǒng)的可靠性和訪問(wèn)性能。通過(guò)將CAONT-RS和CRSSS部署到云端,Li等人[44]設(shè)計(jì)了CDStore(Store via Convergent Dispersal)來(lái)提升云際存儲(chǔ)系統(tǒng)的存儲(chǔ)空間利用率。Mu等人[45]提出了μlibcloud作為中間件來(lái)統(tǒng)一管理云際存儲(chǔ)的訪問(wèn)請(qǐng)求,從而提升云際存儲(chǔ)系統(tǒng)的可用性。Verissimo等人[37]構(gòu)建了Tcloud平臺(tái)來(lái)處理云際計(jì)算任務(wù)。Burihabwa等人[46]總結(jié)了云際存儲(chǔ)系統(tǒng)的數(shù)據(jù)加密算法和可靠性機(jī)制,并測(cè)量了加密和傳輸操作的執(zhí)行效率,以對(duì)比存儲(chǔ)系統(tǒng)性能。表5展示了當(dāng)前云際存儲(chǔ)系統(tǒng)及其應(yīng)用場(chǎng)景。
通過(guò)分析表5可以發(fā)現(xiàn),當(dāng)前的云際存儲(chǔ)系統(tǒng)的應(yīng)用場(chǎng)景主要集中在存儲(chǔ)備份。由于云際存儲(chǔ)系統(tǒng)在數(shù)據(jù)讀寫過(guò)程中需要一系列的計(jì)算、傳輸和存儲(chǔ)操作,其數(shù)據(jù)讀寫時(shí)延依然是制約其上運(yùn)行的應(yīng)用性能的瓶頸。如何進(jìn)一步將云際存儲(chǔ)系統(tǒng)部署到不同的在線應(yīng)用中依然是一個(gè)值得研究的問(wèn)題。
Table 5 Cloud-of-clouds storage system and their application scenarios表5 云際存儲(chǔ)系統(tǒng)及其主要應(yīng)用場(chǎng)景
云際存儲(chǔ)系統(tǒng)作為一種高效的云存儲(chǔ)資源管理方案被廣泛地應(yīng)用于當(dāng)前的在線存儲(chǔ)系統(tǒng)。本文綜述了當(dāng)前云際存儲(chǔ)系統(tǒng)的相關(guān)工作,包括數(shù)據(jù)分發(fā)方案、網(wǎng)絡(luò)傳輸方案、云際存儲(chǔ)系統(tǒng)資源管理機(jī)制及其主要的應(yīng)用場(chǎng)景。在此基礎(chǔ)上,本文總結(jié)了當(dāng)前云際存儲(chǔ)系統(tǒng)適用的應(yīng)用場(chǎng)景和相應(yīng)的存儲(chǔ)系統(tǒng)性能優(yōu)化方案,并在此基礎(chǔ)上分析了當(dāng)前網(wǎng)絡(luò)傳輸機(jī)制和資源管理方案對(duì)于云際存儲(chǔ)系統(tǒng)性能的影響。
雖然當(dāng)前的云際存儲(chǔ)系統(tǒng)可以安全可靠地存儲(chǔ)用戶數(shù)據(jù),實(shí)際系統(tǒng)運(yùn)行過(guò)程中依然存在諸多性能瓶頸,例如網(wǎng)絡(luò)帶寬嚴(yán)重限制了云際存儲(chǔ)系統(tǒng)的廣泛應(yīng)用。為了克服這些性能瓶頸,云際存儲(chǔ)系統(tǒng)需要使用新的網(wǎng)絡(luò)傳輸和存儲(chǔ)方案。例如,為了減少用戶端設(shè)備的網(wǎng)絡(luò)傳輸時(shí)延,云際存儲(chǔ)系統(tǒng)可以將數(shù)據(jù)緩存在邊緣節(jié)點(diǎn),從而加快讀寫操作。此外,云際存儲(chǔ)系統(tǒng)也需要針對(duì)新出現(xiàn)的應(yīng)用場(chǎng)景,如區(qū)塊鏈及內(nèi)容分發(fā)系統(tǒng),提出相應(yīng)的優(yōu)化方案。