劉華慶 陳墾
摘 要:為了有效保證醫(yī)療大數(shù)據(jù)的可靠性,本文針對醫(yī)療工作中的實際情況,設(shè)計開發(fā)一個基于RS糾刪碼的云存儲容災(zāi)系統(tǒng),在Hadoop平臺架構(gòu)上實現(xiàn)了冷數(shù)據(jù)掃描技術(shù)及RS編碼/解碼,可定期掃描系統(tǒng)并對冷數(shù)據(jù)進行糾刪碼處理,系統(tǒng)具有良好的容錯性能和存儲效率。實驗分析表明,所搭建的系統(tǒng)運行正常,在編碼單位為16 bits,具有最佳性能。
關(guān)鍵詞:云存儲;Hadoop;糾刪碼;數(shù)據(jù)重構(gòu)
0 引言
近年來,醫(yī)療行業(yè)的大數(shù)據(jù)增長尤為迅速,以超聲檢查為例,過去五年超聲的檢查量增加2倍,CT檢查量增加了3倍,而在未來的五年醫(yī)院的數(shù)據(jù)包括影像的年負荷率將增長40%。實際上,這僅僅是醫(yī)院某一個特定的業(yè)務(wù)環(huán)節(jié)的數(shù)據(jù),如果以醫(yī)院全院的業(yè)務(wù)來計算,醫(yī)院每年增長的數(shù)據(jù)量都是非常巨大的[1]。
然而,如何有效存儲這些醫(yī)療大數(shù)據(jù),尤其是如何保證有重要價值的醫(yī)療數(shù)據(jù)可靠性的同時降低存儲空間開銷,成為醫(yī)療數(shù)據(jù)云存儲平臺亟待解決的問題。為了保證數(shù)據(jù)的可靠性,以往的大數(shù)據(jù)云存儲系統(tǒng)(如典型的云存儲系統(tǒng)Hadoop HDFS[2], Google GFS[3])普遍采用三備份策略,其設(shè)計初衷是由于通用商業(yè)PC在三副本的情況下可以基本保證不丟失數(shù)據(jù),但是Hadoop系統(tǒng)的這種三副本技術(shù)本身的容錯能力不高(只能容錯2個節(jié)點失效),存儲效率也較低。
1 RS糾刪碼技術(shù)簡介
基于有限域GF運算的(n,k)糾刪碼能將n個數(shù)據(jù)塊編碼為(n+k)個糾刪碼分塊,只要獲取其中任意n個糾刪碼分塊就能恢復(fù)所有n個原始數(shù)據(jù)塊。代表性的RS(n,k)糾刪碼[5]是一種系統(tǒng)性編碼,即編碼后原n個數(shù)據(jù)塊不變,剩余k個數(shù)據(jù)塊為原始數(shù)據(jù)塊計算得來。與多副本技術(shù)相比,容錯能力相同條件下糾刪碼技術(shù)的存儲效率更高、成本更低;例如,若按照100PB數(shù)據(jù)(Windows Azure Storage 2012年左右規(guī)模),1美元/GB/年,按容錯能力1來計算(若副本技術(shù)和糾刪碼各需要2倍和1.5倍存儲空間),則僅存儲開銷糾刪碼每年便可節(jié)省52,428,800美元。
2 云存儲容災(zāi)系統(tǒng)設(shè)計與關(guān)鍵技術(shù)
2.1 云存儲容災(zāi)系統(tǒng)的總體架構(gòu)
本文設(shè)計基于Hadoop的云存儲容災(zāi)系統(tǒng)的總體架構(gòu)圖如圖1所示。本云存儲系統(tǒng)分為兩個部分:第一個部分是云存儲系統(tǒng)的管理層,第二個部分是云存儲系統(tǒng)的服務(wù)層。兩個部分相互協(xié)作,共同為客戶端上的用戶提供文件上傳、文件下載、文件刪除、文件修改、文件查找等服務(wù),用戶能夠方便地對云存儲系統(tǒng)中的文件進行管理和操作,享受云存儲系統(tǒng)提供的各種服務(wù)。下面分別闡述這個兩個部分的主要功能。
(1) 云存儲的管理層由三個服務(wù)器組成:第一個是Web Server服務(wù)器;第二個是RS Coding Server服務(wù)器;第三個是NameNode服務(wù)器。三個服務(wù)器之間相互協(xié)作、相互影響,是云存儲容災(zāi)系統(tǒng)的基本骨架,在云存儲系統(tǒng)中起著核心作用。
(2) 云存儲系統(tǒng)的服務(wù)層由DataNode集群構(gòu)成。在云存儲容災(zāi)系統(tǒng)中,所有的文件被拆分為數(shù)據(jù)塊存放在這些DataNode(數(shù)據(jù)節(jié)點)中,部分文件的數(shù)據(jù)塊采用三備份存放,其余部分采用RS糾刪碼存放。當一個Datanode啟動時,掃描本地文件系統(tǒng),生成一個由這些本地文件對應(yīng)的所有HDFS數(shù)據(jù)塊的列表,作為報告發(fā)送到Namenode,這個報告就是塊狀態(tài)報告。云存儲系統(tǒng)的服務(wù)層為其管理層提供存儲等服務(wù),其在云存儲系統(tǒng)中不可或缺。
2.2 冷數(shù)據(jù)掃描判斷技術(shù)
在本文的云存儲容災(zāi)系統(tǒng)中,需要定期地對冷數(shù)據(jù)進行糾刪碼處理,所以首先需要對冷數(shù)據(jù)進行判斷。冷數(shù)據(jù)與文件的兩個屬性(文件修改日期和文件訪問的次數(shù))密切相關(guān)。在文件信息表中,云存儲系統(tǒng)中的每個文件都有date(文件修改日期)和number(文件訪問的次數(shù))的屬性。RS Coding Server利用這兩個屬性,并結(jié)合冷數(shù)據(jù)判定算法定期地進行掃描來判斷文件是否為冷數(shù)據(jù)文件。
3 系統(tǒng)性能分析
我們目前的HDFS集群搭建采用一臺NameNode節(jié)點、三臺DataNode節(jié)點。同時我們還使用了一臺RS Coding Server服務(wù)器和一臺Web服務(wù)器。RS Coding Server服務(wù)器主要負責(zé)冷數(shù)據(jù)文件編碼和丟失文件的恢復(fù),其上安裝有myelcipse等工具。Web服務(wù)器主要負責(zé)基于Web模式的后臺程序和安裝數(shù)據(jù)庫。系統(tǒng)對所存儲的1TB的數(shù)據(jù)(包括不同大小的醫(yī)療文件)進行了全面測試,為了全面考量最主要的兩個編碼參數(shù)(即數(shù)據(jù)塊拆分和基本編碼單位Wbits,文件數(shù)據(jù)大小對于編碼性能的影響。
4 結(jié)束語
本文針對醫(yī)療工作中的實際情況,設(shè)計開發(fā)了一個基于RS糾刪碼的云存儲容災(zāi)系統(tǒng),在Hadoop平臺架構(gòu)上實現(xiàn)了RS編碼/解碼,具有良好的容錯性能和存儲效率。實驗分析表明,所搭建的系統(tǒng)運行正常,在編碼單位W=16bits。
參考文獻
[1] 王珊,王會舉,覃雄派.架構(gòu)大數(shù)據(jù):挑戰(zhàn),現(xiàn)狀與展望.計算機學(xué)報,2011,34(10):1741-1752.
[2] The Hadoop Distributed File System: Architecture and Design. http://hadoop.apache.org/docs/r0.
18.0/hdfs_design.pdf.
[3] Mengdi Wang, Bo Li, Yongxin Zhao, and Geguang Pu. Formalizing Google file system. In ACM PRDC '14, 2014, 190-19.