□孫小雁
(玉林師范學(xué)院 計算機(jī)科學(xué)與工程學(xué)院,廣西 玉林 537000)
云存儲技術(shù)及其發(fā)展
□孫小雁
(玉林師范學(xué)院 計算機(jī)科學(xué)與工程學(xué)院,廣西 玉林 537000)
云計算的迅速發(fā)展吸引了研究人員的深入研究與普通民眾的廣泛關(guān)注,隨著云端數(shù)據(jù)越來豐富、用戶數(shù)量越來越龐大,云存儲技術(shù)的發(fā)展越來越受到重視. 對當(dāng)前主流的云存儲平臺及平臺中采用的云存儲技術(shù)進(jìn)行了詳細(xì)的介紹,并剖析了新形勢、新需求下云存儲技術(shù)中存在的若干問題.
云計算;云存儲;技術(shù);平臺
云計算是在分布式系統(tǒng)、網(wǎng)格計算等基礎(chǔ)上提出的一個新概念,它面對的是超大規(guī)模的分布式環(huán)境,其核心是提供海量數(shù)據(jù)存儲以及高效率的計算能力.云計算利用互聯(lián)網(wǎng)平臺為用戶提供分布式、可靠的、低成本的、強(qiáng)大的計算力和無限的存儲、數(shù)據(jù)、信息、知識和協(xié)作可能,使人類信息技術(shù)達(dá)到無時無處不在的可用性和服務(wù)能力[1,2].云計算平臺可以將網(wǎng)絡(luò)上的各種資源進(jìn)行集中,包括存儲、服務(wù)、軟件等,以虛擬化的形式為用戶提供服務(wù),以分布式的方式實現(xiàn)計算和存儲的并行處理.數(shù)據(jù)的存儲能力和分布式的計算能力是云計算平臺實施的兩個關(guān)鍵因素,因此,“云計算=存儲云+計算云”[2].
作為云計算的基礎(chǔ)、核心技術(shù),云存儲受到了廣泛的關(guān)注與研究,如何建立安全、性價比高的存儲成為業(yè)界的普遍需求.云計算的數(shù)據(jù)具有海量、異構(gòu)、非確定性的特點,這些對存儲技術(shù)提出了較高的要求,在存儲系統(tǒng)構(gòu)建、負(fù)載均衡策略、數(shù)據(jù)安全、容災(zāi)恢復(fù)及專業(yè)化服務(wù)等方面提出了巨大的挑戰(zhàn).本文介紹當(dāng)前主流的云存儲平臺及技術(shù),結(jié)合云計算的發(fā)展,分析云存儲技術(shù)面臨的問題及發(fā)展趨勢.
2.1 云存儲技術(shù)介紹
云存儲將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)調(diào)工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能[3].云存儲是分布式存儲技術(shù)與虛擬化技術(shù)結(jié)合的產(chǎn)物,意味著存儲可以作為一種服務(wù),通過互聯(lián)網(wǎng)提供給用戶,在服務(wù)的過程中,云存儲技術(shù)成為影響服務(wù)質(zhì)量的關(guān)鍵因素.
數(shù)據(jù)存儲技術(shù)先后經(jīng)歷了從磁帶、磁盤、磁盤陣列(Redundant Arrays of Independent Disks,RAID)到分布式存儲系統(tǒng)的發(fā)展歷程,目前存儲系統(tǒng)與平臺已經(jīng)成信息社會的重要基礎(chǔ)設(shè)施.近幾年,云計算的快速發(fā)展導(dǎo)致存儲技術(shù)面臨新的需求、新的挑戰(zhàn),推動了高性能存儲技術(shù)的飛躍發(fā)展,產(chǎn)生了如谷歌公司的Google File System (GFS)、Apache公司的Hadoop Distributed File System(HDFS)、亞馬遜公司的Simple Storage Service (S3,簡單存儲服務(wù)) 等一些主流的存儲技術(shù),并且部署在云計算平臺上投入商用[4].
2.2 云存儲平臺與云存儲技術(shù)
云存儲方式,按其技術(shù)的發(fā)展,主要分為集中式存儲和分布式存儲兩類[5,6].其中分布式網(wǎng)絡(luò)存儲不但提高了數(shù)據(jù)存儲的可靠性、可用性和存取效率,還易于擴(kuò)展.正是由于這些優(yōu)勢,目前的云存儲大都采用分布式存儲方式.
Google公司提出的GFS(Google File System)、MapReduce、BigTable等技術(shù)是分布式數(shù)據(jù)處理技術(shù)的具體實現(xiàn),是Google搜索引擎系統(tǒng)三大核心技術(shù).GFS是一個面向大規(guī)模數(shù)據(jù)密集型應(yīng)用的、可伸縮的分布式文件系統(tǒng),采用了 Master/Slave 結(jié)構(gòu), 可以運行在廣泛存在的廉價硬件設(shè)備上,并提供災(zāi)難冗余的能力,為大量客戶機(jī)提供了高性能的服務(wù).一個GFS集群由一個Master和大量的chunkserver構(gòu)成(如圖1所示),并被許多客戶(Client)訪問,GFS中的文件被分成固定大小的塊(block),每個塊由一個不變的、全局唯一的64位的chunk-handle標(biāo)識,每一個塊被復(fù)制到多個chunkserver上,通過集中目錄服務(wù)器Master來實現(xiàn)整個結(jié)構(gòu)的資源定位.客戶端將需要定位的資源名和chunk索引發(fā)送給master, master返回資源所在chunkserver的相關(guān)信息,客戶端收到信息后直接與chunkserver進(jìn)行通信[7].在GFS中,GFS中心化的資源定位算法最大優(yōu)點是簡單,易實現(xiàn),成功率高,但其效率會隨著數(shù)據(jù)存儲量的增加而遞減[8].
圖1 GFS系統(tǒng)框架
2004年,Google公司最先提出 MapReduce技術(shù)[9],作為面向大規(guī)模數(shù)據(jù)分析和處理的并行計算模型,無論是在工業(yè)界還是學(xué)術(shù)界,均引起了廣泛的關(guān)注及深入的討論與研究.MapReduce采用了分而治之的思想,主要思路是將大規(guī)模數(shù)據(jù)處理任務(wù)分為很多子任務(wù),并將子任務(wù)分配給若干個分布式的機(jī)器來并行完成批處理作業(yè),因此其基本形式有 Map和Reduce兩個處理階段,將輸入源分成若干塊后,其中的 Map階段根據(jù)某種規(guī)則對數(shù)據(jù)分類、生成中間結(jié)果,寫入本地硬盤.Reduce階段則將之前產(chǎn)生的中間結(jié)果合并、排序與輸出[10,11].MapReduce并行計算的過程如圖2所示.
圖2 MapReduce并行計算過程
BigTable是Google為有效管理大規(guī)模結(jié)構(gòu)化數(shù)據(jù)而設(shè)計的分布式存儲系統(tǒng)[12],被設(shè)計用來處理海量數(shù)據(jù).BigTable包括行、列、時間戳等基本元素,其中包含由多個行組成的小表,每個小表保存在一個小表服務(wù)器(Tabletserver)的節(jié)點中.將一臺服務(wù)器作為Master服務(wù)器(主服務(wù)器)保存元數(shù)據(jù),同時負(fù)責(zé)對表服務(wù)器進(jìn)行管理與負(fù)載均衡調(diào)配.通過編程接口,元數(shù)據(jù)通信在用戶端與Master服務(wù)器之間進(jìn)行,而數(shù)據(jù)通信則在用戶端與表服務(wù)器之間進(jìn)行[7,13].
除了谷歌公司的云存儲平臺之外,Apache軟件基金會推出了開放源碼的Hadoop系統(tǒng),實現(xiàn)了MapReduce編程模型、分布式文件系統(tǒng)和分布式列簇數(shù)據(jù)庫[14].Hadoop的分布式文件系統(tǒng)(HDFS)位于最底部,上一層是MapReduce引擎.HDFS存儲所有的文件,而MapReduce引擎則由obTrackers 和 TaskTrackers共同組成[15].與GFS相同,Hadoop也采用了Master/Slave結(jié)構(gòu),一個Hadoop文件系統(tǒng)由唯一一個NameNode和數(shù)個DataNode組成,NameNode負(fù)責(zé)提供元數(shù)據(jù)服務(wù),DataNode則負(fù)責(zé)存儲服務(wù).存儲在 HDFS 中的文件被分成塊,然后將這些塊復(fù)制到多個計算機(jī)中.客戶端向Hadoop系統(tǒng)讀取文件的過程如圖3所示:客戶端先向NameNode提出文件訪問申請,NameNode返回該文件的數(shù)據(jù)塊的位置信息,之后,客戶端根據(jù)NameNode返回的位置信息向?qū)?yīng)的DataNode讀取所請求的文件數(shù)據(jù)[16].
圖3 HDFS文件讀取示意圖
2011年12月Hadoop1.0.0版本釋出,標(biāo)志著Hadoop已經(jīng)初具生產(chǎn)規(guī)模[17].2013年2月,Wandisco推出了世界第一款可用于實際業(yè)務(wù)環(huán)境的Apache Hadoop 2 -WANdisco Distro(WDD)[12].截止目前,Hadoop系統(tǒng)在Yahoo!、IBM、百度、Facebook等國際知名公司得到了大量應(yīng)用和快速的發(fā)展.IBM“藍(lán)云”計算平臺也采用了Hadoop系統(tǒng),目前已被多個跨國公司部署使用.
亞馬遜(Amazon)是最早提供遠(yuǎn)程云計算平臺服務(wù)的公司,該公司提供的S3云存儲服務(wù)已經(jīng)成為目前運作最成熟的云存儲平臺之一[18].亞馬遜將彈性計算云建立在大規(guī)模集群計算的平臺上,利用彈性云計算服務(wù)(Amazon Elastic Compute Cloud)和簡單存儲服務(wù)(Amazon S3,Amazon Simple Storage Service),用戶可在亞馬遜的云計算平臺上創(chuàng)建自己的操作系統(tǒng)、應(yīng)用程序、系統(tǒng)設(shè)置等各種映像,用戶通過彈性計算云的網(wǎng)絡(luò)界面去操作在云計算平臺上運行的各個實例[7].亞馬遜存儲平臺的關(guān)鍵技術(shù)是Dynamo分布式存儲引擎[19],Dynamo是Amazon提供的一款高可用的分布式Key-Value存儲系統(tǒng),其滿足可伸縮性、可用性、可靠性等要求.Dynamo 綜合了一些著名的技術(shù)來實現(xiàn)可伸縮性和可用性:數(shù)據(jù)劃分(data partitioned)和使用一致性哈希的復(fù)制(replicated)[20],并通過對象版本(object versioning)提供一致性[21].在更新時,副本之間的一致性由類仲裁技術(shù)和去中心化的副本同步協(xié)議來維持.
雖然Google、IBM、Amazon、Microsoft等云計算平臺已經(jīng)為很多用戶所使用,但是云計算在行業(yè)標(biāo)準(zhǔn)、數(shù)據(jù)安全、服務(wù)質(zhì)量、應(yīng)用軟件等方面也面臨著各種問題[1],云存儲也面臨著如何保障數(shù)據(jù)安全性、提高數(shù)據(jù)查詢算法效率、修復(fù)存儲系統(tǒng)故障等眾多難題.
資源的共享服務(wù)實現(xiàn)了成本下降和可擴(kuò)展性提高,但同時也給信任與安全帶來了巨大挑戰(zhàn).云端管理用戶的應(yīng)用,降低了用戶對數(shù)據(jù)處理過程的可控性,為防止提供商利用其特權(quán)竊取租戶的隱私信息,存儲系統(tǒng)必須建立相應(yīng)的機(jī)制保證用戶和提供商間的可信關(guān)系;另一方面,用戶間的數(shù)據(jù)共享和傳輸依賴于用戶設(shè)置的訪問控制協(xié)議,為防止數(shù)據(jù)的惡意篡改和泄露,需要提供必要的手段保證用戶間的可信關(guān)系[22].用戶將與生活、工作、學(xué)習(xí)等緊密相關(guān)的各種個人數(shù)據(jù)存儲在云端,因此,對云平臺而言,其可靠性、完整性和私密性等要求必須嚴(yán)格控制.如何解決用戶數(shù)據(jù)的共享和隱私保護(hù)之間、用戶數(shù)據(jù)的可靠保護(hù)和存儲高效之間的矛盾是當(dāng)前面臨的很大的挑戰(zhàn),建立完善的云平臺數(shù)據(jù)安全理論和可證明的信任理論,將是云存儲技術(shù)中即將深入研究的方向.
查詢處理方法和優(yōu)化策略對云數(shù)據(jù)管理系統(tǒng)來說是一個關(guān)鍵性的問題[23].云存儲的數(shù)據(jù)與傳統(tǒng)的數(shù)據(jù)庫中的數(shù)據(jù)相比,具有數(shù)據(jù)量大、異結(jié)構(gòu)性、非確定性等特點,大量數(shù)據(jù)在數(shù)據(jù)來源、數(shù)據(jù)形態(tài)、數(shù)據(jù)結(jié)構(gòu)上各不相同,結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)并存,對查詢算法的可用性和效率提出了嚴(yán)峻的挑戰(zhàn),因此,如何為不同的數(shù)據(jù)選擇合適的查詢算法是一個亟待解決的問題,設(shè)計高效、高可用性、低復(fù)雜度的輕量級查詢算法將是云存儲技術(shù)發(fā)展中即將緊迫研究的內(nèi)容.
云存儲環(huán)境中,節(jié)點失效或受損是分布式存儲中常見的問題,此時需要在其它未受損的節(jié)點中取出若干個對受損節(jié)點進(jìn)行修復(fù)以保證數(shù)據(jù)的完整性與存儲系統(tǒng)的可靠性[6].由于數(shù)據(jù)量龐大、用戶數(shù)量多,在保證系統(tǒng)可靠性的同時使修復(fù)節(jié)點的性能開銷盡可能的小進(jìn)而不影響用戶的服務(wù)體驗,是節(jié)點修復(fù)機(jī)制面臨的關(guān)鍵,提高多節(jié)點同步修復(fù)的能力和效率、降低修復(fù)的復(fù)雜度和開銷將是云存儲技術(shù)發(fā)展中即將解決的重要問題.
盡管分布式存儲已經(jīng)被工業(yè)界和廣大學(xué)者深入研究,但在云計算環(huán)境中,面對著異地、異構(gòu)、海量的數(shù)據(jù)和巨大用戶數(shù)量,云存儲技術(shù)還有很長的路要走.除了以上提到的問題之外,在云數(shù)據(jù)管理、云數(shù)據(jù)挖掘、用戶服務(wù)性能、云數(shù)據(jù)索引、云數(shù)據(jù)容錯等各方面都需要產(chǎn)業(yè)界與用戶、科研人員攜手解決.
隨著工業(yè)界與學(xué)術(shù)界越來越多的研究及普通民眾的不斷參與,云存儲技術(shù)得以不斷發(fā)展與完善,云計算平臺也已經(jīng)開始大規(guī)模商用.本文在云數(shù)據(jù)迅速膨脹、用戶數(shù)量迅速擴(kuò)張的新形勢下,介紹了當(dāng)前主流的云存儲平臺與云存儲技術(shù)的現(xiàn)狀,分析了云存儲中存在的急需解決的問題,并預(yù)測了云存儲未來的發(fā)展趨勢.相信隨著云存儲系統(tǒng)的實踐經(jīng)驗的不斷積累及研究工作的不斷深入,在不久的將來,云存儲平臺將獲得更多的關(guān)注,相關(guān)的技術(shù)成果將更加豐富,云存儲平臺將成為廣大民眾最為活躍的共享平臺,并且在更多的領(lǐng)域中發(fā)揮著更大的作用. ■
[1]曾文英,趙躍龍,尚敏.云計算及云存儲生態(tài)系統(tǒng)研究[J].計算機(jī)研究與發(fā)展,2011,48:234-239.
[2]劉正偉,文中領(lǐng),張海濤. 云計算和云數(shù)據(jù)管理技術(shù)[J]. 計算機(jī)研究與發(fā)展,2012,48: 26-31.
[3]陳杰. 大數(shù)據(jù)場景下的云存儲技術(shù)與應(yīng)用[J]. 中興通訊技術(shù),2012,18(06): 47-51.
[4]吳吉義,傅建慶,平玲娣等. 一種對等結(jié)構(gòu)的云存儲系統(tǒng)研究[J]. 電子學(xué)報,2011,39(5): 1100-1107.
[5]J KENNEDY, C EBERHART R. A discrete binary version of the particle swarm algorithm[C]; proceedings of the IEEE International Conference on Systems,Man,and Cybernetics, Orlando, FL, USA, 1997.4104-4108.
[6]黃倩,王柳蘇,謝顯中. 基于干擾對齊的高效云存儲方法研究綜述[J]. 計算機(jī)應(yīng)用研究,2013,30(4): 977-982.
[7]陳康,鄭緯民. 云計算: 系統(tǒng)實例與研究現(xiàn)狀[J]. 軟件學(xué)報,2009,20(5): 1337-1348
[8]趙季紅,柳明,曲樺. 基于BFA的云存儲資源定位算法研究[J]. 微電子學(xué)與計算機(jī),2013,30(7): 16-20.
[9]DEAN JEFFREY, GHEMAWAT SANJAY.MapReduce: simplified data processing on large clusters[J].Communications of the ACM, 2008, 51(1): 107-113.
[10]覃雄派,王會舉,杜小勇等. 大數(shù)據(jù)分析——RDBMS與 MapReduce 的競爭與共生[J]. 軟件學(xué)報,2012,23(1): 32-45.
[11]李銳,斌 王. 文本處理中的MapReduce技術(shù)[J]. 中文信息學(xué)報,2012, 26(4): 9-20.
[12]CHANG FAY, DEAN JEFFREY, GHEMAWAT SANJAY等. Bigtable: A distributed storage system for structured data[J]. ACM Transactions on Computer Systems (TOCS), 2008, 26(2): 4.
[13]吳吉義,傅建慶,張明西等. 云數(shù)據(jù)管理研究綜述[J]. 電信科學(xué),2010,26(5):34-41.
[14]APACHE.Welcome to Apache? Hadoop?. http://hadoop.a(chǎn)pache.org/.
[15]趙彥榮,王偉平,孟丹等. 基于Hadoop的高效連接查詢處理算法[J]. 軟件學(xué)報,2012,23(08): 2032-2041.
[16]吳岳忠,周訓(xùn)志. 面向 Hadoop 的云計算核心技術(shù)分析[J]. 湖南工業(yè)大學(xué)學(xué)報,2013,27(1): 77-80.
[17]APACHE.Hadoop 1.0.0 Release. http://hadoop.a(chǎn)pache.org/common/docs/r1.0.0/release notes.html.
[18]AMAZON.Amazon elastic compute cloud (Amazon EC2).http://aws.a(chǎn)mazon.com/ec2/
[19]DECANDIA GIUSEPPE, HASTORUN DENIZ, JAMPANI MADAN等. Dynamo: amazon's highly available key-value store[C]; proceedings of the SOSP, 2007.7:205-220.
[20]KARGER DAVID, LEHMAN ERIC, LEIGHTON TOM等. Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web[C]; proceedings of the Proceedings of the twenty-ninth annual ACM symposium on Theory of computing, 1997. ACM.654-663.
[21]LAMPORT LESLIE. Time, clocks, and the ordering of events in a distributed system[J]. Communications of the ACM, 1978, 21(7): 558-565.
[22]林闖,蘇文博,孟坤等. 云計算安全:架構(gòu),機(jī)制與模型評價[J].計算機(jī)學(xué)報,2013,36(9):1765-1784.
[23]史英杰,孟小峰. 云數(shù)據(jù)管理系統(tǒng)中查詢技術(shù)研究綜述[J]. 計算機(jī)學(xué)報,2013,36(2):209-226.
【責(zé)任編輯 潘琰佩】
Cloud Storage Technology and Development
SUN Xiao-yan
(College of Computer science & Engineering, Yulin Normal University, Yulin, Guangxi 537000)
Along with the rapid development of cloud computing, researchers are getting more and more interested in this area. Since there is abundant of cloud data in cloud and a large number of users, cloud storage technology is becoming a key technology in cloud computing. The mainstream cloud platform and cloud storage technology are introduced in detail in this study. And the challenges under new situation and requirements are also discussed.
cloud computing; cloud storage; technology; platform
TP393
A
1004-4671(2014)02-0136-05
2014-02-26
廣西自然科學(xué)基金面上項目(2013GXNSFAA019337),廣西教育廳重點科研項目(2013ZD056),玉林師范學(xué)院教改項目(2012SYJG30)。
孫小雁(1981~),女,廣西博白人,玉林師范學(xué)院計算機(jī)科學(xué)與工程學(xué)院講師。研究方向:密碼學(xué),信息安全。