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

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

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