員建廈
(中國電子科技集團公司第五十四研究所河北石家莊050081)
隨著信息技術(shù)特別是網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,計算機所處理的數(shù)據(jù)量正以前所未有的爆炸性趨勢急劇增長,數(shù)據(jù)存儲逐漸成為制約系統(tǒng)發(fā)展的關(guān)鍵問題。如何對快速增長的海量數(shù)據(jù)進行安全、高效、低成本的存儲、管理和使用已成為目前存儲系統(tǒng)面臨的巨大挑戰(zhàn)。越來越多的企業(yè)開始將數(shù)據(jù)存儲分離出來作為獨立的項目進行管理。云存儲(cloud storage)的高可靠性、高通用性、高擴展性、大容量的特點,以傳統(tǒng)數(shù)據(jù)中心無法比擬的優(yōu)勢,正在成為企業(yè)實現(xiàn)提高效率、降低成本的重要選擇。
云存儲作為一種新形態(tài)存儲系統(tǒng),以其在大容量、易管理、高可擴展和按需服務(wù)等方面的優(yōu)勢而受到學(xué)術(shù)界和產(chǎn)業(yè)界的重視,被普遍認為是應(yīng)對未來存儲系統(tǒng)所面臨挑戰(zhàn)的一種有效方法。云存儲是一種基于Internet的大規(guī)模“集中”式存儲系統(tǒng),其存儲系統(tǒng)是由地理上廣泛分布的各種不同類型的存儲設(shè)備構(gòu)成,由專門的存儲服務(wù)供應(yīng)商(StoragService Provider,SSP)管理。云存儲以數(shù)據(jù)存儲服務(wù)的形式提供給用戶,簡化了用戶的部署和使用成本,使得能夠按需地、綠地的存儲。
目前云存儲系統(tǒng)大都以文件備份的形式提供數(shù)據(jù)存儲服務(wù)。盡管后端的云存儲系統(tǒng)提供了巨大的存儲空間,但隨著文件和所需存儲數(shù)據(jù)的增多,前端客戶端的存儲空間會越來越小,性能也會隨之下降。文中提出了一種面向云存儲的存儲架構(gòu),在該存儲架構(gòu)中既解決了存儲數(shù)據(jù)量和數(shù)據(jù)讀寫性能的問題,又可以通過容量的不斷擴展提高讀寫的性能。
云計算是一種以數(shù)據(jù)為中心的服務(wù)密集型計算,而云存儲是云計算的底層數(shù)據(jù)支持環(huán)境,為云計算提供高可用、高可靠、運營成本低的數(shù)據(jù)存儲服務(wù)。目前,云存儲服務(wù)分為個人級應(yīng)用和企業(yè)級應(yīng)用。企業(yè)級的云存儲服務(wù)主要用于空間租賃、遠程數(shù)據(jù)容災(zāi)和視頻監(jiān)控存儲支持。云存儲服務(wù)沿用傳統(tǒng)的集群技術(shù)、網(wǎng)絡(luò)計算和分布式存儲技術(shù),將網(wǎng)絡(luò)中大量低廉的計算設(shè)備進行有機集成,避免了盲目擴張濫建。
云存儲服務(wù)具有高可靠性、高通用性、高擴展性及大容量存儲等特點,因此進行云存儲服務(wù)系統(tǒng)的研究不僅緊跟技術(shù)發(fā)展的趨勢,而且具有較高的應(yīng)用價值。系統(tǒng)對存儲容量的需求也日益增加,系統(tǒng)的數(shù)據(jù)量動輒TB級甚至PB級。同時,存儲設(shè)備(磁盤陣列)容量的增長和存儲設(shè)備成本的降低也使海量存儲客觀上成為可能,但是保存的數(shù)據(jù)量大了以后,需要處理的數(shù)據(jù)量也增大了,系統(tǒng)對高性能事務(wù)處理的需求也不斷提高,此時傳統(tǒng)的存儲方式已經(jīng)成為訪問性能的“瓶頸”,對這些海量數(shù)據(jù)的存儲和高效訪問是一個迫切需要解決的問題。云存儲還具有如下的特點,超強的可擴展性、不受具體地理位置所限、基于商業(yè)組件、按照使用收費(如每G收15 cent)、可跨不同應(yīng)用等。
云存儲對使用者來講,不是指某一個具體的設(shè)備,而是指一個由許許多多個存儲設(shè)備和服務(wù)器所構(gòu)成的集合體。使用者使用云存儲,并不是使用某一個存儲設(shè)備,而是使用云存儲系統(tǒng)帶來的數(shù)據(jù)訪問服務(wù)。云存儲的核心是應(yīng)用軟件與存儲設(shè)備相結(jié)合,通過應(yīng)用軟件來實現(xiàn)存儲設(shè)備向存儲服務(wù)的轉(zhuǎn)變[1]。
云存儲是在云計算(cloud computing)概念上延伸和發(fā)展出來的一個新的概念,因此要了解云存儲首先要了解云計算。云計算是一種基于網(wǎng)絡(luò)的超級計算模式,在遠程的數(shù)據(jù)中心里,成千上萬臺電腦和服務(wù)器連接成一片電腦云。因此,云計算可以讓你體驗每秒萬億次的運算能力,擁有這么強大的計算能力可以模擬核爆炸、預(yù)測氣候變化和市場發(fā)展趨勢。用戶通過電腦、筆記本、手機等方式接入數(shù)據(jù)中心,按自己的需求進行運算。隨著云計算概念的逐步深入,人們開始為海量信息尋找一個新的安身之處—云存儲[2]。
云存儲從出現(xiàn)就得到了廣泛的關(guān)注和支持。云存儲的概念與云計算類似,它是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)[3]。云存儲的興起使得整個IT界處于一個重大的變革期,從以設(shè)備應(yīng)用程序為中心轉(zhuǎn)向以信息為中心,而這一轉(zhuǎn)變還將引發(fā)一系列的變革,并影響到技術(shù)和業(yè)務(wù)模式兩個層面。云存儲的最大特點是海量、高性能、高訪問量以及低成本,而其帶來的最大變革是:提供商逐漸從銷售工具轉(zhuǎn)向根據(jù)工具的實際使用收費,也就是從賣產(chǎn)品轉(zhuǎn)向了賣服務(wù)。因此,可以說云存儲不是存儲而是服務(wù)。
云計算是分布式處理(Distributed Computing)、并行處理(Parallel Computing)和網(wǎng)格計算(Grid Computing)的發(fā)展,是透過網(wǎng)絡(luò)將龐大的計算處理程序自動分拆成無數(shù)個較小的子程序,再交由多臺服務(wù)器所組成的龐大系統(tǒng)計算分析之后將處理結(jié)果回傳給用戶。云計算技術(shù)可以讓網(wǎng)絡(luò)服務(wù)提供者在極短時間,例如數(shù)秒之內(nèi)處理數(shù)以千萬計甚至億計的信息,達到和“超級計算機”同樣強大的網(wǎng)絡(luò)服務(wù)。云計算系統(tǒng)的建設(shè)目標是將運行在PC上或單個服務(wù)器上的、獨立的、個人化的運算遷移到一個數(shù)量龐大服務(wù)器“云”中,由這個云系統(tǒng)來負責(zé)處理用戶的請求,并輸出結(jié)果,它是一個以數(shù)據(jù)運算和處理為核心的系統(tǒng)。
云存儲是在云計算概念上延伸和發(fā)展出來的一個新的概念。當(dāng)云計算系統(tǒng)運算和處理的核心是大量數(shù)據(jù)的存儲和管理時,云計算系統(tǒng)中就需要配置大量的存儲設(shè)備,那么云計算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。從架構(gòu)模型來看,云存儲系統(tǒng)比云計算系統(tǒng)多了一個存儲層,同時,在基礎(chǔ)管理也多了很多與數(shù)據(jù)管理和數(shù)據(jù)安全有關(guān)的功能。
與傳統(tǒng)的存儲設(shè)備相比,云存儲不僅僅是一個硬件,還是一個網(wǎng)絡(luò)設(shè)備、存儲設(shè)備、服務(wù)器、應(yīng)用軟件、公用訪問接口、接入網(wǎng)、和客戶端程序等多個部分組成的復(fù)雜系統(tǒng)。各部分以存儲設(shè)備為核心,通過應(yīng)用軟件來對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問服務(wù)。云存儲系統(tǒng)的結(jié)構(gòu)模型由4層組成。
①存儲層:存儲層是云存儲最基礎(chǔ)的部分。存儲設(shè)備可以是光纖通道存儲設(shè)備,也可以是其他的存儲設(shè)備。云存儲中的存儲設(shè)備往往數(shù)量龐大且分布在不同地域,彼此之間通過廣域網(wǎng)、互聯(lián)網(wǎng)或者光纖通道網(wǎng)絡(luò)連接在一起。存儲設(shè)備之上是一個統(tǒng)一存儲設(shè)備管理系統(tǒng),可以實現(xiàn)存儲設(shè)備的邏輯虛擬化管理、多鏈路冗余管理,以及硬件設(shè)備的狀態(tài)監(jiān)控和故障維護;
②基礎(chǔ)管理層:基礎(chǔ)管理層是云存儲最核心的部分,也是云存儲中最難以實現(xiàn)的部分。基礎(chǔ)管理層通過集群、分布式文件系統(tǒng)和網(wǎng)格計算等技術(shù),實現(xiàn)云存儲中多個存儲設(shè)備之間的協(xié)同工作,使多個存儲設(shè)備可以對外提供同一種服務(wù),并提供更大更強更好的數(shù)據(jù)訪問性能。CDN內(nèi)容分發(fā)系統(tǒng)和數(shù)據(jù)加密技術(shù)保證云存儲中的數(shù)據(jù)不會被未授權(quán)的用戶所訪問,同時,通過各種數(shù)據(jù)備份和容災(zāi)技術(shù)措施可以保證云存儲中的數(shù)據(jù)不會丟失,保證云存儲自身的安全和穩(wěn)定;
③應(yīng)用接口層:應(yīng)用接口層是云存儲最靈活多變的部分。不同的云存儲運營單位可以根據(jù)實際業(yè)務(wù)類型,開發(fā)不同的應(yīng)用服務(wù)接口,提供不同的應(yīng)用服務(wù)。比如視頻監(jiān)控應(yīng)用平臺、網(wǎng)絡(luò)硬盤應(yīng)用平臺和遠程數(shù)據(jù)備份應(yīng)用平臺等;
④訪問層:基于的云存儲服務(wù)系統(tǒng)研究任何一個授權(quán)用戶都可以通過標準的公用應(yīng)用接口來登錄云存儲系統(tǒng),享受云存儲服務(wù)。云存儲運營服務(wù)商不同,云存儲提供的訪問類型和訪問手段也不同。
通過分布式文件系統(tǒng)構(gòu)成一個完整的集群存儲解決方案。在一個分布式存儲系統(tǒng)中,為了確保檢索最快,讀寫性能最優(yōu),元數(shù)據(jù)節(jié)點將所有對象按照某一算法分別存放到所有對象存儲節(jié)點上,提高了存儲設(shè)備的存儲速度,同時提高了利用率,有效地降低了成本。分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡(luò)與節(jié)點相連,它在整個分布式體系架構(gòu)中處于最基礎(chǔ)的地位[4]。
分布式存儲的技術(shù)優(yōu)勢主要體現(xiàn)在以下幾個方面[5]:
①強大的數(shù)據(jù)冗余性:更加靈活的冗余方式,N+1,N+2,N+3,強于傳統(tǒng)的 RAID5、RAID6,為用戶的數(shù)據(jù)存儲提供更大的安全保障;

