方勝吉 翁蘇湘 王彥麗 王洪偉
摘 要:醫(yī)學影像數(shù)據(jù)在臨床應用當中,對數(shù)據(jù)的實時性要求很高,對影像數(shù)據(jù)的傳輸要求低延時,基于這個原因,目前大多數(shù)醫(yī)療機構都采用傳統(tǒng)的集中式存儲,但集中式存儲架構不容易擴展,成本也很昂貴,當面臨海量數(shù)據(jù)時,其傳輸帶寬也存在著瓶頸。面對海量數(shù)據(jù)存儲,目前比較好的方式是分布式存儲,但分布式存儲在面對醫(yī)學影像數(shù)據(jù)存儲時,又顯現(xiàn)出實時性差的弱點;基于上述原因,我們設計了一種混合存儲模式,將集中式存儲與分布式存儲相結(jié)合,既能存儲海量數(shù)據(jù),又保證了臨床應用對醫(yī)學數(shù)據(jù)的實時性要求。
關鍵詞:醫(yī)學影像 混合存儲 海量 實時性
中圖分類號:TP391 文獻標識碼:A 文章編號:1674-098X(2017)12(b)-0108-02
1 存儲結(jié)構層次劃分
按功能劃分,可以將存儲結(jié)構整體劃分成兩層。
1.1 數(shù)據(jù)存儲層
數(shù)據(jù)存儲層主要完成對醫(yī)學影像數(shù)據(jù)的存儲,按照對實時性要求的不同,數(shù)據(jù)存儲層又劃分成兩個階段。
第一階段是對醫(yī)學影像數(shù)據(jù)的實時性存儲:在臨床過程中,由醫(yī)療設備所產(chǎn)生的影像資料,首先存儲到高性能的FC SAN服務器上,利用FC SAN的存取速度快的特點,來滿足臨床對醫(yī)學影像資料實時性的要求,但存儲容量對FC SAN來講是一個問題,按照目前普通一所醫(yī)院,年數(shù)據(jù)量5T計算的話,一個區(qū)域內(nèi)的FC SAN可以連接10~20所醫(yī)療機構,總數(shù)據(jù)量在100T左右,這個數(shù)據(jù)量對FC SAN來講,非常適合處理,可以充分發(fā)揮其性能;隨著時間的推移,數(shù)據(jù)量會不斷累積,F(xiàn)C SAN的存儲空間就會成問題,此時就轉(zhuǎn)為第二階段的存儲。
第二階段是對醫(yī)學影像數(shù)據(jù)的長期、災備存儲,通過分布式存儲架構完成;一般情況下,一所醫(yī)院的醫(yī)學影像資料超過一年后,利用率就會大大降低,所以,我們可以人為的設定,超過一年時間的影像資料數(shù)據(jù)都要從FC SAN轉(zhuǎn)存至分布式存儲并進行容災備份。這樣做有兩點好處,其一是提高數(shù)據(jù)的安全性,因為醫(yī)學影像資料的數(shù)據(jù)對安全性是有很高要求的,一定時期內(nèi)人影像數(shù)據(jù)是具有法律效力的;其二存儲空間極易擴展,可以滿足海量數(shù)據(jù)的存儲需求,這是分布式存儲的特點,非常適合海量醫(yī)學影像資料的長期存儲。
1.2 數(shù)據(jù)管理層
數(shù)據(jù)管理層位于存儲層上層,主要是對數(shù)據(jù)存儲的全過程提供自動化的管理并且為上層用戶提供使用的接口,用戶不需要了解具體存儲數(shù)據(jù)的細節(jié)過程,比如對圖像的檢索、讀寫等操作全部由管理層自動完成,對底層的細節(jié)操作進行屏蔽;主要有下述6個部分功能。
(1)連接端口: 提供一個端口,實現(xiàn)HDFS和本地文件系統(tǒng)的互訪。
(2)處理模塊:主要處理影像數(shù)據(jù)在上傳前的優(yōu)化工作并且根據(jù)數(shù)據(jù)量制定相應的優(yōu)化存儲策略以及編程實現(xiàn)的方法。
(3)檢索:實現(xiàn)對圖片的定位以及去冗余功能。
(4)寫入:從醫(yī)療設備上形成的醫(yī)學圖像,通過寫入功能存儲到集中式存儲服務器。
(5)讀?。喊凑沼脩舻恼埱螅瑢D片從集中式存儲服務器或分布式服務器中調(diào)取出來。
(6)轉(zhuǎn)存:轉(zhuǎn)存的功能比較單一,就是把集中式存儲的數(shù)據(jù)定期備份后面的分布式服務器上去。
2 混合式存儲架構的運行流程
架構的運行流程整體可以分為3個部分,即讀取過程、寫入過程和轉(zhuǎn)換過程。
2.1 存儲架構讀流程
整個架構的讀取流程可以按照影像資料存儲時間的長短分成兩種情況進行,假如我們設置的存儲時間的閾值為一 年。
第一種情況,為了保證臨床的實時性,一年以內(nèi)的數(shù)據(jù)我們會存儲在集中式的高性能的FC SAN服務器上,讀取數(shù)據(jù)時用戶先通過連接端口提出訪問請求,然后交由處理模塊進行優(yōu)化處理,之后再交給讀取模塊,讀取模塊要對數(shù)據(jù)信息進行判斷,一年內(nèi)的信息則直接通過FC SAN上的接口程序(如JAVA接口等)進行讀取,獲取信息后,反饋給客戶,這與普通醫(yī)療機構的讀取方式基本一致。
第二種情況,如果用戶要求的數(shù)據(jù)信息在一年以上,則要讀取分布式存儲架構的內(nèi)容,此時,用戶提交讀取請求給處理模塊,處理模塊優(yōu)化后交給讀取模塊,讀取模塊判斷為一年以上的數(shù)據(jù)信息,因此,不能直接從FC SAN中讀取,因為一年以上的數(shù)據(jù)以經(jīng)轉(zhuǎn)存至HDFS,所以,讀取模塊將用戶信息發(fā)送給“檢索模塊”,在檢索模塊中存儲的是HDFS中的元數(shù)據(jù)信息,包括數(shù)據(jù)的“文件ID”以及所在的“塊ID”信息,找到后,交給“讀取模塊”,讀取模塊根據(jù)檢索出來的信息,調(diào)用HDFS接口程序?qū)?shù)據(jù)進行讀取,反饋給用戶。在讀取數(shù)據(jù)的過程當中,由于HDFS采用并行讀取的方式,所以讀取速度與FC SAN速度差別不大,主要是檢索過程用時較多,因此,檢索算法的優(yōu)化至關重要。
2.2 存儲架構寫流程
整個架構的寫流程非常簡單,當用戶發(fā)出寫數(shù)據(jù)請求時,通過連接端口將用戶的請求交給處理模塊,處理模塊進行優(yōu)化處理后,再通過寫入模塊調(diào)用FC SAN端口將數(shù)據(jù)寫入FC SAN當中,這種方式與目前的醫(yī)療機構基本相同。這里有一點需要說明,我們?yōu)榱藵M足臨床的實時性要求,并不將產(chǎn)生的數(shù)據(jù)直接寫進HDFS,因為HDFS要對數(shù)據(jù)進行至少3個以上的副本備份,所以,寫數(shù)據(jù)的效率較低下,而且,醫(yī)學影像的數(shù)據(jù)較小,并不適合直接寫入HDFS中。
2.3 存儲架構轉(zhuǎn)換流程
在臨床的過程當中,由于我們直接把醫(yī)學影像數(shù)據(jù)存儲在了FC SAN當中,隨著時間的推移,其上的數(shù)據(jù)量會越來越多,而且利用率也會越來越低,所以,我們需要定期將FC SAN上的數(shù)據(jù)進行轉(zhuǎn)存,比如一年為一個閾值,那一年以上的數(shù)據(jù)我們就要轉(zhuǎn)存到HDFS上,以保障FC SAN的高效運行。
具體的執(zhí)行過程是這樣的,首先,F(xiàn)C SAN將需要轉(zhuǎn)存的文件形成文件列表;然后,轉(zhuǎn)存模塊會調(diào)用FC SAN的接口,讀取轉(zhuǎn)存文件列表,再循環(huán)將文件以鍵值對的形式形成文件數(shù)據(jù)流;接下來,轉(zhuǎn)存模塊調(diào)用HDFS接口,查找可以寫入的數(shù)據(jù)塊,將由文件ID、數(shù)據(jù)和數(shù)據(jù)塊ID形成的新的文件存儲到可用數(shù)據(jù)塊當中去;最后,將由二者ID號組成的元數(shù)據(jù)寫入檢索模塊元數(shù)據(jù)列表,至此整個轉(zhuǎn)換過程完成。
需要說明的一點是,由于整個轉(zhuǎn)存的過程時間會比較長,因此在轉(zhuǎn)存時,應選擇較為空閑的醫(yī)療時間段進行,比如選擇晚上等;轉(zhuǎn)存的時間周期不易過長,也不易過短,一般為一個月轉(zhuǎn)存一次較為適宜。
參考文獻
[1] 熊勁.大規(guī)模機群文件系統(tǒng)的關鍵技術研究[D].長沙:國防科技大學,2006.
[2] 李波.基于Hadoop的海里圖像數(shù)據(jù)管理[D].上海:華東師范大學,2011.
[3] Ken Dunham.The Problem with P2P[J].Information Systems Security,2006,15(2):5-8.
[4] 劉鵬.云計算[M].北京:電子工業(yè)出版社,2011.
[5] 張敏,陳云海.電信運營商云計算發(fā)展及應用研究[J].信息通信技術,2010,4(2):46-51.