劉友安,羅明超
(1.信陽供電公司,信陽 464000;2.空軍第一航空學院 電子工程系,信陽 464000)
互聯網應用正經歷一場數據管理方式的變革,以云計算、云存儲為代表的先進計算方式正以星火燎原之式躍入視野,帶來的是海量激增和管理日益復雜的難題。社會網絡中的大規模數據,非結構化數據正每時每刻地產生,據IDC(國際數據公司,International Data Corporation)在2012年的研究報告中指出,從2006年到2012年全球信息總量增長8倍以上,全球存儲市場的總出貨量中有80%的容量被文件型數據所覆蓋,且文件型數據的增幅已經明顯超過了數據存儲容量的增長[1]。這些現象表明,文件型數據管理技術應緊跟數據的加速膨脹趨勢而不斷向前發展。
網格文件存儲系統的技術基礎是分布式計算和分布式存儲,借助于分布式服務器機群,允許網格用戶在網格節點之間共享文件型數字資源,并為網格用戶提供統一的文件視圖[2]。該系統架構應該是一套具有統一命名空間,合理安全策略,可擴展、穩定性高的結構。網格文件存儲通過抽象各種存儲資源,將眾多同構存儲資源和計算資源集成于網格環境中,但展示在用戶眼中的卻是一個無差異的虛擬文件系統。該系統包括存儲資源虛擬化、文件虛擬化和數據庫虛擬化,其實質是邏輯存儲,網格用戶使用的存儲空間不是直接使用物理存儲資源,存儲空間的管理也不再針對具體的物理存儲設備。該技術應解決兩個方面的問題,其一,文件數據信息可靠安全地數字化,其二,以低成本管理海量數據。
網格存儲是以數據共享為主的計算密集型網格,是一種軟、硬結合的分布式計算基礎設施,能在動態跨域的虛擬結構內實現數據資源共享和存取。網格存儲借助若干相互連接且具有自治能力的存儲結點實現數據存儲,每個節點都具備計算能力、高速存儲設備和管理軟件,允許節點間自由交換數據,不需要中央交換節點的參與。應用網格存儲具有三個優點:首先,網格存儲將提升數據容錯及冗余的級別。若單節點故障或兩節點間出現通信故障,網格存儲將自動選擇另一通路或者冗余副本數據結點;其次,存儲節點對間建立的多條路徑,可保證網絡負載出現急劇變化時系統性能較佳;最后,網格存儲允許節點的加入和退出,新增的存儲結點能夠被系統識別和接納,并在隨后的工作中分擔存儲任務。
云存儲和網格存儲這兩種存儲技術分別以云計算和網格計算為基礎,二者有別于兩個方面,一個區別是資源調度和管理模式的不同,另一區別是是資源虛擬化方式的不同。
云計算采用服務器集群來存儲和管理數據,計算任務和存儲任務分布于高性能服務器上,是一種以數據為中心的處理模式。網格計算將軟件資源虛擬化,而云計算則進一步將硬件資源虛擬化[3]。網格計算大多要求結點安裝虛擬機軟件,網格內各節點借助于虛擬機使用統一的操作系統(多為Linux系統),而云計算放寬了條件,適應多種人機界面和操作系統,表現為硬件資源的無限擴展。

圖1 網格文件存儲系統結構
網絡存儲系統結構具體描述如下:
1)應用層,提供用戶界面,包括文件數據查詢、增加、刪除、管理。
2)匯聚層,負責將各網格節點的元數據統一到名字空間。
3)存儲資源層,由存儲子網和用戶組成,每個子網由多存儲節點組成,如圖2所示。
4)鏈路層和物理層,可借助于現存的存儲資源子網和現有網絡設備及通路,無需升級。

圖2 存儲資源子網結構
系統工作流程如下:客戶端向中心服務器提出請求,中心服務器對客戶的請求進行安全認證,若認證不通過則拒絕訪問,若認證成功則根據文件存儲結點的負載情況將請求轉發到負載較輕的網格結點,其數據流程如圖3所示。
圖3描述了網絡存儲的工作流程。當用戶需要訪問一個網格文件時,通過以下步驟:
1)用戶向認證服務器發送認證請求;
2)認證服務器向請求者返回公鑰;
3)認證服務器向名字服務群集返回RSA私鑰;
4)名字服務器向網格存儲結點傳輸私鑰;
5)名字服務器根據邏輯文件名字返回物理文件名映射;
6)網格存儲系統通過協商好的網格文件訪問協議向用戶訪問接口傳送數據。