圖1海量數(shù)據(jù)存儲模型
②更高的讀寫高性能:獨特的算法和軟件實現(xiàn),保證系統(tǒng)磁盤并行讀取速度的最大化,提供更高的性能體驗,實現(xiàn)更快的訪問速度;
③效率極高的數(shù)據(jù)恢復(fù)能力:分布式RAID數(shù)據(jù)重構(gòu)完成后拷回原來槽位更換后的磁盤,而是智能地在整個系統(tǒng)中選擇空閑空間來存儲校驗后的切片文件,效率比傳統(tǒng)的RAID方式的重構(gòu)回拷方式更優(yōu)。為了實現(xiàn)海量數(shù)據(jù)的存儲而設(shè)計的存儲模型,如圖1所示。
云存儲通過內(nèi)部交換模塊提供GE或10GE端口與用戶環(huán)境的IP網(wǎng)絡(luò)連接,數(shù)據(jù)導(dǎo)入、應(yīng)用服務(wù)器集群安裝CSS客戶端軟件,數(shù)據(jù)導(dǎo)入服務(wù)器、應(yīng)用業(yè)務(wù)服務(wù)器直接通過CSS客戶端軟件完成對CSS云存儲系統(tǒng)中的數(shù)據(jù)內(nèi)容和存儲資源訪問。
云存儲將文件切分為一定大小的數(shù)據(jù)對象,利用大量節(jié)點分布式并行處理數(shù)據(jù)對象的讀寫操作,在節(jié)點間將一個數(shù)據(jù)對象存儲多份(可配置)從而保證系統(tǒng)可靠性和性能,并兼顧方案可維護性、可管理性及綠色節(jié)能等特性,提升方案性價比,幫助用戶降低TCO。針對文件數(shù)據(jù)特點,采用多級可靠性技術(shù),包括:節(jié)點內(nèi)Raid、跨節(jié)點冗余等適合的數(shù)據(jù)保護措施,保護用戶數(shù)據(jù)安全。
以上存儲架構(gòu)的特點如下:
⑴可靠性
在每個存儲節(jié)點中,首先對文件進行條帶化,生成多個數(shù)據(jù)塊,并計算若干個校驗塊。所有的數(shù)據(jù)塊和校驗塊分別存放在不同存儲節(jié)點上。當(dāng)系統(tǒng)中有1個節(jié)點出現(xiàn)故障,系統(tǒng)依然可以正常對外提供讀寫服務(wù),不會發(fā)生服務(wù)中斷的情況。系統(tǒng)在提供正常的讀寫服務(wù)的同時,自動在后臺進行數(shù)據(jù)重構(gòu),將故障節(jié)點上的數(shù)據(jù)重構(gòu)到其他節(jié)點上,數(shù)據(jù)恢復(fù)示意如圖2所示。

