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