張 弛,龔茂珣
(國家海洋局東海預(yù)報中心 上海市 200081)
隨著海洋觀(監(jiān))測數(shù)據(jù)工作的不斷發(fā)展,海洋數(shù)據(jù)具有分布面廣、要素種類多、傳輸頻率高等特點,如實時海洋數(shù)據(jù)以分鐘、小時級別傳輸;文件傳輸類別異構(gòu)化,如同時接收海洋遙感數(shù)據(jù)、海洋觀測數(shù)據(jù)、海洋調(diào)查數(shù)據(jù)等;數(shù)據(jù)傳輸文件海量化,相當(dāng)數(shù)量級的海洋觀測點幾乎同時向海區(qū)中心發(fā)送資料。
然而現(xiàn)有海洋數(shù)據(jù)存儲體系是將單獨服務(wù)器作為數(shù)據(jù)存儲設(shè)備,由于該服務(wù)器負(fù)責(zé)接收海洋數(shù)據(jù)的同時需將數(shù)據(jù)進行解析并分發(fā)至各個不同目標(biāo)地址的存儲服務(wù)器,隨著海洋數(shù)據(jù)以分鐘級、小時級等多個時間傳輸頻率源源不斷地傳輸至該服務(wù)器,由于該服務(wù)器頻繁的計算及分配剩余存儲空間,導(dǎo)致I/O調(diào)度過于頻繁,最終可能導(dǎo)致數(shù)據(jù)文件積壓、數(shù)據(jù)處理延時等問題,嚴(yán)重影響了海洋數(shù)據(jù)存儲體系的工作效率。針對此類問題,本文圍繞研究海洋數(shù)據(jù)的結(jié)構(gòu)特點以及提高現(xiàn)有傳輸硬件設(shè)備存儲效率2方面進行開展[1]。
當(dāng)部分服務(wù)器進行接收數(shù)據(jù)并分配存儲空間等高負(fù)載作業(yè)的同時,傳輸網(wǎng)內(nèi)仍存在負(fù)載較輕的服務(wù)器,比如發(fā)布webservice、運行單一監(jiān)控程序、郵件服務(wù)器等,以上現(xiàn)象說明數(shù)據(jù)傳輸網(wǎng)內(nèi)服務(wù)器集群存在負(fù)載極不均衡的情況。該情況極有可能因負(fù)載較重的服務(wù)器死機從而降低整個海洋數(shù)據(jù)存儲系統(tǒng)工作效率。如何對海量的多源異構(gòu)海洋數(shù)據(jù)在合理利用現(xiàn)有硬件資源的基礎(chǔ)上進行統(tǒng)一存儲,以提高存儲系統(tǒng)的負(fù)載均衡性和存儲的安全性將成為海洋數(shù)據(jù)存儲業(yè)務(wù)發(fā)展的方向。
一般情況下,放置存儲設(shè)備的空間有限,也不具備無限擴充存儲設(shè)備的可能。鑒于傳輸體系內(nèi)擁有接近主流配置的服務(wù)器集群和較高的傳輸帶寬,本文將構(gòu)建基于云存儲的架構(gòu),并根據(jù)海洋數(shù)據(jù)的實際數(shù)據(jù)結(jié)構(gòu)特點采用了以下4層架構(gòu)的設(shè)計[2],如圖1所示:
圖1 云存儲子系統(tǒng)架構(gòu)圖
物理層:由于傳輸體系采用光纖、衛(wèi)星、CDMA等通訊方式進行傳輸,所以內(nèi)部的數(shù)據(jù)分發(fā)效率較高。作為硬件虛擬化的基礎(chǔ),該層的作用是將傳輸網(wǎng)內(nèi)的所有可用服務(wù)器集群虛擬化成為一個整體的存儲設(shè)備,管理員通過統(tǒng)一管理平臺該網(wǎng)內(nèi)的所有存儲設(shè)備進行實時監(jiān)控,云存儲系統(tǒng)動態(tài)地將數(shù)據(jù)存儲至負(fù)載較輕的存儲服務(wù)器上,同時可進行存儲空間分配、狀態(tài)監(jiān)控和維護升級等服務(wù)。該層為存儲設(shè)備(如磁盤陣列)的擴展提供了兼容接口。
基礎(chǔ)層:提供類似操作系統(tǒng)的可視化管理及配置服務(wù)。該層利用負(fù)載均衡存儲算法及邏輯卷管理等技術(shù)實現(xiàn)了多個存儲設(shè)備之間的協(xié)同工作,將海洋數(shù)據(jù)文件存儲至物理層中,并且可以通過配置各海洋數(shù)據(jù)的字段對應(yīng)要素,實現(xiàn)對多源異構(gòu)數(shù)據(jù)的解析、分發(fā)及備份的自動化操作。該層的優(yōu)勢在于可集成分布式存儲設(shè)備并提高數(shù)據(jù)訪問效率[3]。
管理層:該層向訪問層以統(tǒng)一數(shù)據(jù)接口的形式提供數(shù)據(jù)服務(wù)。由于海洋數(shù)據(jù)傳輸?shù)牟婚g斷性,面對日益龐大的海洋數(shù)據(jù)庫,建立該層的目的是便于今后的數(shù)據(jù)管理。該層將對外提供分權(quán)限訪問數(shù)據(jù)的服務(wù),無論硬件存儲層中的服務(wù)器集群體積多么龐大,在該層只作為一個統(tǒng)一的數(shù)據(jù)接口展示,該設(shè)計相對多而繁雜的分散式數(shù)據(jù)庫具有更加便于管理海洋數(shù)據(jù)的優(yōu)勢。
應(yīng)用層:該層是當(dāng)業(yè)務(wù)使用者調(diào)用海洋數(shù)據(jù)做數(shù)據(jù)挖掘或展示使用時,向應(yīng)用接口層提供相應(yīng)的數(shù)據(jù)接口,用戶可根據(jù)被分配的訪問及調(diào)用數(shù)據(jù)的權(quán)限獲取所需數(shù)據(jù),該層對數(shù)據(jù)做只讀操作,目的是保護數(shù)據(jù)的不被意外修改或刪除。
云存儲系統(tǒng)通過傳輸網(wǎng)內(nèi)的各服務(wù)器的IP地址實現(xiàn)內(nèi)部實例間的數(shù)據(jù)交互與傳輸,與廣域網(wǎng)中多用戶通過實例協(xié)同工作相比具有更高效率的調(diào)用和處理通信資源的優(yōu)勢。為了將海洋數(shù)據(jù)利用云存儲技術(shù)實現(xiàn)負(fù)載均衡分配存儲空間,以及實時解析數(shù)據(jù)流中各要素并分發(fā)至各目標(biāo)數(shù)據(jù)庫的目的,本文設(shè)計了一個完整的云存儲子系統(tǒng)的工作流程。
該子系統(tǒng)由4個主要部分構(gòu)成:1)數(shù)據(jù)流映射接口;2) 虛擬化存儲池;3) 數(shù)據(jù)分析模塊;4)數(shù)據(jù)解析模塊。由于存儲過程依托運行中的虛擬機服務(wù)器進行空間分配存儲,所以需將虛擬機管理員的全部權(quán)限賦予本存儲系統(tǒng)。
各個部分的工作機制以及通信機制如圖2所示。
2.2.1 數(shù)據(jù)映射接口
該接口是圍繞如何解決海洋數(shù)據(jù)流進行數(shù)據(jù)映射,并在映射存儲到對應(yīng)的目標(biāo)數(shù)據(jù)庫。該接口的設(shè)計思想是利用C語言編寫一套軟件接口,目的是規(guī)避各海洋數(shù)據(jù)采集器由于硬件接口不統(tǒng)一而無法實時傳輸?shù)皆拼鎯χ械娜毕荨?/p>
2.2.2 虛擬化存儲池
當(dāng)前端儀器采集到海洋數(shù)據(jù)后,通過數(shù)據(jù)映射接口將數(shù)據(jù)傳輸至云存儲中,云存儲首先將接收的數(shù)據(jù)存儲在計算機緩存中,然后根據(jù)當(dāng)前云存儲系統(tǒng)內(nèi)的各服務(wù)器的存儲狀態(tài)和當(dāng)前的計算負(fù)載狀態(tài)等評價指標(biāo)綜合計算后分配存儲空間,以實現(xiàn)彈性存儲的目的,并在存儲層中對實時數(shù)據(jù)進行存儲。
圖2 私有云存儲子系統(tǒng)流程圖
2.2.3 數(shù)據(jù)分析模塊
由于海洋數(shù)據(jù)部分是結(jié)構(gòu)化內(nèi)容的報文文件,在對海洋數(shù)據(jù)進行存儲后,業(yè)務(wù)使用者可將海洋數(shù)據(jù)的實際內(nèi)容按照《海洋水文規(guī)范》中各要素對應(yīng)的意義利用結(jié)構(gòu)化數(shù)據(jù)模型技術(shù)進行建模。建模的目的是為下一步的海洋數(shù)據(jù)內(nèi)容解析做準(zhǔn)備,當(dāng)啟動該模塊時,系統(tǒng)將對數(shù)據(jù)內(nèi)容自頂向下地進行分析,并將最終結(jié)果通過統(tǒng)一的結(jié)構(gòu)化數(shù)據(jù)格式傳遞給解析模塊。
2.2.4 數(shù)據(jù)解析模塊
該層主要對海洋數(shù)據(jù)進行解析操作,系統(tǒng)將已存儲的各數(shù)據(jù)要素模型與將解析后的數(shù)據(jù)內(nèi)容進行比較分析,并將對應(yīng)格式的數(shù)據(jù)要素模型回饋至虛擬化硬件端,該端將根據(jù)具體實際要素模板提取對應(yīng)的數(shù)據(jù)屬性值,如果未匹配相應(yīng)模板,系統(tǒng)則默認(rèn)回溯到元數(shù)據(jù)分析模塊繼續(xù)查找。解析后的要素最終將通過數(shù)據(jù)映射接口同步至各目標(biāo)數(shù)據(jù)庫,實現(xiàn)海洋數(shù)據(jù)的同步解析入庫。
通過對國內(nèi)外云存儲系統(tǒng)及海洋數(shù)據(jù)存儲機制的研究,本文提出了對海洋數(shù)據(jù)利用云存儲技術(shù)進行存儲的思想,并設(shè)計了以下實驗,實驗結(jié)論驗證了本文針對海洋數(shù)據(jù)提出的云存儲負(fù)載均衡存儲機制的可行性。
部署云存儲的數(shù)據(jù)服務(wù)器參數(shù)如表1所示。
表1 云部署單臺計算機參數(shù)
通過云存儲子系統(tǒng)部署的每一臺服務(wù)器均平均配置成3臺虛擬機,以模擬海量海洋數(shù)據(jù)集中存儲的需求。部署架構(gòu)如圖3所示。
海洋數(shù)據(jù)采集端通過數(shù)據(jù)映射接口向云存儲系統(tǒng)發(fā)起1個寫入數(shù)據(jù)的請求,映射接口會將反饋采集端與那個存儲節(jié)點建立傳輸協(xié)議,并進行數(shù)據(jù)寫入。文件是以chunks的方式寫入存儲,每個block由被生成時系統(tǒng)賦予唯一的chunk-h(huán)andle進行標(biāo)識,為了提高云存儲的數(shù)據(jù)容災(zāi)性,每一個block將會被復(fù)制到多個存儲節(jié)點上。
本文以1個控制節(jié)點(ControlNode),5個存儲節(jié)點(StoreNode),并假設(shè)64個海洋數(shù)據(jù)采集端同時發(fā)送1條大小為1 MB的海洋數(shù)據(jù)文件為例:
圖3 云存儲部署架構(gòu)圖
本文設(shè)計的云存儲的工作機制旨在減少控制節(jié)點的參與計算,不會將單個文件拆分成多個部分同時寫入不同存儲節(jié)點。對于小于等于1 MB的文件以原文件尺寸存儲成chunk,當(dāng)文件大小大于1 MB時,客戶端會控制以大文件的方式分配存儲空間。但考慮到海洋數(shù)據(jù)文件一般單個大小不會超過1 MB,所以該存儲方式對海洋數(shù)據(jù)存儲尤其適用。
當(dāng)前海洋觀測預(yù)報系統(tǒng)中海洋數(shù)據(jù)的存儲機制已無法實現(xiàn)動態(tài)均衡存儲的現(xiàn)狀正制約著海洋數(shù)據(jù)存儲領(lǐng)域的發(fā)展,本文基于對海洋數(shù)據(jù)特點、存儲結(jié)構(gòu)進行研究和調(diào)研,設(shè)計了全新的基于云存儲的海洋數(shù)據(jù)存儲體系架構(gòu),可在節(jié)約空間和財力的基礎(chǔ)上動態(tài)地將海洋數(shù)據(jù)存儲、解析并分發(fā)至各目標(biāo)數(shù)據(jù)庫,該系統(tǒng)在資源利用率、響應(yīng)時間及可擴展性方面都將優(yōu)于先前的系統(tǒng)。
實驗結(jié)果表明,該系統(tǒng)可以基本滿足對海洋數(shù)據(jù)流存儲體系的優(yōu)化,本研究的貢獻意義在于利用現(xiàn)有服務(wù)器資源進行虛擬化部署以實現(xiàn)云存儲體系,極大程度地提高數(shù)據(jù)存儲能力以及數(shù)據(jù)處理效率,并為今后的海洋數(shù)據(jù)的存儲系統(tǒng)的設(shè)計提供理論和實際的借鑒價值。
[1]王佳雋.基于云計算環(huán)境的虛擬化資源管理研究[D].復(fù)旦大學(xué),2011.
[2]李思揚.云計算平臺中虛擬化運行環(huán)境的研究與實現(xiàn) [D].北京郵電大學(xué),2012.
[3]施巖.云計算研究及Hadoop應(yīng)用程序的開發(fā)與測試[D].北京郵電大學(xué),2011.