圖2發(fā)生故障時的數(shù)據(jù)恢復(fù)
由于采用了節(jié)點間的數(shù)據(jù)保護技術(shù),云存儲系統(tǒng)具有較高故障耐受度。在一個云存儲資源池(組)內(nèi)可以同時故障2個節(jié)點而不會造成數(shù)據(jù)不可訪問。任何一個硬盤組內(nèi),可以同時故障2個硬盤而不會造成數(shù)據(jù)不可訪問,所以整個存儲資源組內(nèi),最少可以容忍任意2塊數(shù)據(jù)盤同時故障。
⑵高性能
負載可以均勻下發(fā)到每個存儲節(jié)點的每個硬盤,充分發(fā)揮域內(nèi)節(jié)點與硬盤的并行處理能力。在云存儲內(nèi)部,用戶的文件被分為多個對象,隸屬于同一個文件的各個對象被根據(jù)負載狀況,分配到不同的存儲節(jié)點上,因而可以提供高性能的讀寫。
⑶可擴展性
云存儲系統(tǒng)可提供基于節(jié)點的擴容,對上層提供透明的存儲服務(wù),屏蔽底層的硬件差異,使得云存儲系統(tǒng)擴容對業(yè)務(wù)完全透明。云存儲系統(tǒng)支持按性能進行擴容[6]。由于采用非對稱分布式架構(gòu),可以很好地支持讀寫性能的線性擴展,每增加一個節(jié)點,系統(tǒng)將增加一定數(shù)量的讀寫帶寬和并發(fā)訪問能力。
由于采用了云存儲架構(gòu)模型,有效地提高了系統(tǒng)存儲系統(tǒng)的可靠性、高性能以及可擴展性。在這種架構(gòu)下,可以提供高效的數(shù)據(jù)一致性和數(shù)據(jù)私密性,具有較強的數(shù)據(jù)容錯和容災(zāi)能力,數(shù)據(jù)的訪問性能可以通過容量和性能的同步擴展而不斷提高,從而很好地實現(xiàn)對系統(tǒng)中其他軟件的數(shù)據(jù)存儲服務(wù)和讀取服務(wù)。
[1]吳擎雯等.一種云存儲系統(tǒng)數(shù)據(jù)持久存儲機制[J].計算機與數(shù)字工程,2012(4):72-74
[2]王慶波等.云計算寶典技術(shù)與實踐[M].北京:電子工業(yè)出版社,2011.
[3]謝華成,陳向東.面向云存儲的非結(jié)構(gòu)化數(shù)據(jù)存取[J].計算機應(yīng)用,2012,32(7):1924-1928.
[4]胡文波等.分布式存儲方案的設(shè)計與研究[J].計算機技術(shù)與發(fā)展,2010(4):65-68.
[5]宋均,祝林.基于云計算的海量數(shù)據(jù)處理平臺設(shè)計與實現(xiàn)[J].電訊技術(shù),2012,52(4):566-570.
[6]劉志軍等.云存儲環(huán)境下數(shù)據(jù)庫系統(tǒng)的構(gòu)建[J].信息技術(shù)應(yīng)用研究,2012(2):14-15.