董 杰,陳臨強
(杭州電子科技大學(xué) 計算機學(xué)院,浙江 杭州 310018)
一種云存儲多份存儲方案的研究與實現(xiàn)
董 杰,陳臨強
(杭州電子科技大學(xué) 計算機學(xué)院,浙江 杭州 310018)
在現(xiàn)有監(jiān)控領(lǐng)域,如何對視頻數(shù)據(jù)進行有效的保護,使數(shù)據(jù)在異常情況下仍可恢復(fù)。為此,文中提出了一種基于云存儲的多份存儲方案,采用多份存儲,對異常數(shù)據(jù)采用校驗恢復(fù)的方式,有效解決了數(shù)據(jù)異常時數(shù)據(jù)的恢復(fù)問題,可靠性較高。同時有效緩解了前端IPC數(shù)據(jù)流存儲傳輸時的帶寬限制。通過實際業(yè)務(wù)的試驗檢測,異常數(shù)據(jù)恢復(fù)率達到近98%,具有較好的效果。
云存儲;多份存儲;IPC
根據(jù)IDC的調(diào)查,全球創(chuàng)建和復(fù)制的所有數(shù)字信息(數(shù)字宇宙)增長速度超過了人們的預(yù)期,從2006~2011年這5年間,數(shù)字宇宙增長了10倍,年均增長率接近60%。到2011年將達到18 000億GBI51[1]。如何保證數(shù)據(jù)的可靠性變得越來越重要。在安防領(lǐng)域,IPC(網(wǎng)絡(luò)攝像機)視頻流云存儲[2]已逐漸成為監(jiān)控領(lǐng)域的重點研究方向。而在現(xiàn)實生活中尤其是在地鐵、銀行、監(jiān)獄等一些對視頻錄像具有較高可靠性要求的項目中,通常會遇到對部分或全部的前端攝像機進行存儲多份錄像的情況。目前,非云存儲的解決方案中,有雙直存、備份業(yè)務(wù)等可以實現(xiàn),但雙直存受限于前端相機的性能和傳輸帶寬。實際使用中,在眾多場合中無法部署,而備份業(yè)務(wù)實現(xiàn)過于復(fù)雜,且實時性較差。目前常用的備份方案有鏡像[3-4]和快照[5-7]等。相對于非云存儲,一般通用云存儲中均會有存多份的功能[9],有強一致性的,要求多份存儲同時存儲成功;有弱一致性的,例如3份,成功存儲2份便可。存儲取流有兩種方式:一是前端相機直接出多股流;二是前端相機出一股流,由后端存儲系統(tǒng)負責(zé)分發(fā)到多個存儲設(shè)備上。強一致性,存儲過程數(shù)據(jù)存儲太過于耗時,在監(jiān)控系統(tǒng)中不適應(yīng)。弱一致性,在后端系統(tǒng)控制過于復(fù)雜,且存儲的可靠性有所下降。本文基于云存儲的方式上,提出了一種全新的多份存儲方案,實際使用中效果較好。
1.1 云存儲系統(tǒng)結(jié)構(gòu)
本方案在一種監(jiān)控云存儲系統(tǒng)基礎(chǔ)上實現(xiàn),云存儲系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 監(jiān)控云存儲系統(tǒng)
一般云存儲包系統(tǒng)括基本的3大組件,分別是元數(shù)據(jù)管理服務(wù)器(MD),負責(zé)管理多個數(shù)據(jù)節(jié)點(DN),在讀寫過程中負責(zé)調(diào)度客戶端(Client)寫到某個DN上,實現(xiàn)負載均衡;數(shù)據(jù)節(jié)點(DN),管理其設(shè)備上的資源,提供存儲讀寫業(yè)務(wù);客戶端(Client)一般部署在數(shù)據(jù)源側(cè),例如IPC上,負責(zé)向MD請求讀寫的DN,然后將數(shù)據(jù)寫入到該DN上,或從該DN讀取數(shù)據(jù)。
1.2 監(jiān)控領(lǐng)域云存儲系統(tǒng)構(gòu)成
一般監(jiān)控業(yè)務(wù)中,視頻錄像多是要求存儲多份,通常均是針對某一個或幾個攝像機的,所以本方案多份存儲以攝像機目錄為單位進行配置。
在云存儲系統(tǒng)中,一般一個目錄里的文件數(shù)據(jù)會存儲在多個DN上,即在多個DN上均可能存在相同的目錄名稱。所以本方案由MD提供全局統(tǒng)一的命名空間,多個副本以多個目錄名稱形式存在。假設(shè)配置的攝像機目錄為cam1,若需要存儲3份,則在3個DN上存在的3個名字空間分別為cam1@0,cam1@1、cam1@2,其中@為分隔符, 0、1、2是多個目錄副本的標(biāo)識。
圖2 MD目錄索引信息
如圖2所示,多個副本在MD上的索引信息,保存了攝像機的目錄cam1以及cam1的副本路徑。在監(jiān)控系統(tǒng)中,同一個攝像機目錄下的錄像按時間的順序?qū)懭?,則可要求每次創(chuàng)建的文件大小固定,比如1 GB。
2.1 創(chuàng)建目錄
在創(chuàng)建目錄時,若設(shè)置了存N份(N 2.2 創(chuàng)建文件 在創(chuàng)建一個新的文件時,會先在cam1@0目錄上創(chuàng)建文件,創(chuàng)建完成后返回對應(yīng)的文件信息(包括存儲路徑、文件大小等),MD會在其他副本的目錄(cam1@1、cam2@2)上分別創(chuàng)建一個日志文件,并將文件信息寫入到日志文件中。 如圖3所示,日志文件包括描述信息和文件信息區(qū)。描述信息記錄當(dāng)前日志中的所有文件是否同步完成、已同步完成的文件個數(shù)和未同步完成的文件個數(shù)。文件信息區(qū)記錄了多個同步的文件信息,每一個文件信息記錄同步源文件路徑、錄像位圖、文件大小、是否已同步完成等信息,其中錄像位圖是一個64位的整數(shù),若規(guī)定錄像文件的大小為1 GB,將1 GB的錄像等分為64份,則1位表示16 MB,若當(dāng)前16 MB數(shù)據(jù)塊全部填充完整,標(biāo)志位設(shè)置為1,否則為0。 圖3 日志文件格式 定義 cam1@0所在的DN為主DN,其他副本所在的DN為從DN。 主DN在收到錄像數(shù)據(jù)后,先在cam@0目錄中創(chuàng)建一個固定大小的文件(如1 GB),然后每次按512 kB數(shù)據(jù)大小寫入文件,一次寫入完成后,判斷是否有其他從DN分發(fā)請求,若是則打包發(fā)送,打包格式如圖4所示。 圖4 主DN分發(fā)數(shù)據(jù)報文格式 從DN在檢測到有新的文件同步日志后,先創(chuàng)建和主DN相同大小的文件,然后向主DN發(fā)送數(shù)據(jù)分發(fā)請求,從DN在收到數(shù)據(jù)報文后,根據(jù)報文中分塊序號和分塊偏移信息,把數(shù)據(jù)寫到對應(yīng)的文件分塊上。如果分塊內(nèi)錄像數(shù)據(jù)填充完整,更新日志文件中對應(yīng)錄像文件的位圖信息。因為有以下兩種情況會導(dǎo)致從DN錄像數(shù)據(jù)不完整:(1)從DN請求數(shù)據(jù)開始晚于主DN的數(shù)據(jù)存儲,從DN中的文件的開始幾個塊的數(shù)據(jù)可能是不完整;(2)從DN宕機等情況導(dǎo)致的數(shù)據(jù)不完整。 所以設(shè)計考慮增加定時處理機制,檢查從DN上的日志,若發(fā)現(xiàn)文件數(shù)據(jù)不完成,則以數(shù)據(jù)塊大小(如16 MB)為單位進行同步,同步過程:從主DN讀取指定塊的數(shù)據(jù),寫入到當(dāng)前DN的文件指定塊中。 2.3 讀取流程 Client訪問時路徑為“/cam1/file1.ts”,先向MD解析路徑,MD根據(jù)目錄索引信息(如圖2)找到多個副本的存儲路徑,然后根據(jù)副本所在的DN的負載,排序后返回Client。Client按MD返回的路徑,從第一個開始讀取數(shù)據(jù),若讀取異常再從第二個路徑繼續(xù)讀取,直到數(shù)據(jù)讀取完成。 本文闡述的多份存儲方案,主要是在一種云存儲系統(tǒng)上完成的,在此選取一種場合下的視頻流文件。當(dāng)存在前端IPC流存儲時,存儲過程中,若存儲出現(xiàn)問題,則通過查看日志文件,可快速得到數(shù)據(jù)恢復(fù)指數(shù),進行統(tǒng)計如下表所示,當(dāng)視頻流正常時,視頻流的備份能力如表1所示。 表1 不同數(shù)據(jù)對象備份能力對比 當(dāng)視頻流在存儲過程中出現(xiàn)異常時數(shù)據(jù)的恢復(fù)能力如表2所示。 表2 不同異常次數(shù)的數(shù)據(jù)恢復(fù)能力 試驗得出的結(jié)果是,在強一致性存儲數(shù)據(jù)恢復(fù)成功率雖較高,但數(shù)據(jù)存儲過程過于耗時,且讀取壓力較大;而弱一致性數(shù)據(jù)恢復(fù)的成功率相對較低,安全性較差,且隨機設(shè)定備份數(shù),讀取壓力大,存在安全隱患。本方案中主DN出現(xiàn)問題時,從DN上進行數(shù)據(jù)恢復(fù)的成功率較高,效果較好,且安全性較好。同時本文的備份方案,在冗余度上相對于強一致性來說冗余度較低,本方案響應(yīng)速度較快,安全性得以保障。 本文提出了一種視頻流存儲異常后恢復(fù)數(shù)據(jù)的技術(shù),并在云存儲系統(tǒng)中進行驗證。驗證結(jié)果表明該方案具有較好寫效益。從IPC出一股流到主DN服務(wù)器,由主DN服務(wù)器再分發(fā)到其他從DN服務(wù)器,解決了前端帶寬限制的問題。按目錄為單位實現(xiàn)多份存儲功能,可方便實現(xiàn)不同攝像機配置不同存儲策略;多個副本存儲在不同DN上,且在異常恢復(fù)后可以完成其他副本的補錄,安全性好;大部分情況下,從DN的數(shù)據(jù)由主DN分發(fā),不存在讀取的壓力,性能好。 [1] Du Kai,Hu Zhengbing,Wang Huaimin,et al.Reliability design for large scale data warehouses[J].Journal of Computers,2008, 3(10):78-85. [2] 王志坤.樹結(jié)構(gòu)磁盤陣列組織策略及關(guān)鍵技術(shù)研究[D].武漢:華中科技大學(xué),2010. [3] 韓德志,謝長生,李懷陽.存儲備份技術(shù)探析[J].計算機應(yīng)用研究,2004,21(6):1-4. [4] 韓德志,汪洋,李懷陽.遠程備份及關(guān)鍵技術(shù)研究[J].計算機工程,2004,30(22):34-36,61. [5] 周敬利,湯文暉,余勝生,等.附網(wǎng)存儲中快照技術(shù)的設(shè)計[J].計算機工程與應(yīng)用,2003,39(27):153-156. [6] 胡風(fēng)華,游智勇,李烙.存儲系統(tǒng)中的Snapshot技術(shù)研究[J].計算機工程與應(yīng)用,2004,40(1):103-105. [7] 李中,王剛,劉璟.一種在存儲子系統(tǒng)中實現(xiàn)連續(xù)時間點快照的技術(shù)[J].計算機工程與應(yīng)用,2004(9):18-20,32. [8] IBM.數(shù)據(jù)快照技術(shù)原理和應(yīng)用[EB/OL].(2005-12-28)[2014-12-29]http://www.aixchina.com/doc/Flash. [9] 穆飛,薛巍,舒繼武,等.一種面向大規(guī)模副本存儲系統(tǒng)的可靠性模型[J].計算機研究與發(fā)展,2009,46(5):756-761. Implementation of a Multiple Storage Scheme for Cloud Storage DONG Jie,CHEN Linqiang (School of Computer Science, Hangzhou Dianzi University, Hangzhou 310018, China) In the existing monitoring field, how to effectively protect the video data, so that the data can still be recovered under abnormal conditions. So, this paper presents a based on cloud storage[1]a storage scheme by to store multiple copies, of abnormal data by the checking recovery, an effective solution to the abnormal data recovery and high reliability. At the same time, it can effectively alleviate the bandwidth limitation of the front IPC data stream storage and transmission. Through the test of the actual operation, the recovery rate of abnormal data is close to 98%, which has a good effect. cloud storage; multiple storage; IPC 2016- 04- 13 董杰(1990-),男,碩士研究生。研究方向:圖形圖像處理。 10.16180/j.cnki.issn1007-7820.2017.03.026 TN948.6;TP391.41 A 1007-7820(2017)03-095-033 在云存儲系統(tǒng)中的應(yīng)用試驗結(jié)果
4 結(jié)束語