圖3 安全認證模式下網格存儲信息流程
名字服務由若干同構的網格服務器組成,為網絡文件存儲提供統一的命名空間,該命名空間是所有分布在各網格節點上文件數據的邏輯視圖,便于技術人員和用戶對系統進行統一管理。不論技術人員,還是用戶,可在任何時間、任何地域及任何類型的客戶端上訪問系統,所看到的文件列表都是一致的。若一個用戶新增或刪除數據資源,其他用戶整個系統的數據變化可很快被其他用戶感知[4]。
名字服務的核心是元數據管理,主要記錄網格中某個文件的物理位置信息,并維持邏輯文件信息與物理的文件實體一致性。名字服務提供的對物理文件元數據信息管理,包括某個文件的具體屬性,如文件大小、二進制文件類型、CRC或MD5較驗。
同任何一個存儲系統一樣,不合理的存儲策略設計將影響系統可靠度,從而影響其網格文件系統可用性。而對網絡文件數據進行合理的冗余,可彌補單一文件副本存儲方式帶來的低可靠度問題。系統采用將大文件分解成若干份額并將若干份額存儲到各個網格節點的方式,提高系統可靠性。為方便將大文件分成小份額和將各個小份額合理分配,需要兩種關鍵技術,分別是數據指紋和信息散列。
數字指紋也叫數字簽名,是一種信息編碼技術,較常用的有MD5加密算法,應用MD5算法可以為任何文件生成一個同樣獨一無二的數字指紋,如果數據在傳輸過程出現任何錯誤,其MD5值也會發生相應變化。在本系統中,一個大文件分成若干個份額,計算每份額的MD5編碼,同時為每個份額準備若干副本,最后利用MD5加密和檢測技術避免在同一臺主機上存儲多個相同份額。
為實現將若干個文件副本均勻分發到各網格結點,并保證每個網格結點中沒有相同的份額,還需要應用信息散列算法(Information Dispersal A lgorithm,IDA)[5]。IDA算法可表述為 IDA(n,m)的形式,其中,參數 n 表示一個數據文件能分解出的份額及其副本的總數目,參數m表示系統從n個份額中恢復出原始文件至少需要多少個份額,其工作原理如圖4所示。

圖4 網格數據冗余存儲策略設計
網絡存儲系統的可靠性可結合概率模型和可靠性理論[6]進行刻畫,假設網格存儲系統的可靠性用P表示,網絡節點的可靠性用p表示,由以上提出的IDA散列算法可知,成功恢復出一個原始文件,需要從n個份額中至少挑出m個份額才可完成,則整個系統的可靠性由式(1)表示。

若網格節點的可靠性平均為0.8,一個完整的文件分解為64個份額,即n為64,恢復出原始的數據文件需要32個份額,即m為32,所使用的散列函數為IDA(64,32),由式(1)可知P=0.99974。若不進行文件分割令其可靠性為P’,而采用雙機備份,即兩個網格節點,一個存儲原始數據,一個存儲副本數據,則而對于完全備份系統來說,可靠性P’=1-(1-0.8)(1-0.8)=0.96。由以上可知,采用文件分割的多副本冗余方式存儲數據,可靠性改善明顯,由此系統可用性提高了。
海量文件數據增長難題最終轉化為對傳統存儲技術改造和升級,如分布式存儲、網格存儲。系統比較了云存儲和網格存儲異同,設計了網格存儲的系統結構和冗余存儲策略,有效提高了網格文件存儲系統的可用性,采用基于認證的存儲流程,改善系統安全性。在能源、電力和互聯網企業中,借助網格文件存儲將同構的計算資源整合起來,可為企業的生產和檔案管理及各種ERP應用系統提供數據支撐。
[1] 中國互聯網絡信息中心.中國互聯網絡發展狀況統計報告[EB/OL].(2012-1).http://www.cnnic.net.cn/dtygg/dt gg/201201/W 020120116337628870651.pdf.
[2] 劉浩,唐培和,等.企業存儲網格中資源請求任務的模擬與分析[J].計算機工程與應用,2011,19:82-84,131.
[3] 謝華成,范黎林.云環境下海量非結構化信息存儲技術探究[J].制造業自動化,2012,16:28-30,67.
[4] 朱強.基于對等網絡架構的新型控制系統研究與實現[D].上海大學,2011.
[5] 呂衛忠,康紅勛,等.數據網格中高效的分布式存儲策略[J].計算機工程,2011,05:38-40.
[6] A.Calderón,F.García-Carballeira,L.M.Sánchez,et al.Fault tolerant file models for parallel file systems:introducing distribution patterns for every fi le [J].The Journal of Super computing,2009,47(03):312-334.