王曉濤,劉晨曦,王一丁
?
電力視頻大數據的動態自適應復合存儲策略*
王曉濤1,劉晨曦1,王一丁2
(1.國網四川省電力公司阿壩供電公司,四川 阿壩藏族羌族自治州 624000;2.中國科學院成都分院,四川 成都 610041)
針對電力視頻監控數據總體量大、不同監控視頻點擊熱度不同的特點,提出了結合復制策略讀取速度快與編碼冗余策略數據冗余度低特點的電力視頻監控數據動態自適應復合存儲方案,并設計了客戶端參與譯碼過程的輔助數據重構策略。對構建的復合存儲原型系統進行了性能測試與分析,結果表明,該復合方案能夠實現數據的動態冗余調整,存儲數據最少僅需要0.32倍的數據冗余,便可保證具有“6個9”的高可靠度。系統在高可靠性的要求下,數據冗余度會隨著存儲時間的延長而持續下降。因此,該系統適用于數據量不斷增加的電力視頻監控大數據的存儲。
糾刪碼;復合存儲;視頻數據;冗余
近年來,隨著無人值守變電站、無人機巡線和智能電網的建設[1],視頻監控數據已成為電力大數據中重要組成部 分[2]。每年,僅無人巡線模式采集的紫外、紅外圖像就已達TB級,而且采集的視頻數據量有大幅增加的趨勢[3]。同時,電力視頻大數據具有采集節點多、節點分布廣泛、數據存儲量大、訪問不均等特點。因此,在實際的視頻監控存儲系統運行中,為了實現存儲視頻的價值與存儲資源消耗之間的平衡,一般采取設置固定存儲時長、定期刪除歷史視頻數據的手段,以減緩電力視頻監控數據給存儲系統帶來的壓力。
近些年,雖然隨著云計算技術的發展,一些電力數據逐漸從本地遷移到云端[4-5],但針對電力視頻數據存儲方面的研究,仍然采用復制備份策略保證數據的可靠性與可用性[6],并未針對電力視頻數據的特征進行基礎存儲架構上的改進與優化。隨著數據量的持續增加,備份策略將大大增加整個系統的數據冗余量,同時,增加了硬件設施、電力消耗、占地面積與支出成本。
針對持續增加的數據存儲規模,為了降低存儲硬件與能耗成本,利用糾刪碼對數據進行低冗余度存儲,已經逐漸被學術界和企業界所重視[7]。微軟的云存儲系統Azure采用了LRC(12,2,2)編碼方法[8],Facebook的存儲體系中也從早期RS(10,4)發展到LRC(10,6,5)[9]。Google將RS(6,3)編碼引入到其Colossus系統中,由于技術保密,并未對外公布技術細節。百度也將糾刪碼方法引入其存儲系統中[10]。有研究者將糾刪碼應用于Apache Hadoop開源項目,以減小系統的數據冗余[11]。國內亦有學者根據糾刪碼特點提出了針對性的存儲架構與高性能的編碼方案[12-13]。
雖然采用糾刪碼技術具有低于復制備份策略的數據冗余,提供了更高的數據可靠性,但如何在保證系統數據可靠性與客戶訪問響應速率的前提下,降低系統數據冗余,仍是構建低冗余度、高可靠性電力視頻大數據存儲系統需要深入研究的問題。對于電力視頻數據而言,不同時段的監控視頻數據的價值也不盡相同。如相關人員對智能變電站設備進行檢查和維護、電力系統出現異常時的視頻監控數據則需要進行長時間高可靠性保存,用于后期經常性的調用分析。這些時段的視頻數據與其他時間段視頻數據相比,應該具有更高的冗余度與可用度。因此,視頻監控數據具有不同時段訪問與可靠性要求不同的特點。所以,需要更加精準的電力視頻大數據的存儲管理方案。隨著時間的推移,不同時段視頻數據價值會發生變化。因此,有必要對其進行不同冗余度的存儲,以最低的成本提供適當級別的可靠度,從而以最低的成本實現數據價值最大化。
為此,本文針對電力視頻大數據的存儲特征與不同時段重要性不同的特點,提出了兼顧編碼冗余與備份策略優點的自適應動態復合存儲方案,設計了系統冗余數據隨時間變化而動態變化的存儲策略,實現了一個海量電力視頻數據存儲原型系統,并驗證了方案的可行性。
本文針對電力視頻數據的價值特點與讀取特征設計了復合存儲方案。本方案利用糾刪碼冗余策略保證電力視頻數據的基礎可靠性,而對點擊頻率較高時段視頻數據進行附加備份,從而保證電力視頻數據整體的低冗余度和重要時段視頻數據的高可用性。存儲系統由若干存儲子集構成,可以按照存儲子集進行規模擴展。存儲子集中的存儲節點個數由系統所選擇使用的糾刪碼的碼字確定。存儲節點包括文件存儲節點和校驗存儲節點。
實施時,存儲子集按照時間段對監控視頻文件進行均勻分塊,視頻塊是多幀連續視頻圖像的集合。系統按照2備份策略,對文件分塊進行存儲,然后對分塊按照順序進行校驗計算獲取校驗塊。視頻文件分塊存儲到文件存儲節點NF上,校驗塊存儲到校驗存儲節點NR上。在系統運行過程中,利用視頻文件分塊的被讀取頻率將被統計,如果外部讀取該文件分塊所需帶寬大于本文件塊所在節點的輸出帶寬,則將增加該文件分塊備份到文件存儲節點NF上。當系統中存在多個原文件分塊備份時,備份文件分塊的讀取頻率長時間低于被設定值,則該備份分塊將被刪除,系統僅保留單個原視頻文件塊與校驗冗余數據塊。因此,存儲系統內的復制文件塊也會隨著時間的推移、數據塊熱度的消退而被刪除,僅保留編碼冗余來保證數據整體的低冗余度、高可靠性存儲。
本電力視頻存儲原型系統在運行前,需要根據存儲子集節點、可靠性需求構造出如式(1)所示的存儲編碼矩陣:

編碼矩陣其可分為上下兩個部分,其中為(×)×(×)的單位陣,′為由“0”“1”元素組成的規模為(×)×(×)的矩陣,其中,1≤≤;1≤≤。m為×的單位陣,i,j為規模為×的由“0”“1”構成的方陣。在編碼過程中,行向量元素個數將與文件分塊個數相同,行向量中元素為“1”的所有位置所對應的文件分塊之間將進行異或運算,計算出該行向量所對應的校驗數據塊,則有:
·=. (2)
式(2)中:為原始數據塊順序集合;為原始數據塊與校驗數據塊的順序集合。
譯碼過程則根據矩陣構造出聚合矩陣,有·(+)·=0,其中,用下式表示:

實現時,客戶端首先計算已經重構出電力視頻文件塊的哈希函數值,將哈希值上傳到源文件服務器,并與源文件服務器中已經存儲的該文件塊的哈希值進行比較。如果哈希值相同,則允許上傳該電視視頻文件分塊;如果哈希值不同,則說明客戶端重構出的數據塊并不正確,則系統會啟動內部恢復機制對該數據塊進行恢復,并將恢復出的文件塊提供給客戶端使用。同時,為了增加系統的安全性驗證,客戶端提供的文件分塊也可能是已經被惡意篡改的文件塊,因此,源文件服務器也將拒絕該文件塊的上傳。如果系統接收了該文件塊,待文件塊接收完畢后,源文件服務器將對該文件再次進行哈希值驗證,以免在數據塊上傳過程中出現未知錯誤。本系統利用SHA-512算法計算哈希值[14]。將整個文件的哈希值作為該文件的代表指紋。系統將每個文件的代表指紋放在存儲節點內存中,文件分塊所產生的哈希值將放在磁盤中,這樣可以加快文件的查詢與使用效率。系統將文件塊哈希值、存儲路徑、文件信息等摘要信息統一放在一張表中,這樣可以提高系統驗證速率。
作者根據本文所述編譯碼流程與算法以及系統體系架構構建了電力視頻大數據自適應動態復合存儲原型系統,使用編碼參數為(6,3,4)的二進制RS碼,即系統共有6個存儲節點,其中3個數據存儲節點,3個校驗數據存儲節點,且系統容許任意3個存儲節點出現損毀,而系統仍然能夠重構出原文件。本原型系統中6個節點為普通計算機,CPU為Intel(R)Celeron M@2.0 GHz,1.5 GB內存,惠普ST336753LW磁盤,標稱帶寬為80 MB/s,32位Windows7操作系統。存儲節點內部利用1 000 Mbps網絡進行鏈接。即系統存儲節點并發磁盤I/O帶寬小于網絡帶寬。客戶端所選配置同上,客戶端與存儲系統也通過1 000 Mbps網絡連接。測試電力視頻為阿壩電網某監控數據,數據格式為RMVB格式,數據量為1 138 MB,監控時長為7 227 s。
本研究首先對編譯碼與文件塊校驗過程中CPU的利用率進行了測試,以確定本復合方案給系統帶來的計算負載。本研究對在文件復制、編碼、譯碼、HASH計算過程中客戶端CPU的利用率進行了監測。在對測試視頻文件進行磁盤級復制時,CPU平均利用率為4.8%;而測試視頻文件產生等數據量的校驗數據時,CPU平均利用率為9.3%;對丟失視頻文件塊進行重構時,CPU平均利用率為9.7%.客戶端利用SHA-512對一份丟失數據塊進行哈希值計算時[15],CPU利用率為25%,達到單核極限。因此,編碼校驗冗余策略的引入,并不會降低系統的I/O性能,反而大大降低了系統的數據冗余。顯然,本復合存儲方案是可行的。
本存儲系統每個存儲節點是獨立同分布的。如果為單節點的可用性,數據塊的可用概率為1-,數據可用性的正態分布標準差記為ε,且原文件分塊個數為,為復制策略的數據冗余度,則有下式成立[15]:

在編碼冗余策略中,數據冗余度記為,則有下式成立:
本系統單個存儲節點在運行365 d時間里,如果有一天不可用,則存儲節點可靠度= 0.997.如果要求數據具有“6個9”的高可靠度,則數據的不可用概率= 0.000 001,則數據可用性的正態分布的標準方差ε為5.由式(4)可知,利用復制策略若保證“6個9”的數據可靠度,則需要2.378倍的數據冗余,如圖1所示。由式(5)可知,而利用糾刪碼策略最大需要1.32倍的數據冗余,只需要產生0.32倍的原始文件大小的冗余數據量即可保證“6個9”的高文件可用度,如圖2所示。

圖1 復制策略冗余度分析圖

圖2 編碼策略冗余度分析圖
由于編碼方法是將文件分塊均勻分布在不同存儲節點上,增加了系統對外服務的并發性,減少了因為客戶端集中讀取而給系統造成的讀取分布不均的情況。顯然,當存儲節點規模不斷擴大時,利用糾刪碼冗余策略能夠在保證系統數據高可用度的同時,明顯降低了其數據冗余。因此,這對于日益增長的電力視頻數據存儲來講具有重要的意義。
本文介紹了一種針對電力視頻大數據特征的海量數據存儲架構。該種存儲架構兼具了數據訪問的可用性與系統存儲的高效性。本存儲系統根據電力數據隨時間變化訪問頻度不同的特征,以水平陣列糾刪編碼作為數據可靠性保證策略的基礎存儲方案。作者實現了該電力視頻大數據存儲系統平臺原型系統,并對核心指標進行了性能測試,驗證了存儲策略的有效性,且本存儲體系結構具有通用性,適用于不同結構類型海量數據存儲。因此,本文提出的自適應動態復合存儲策略對于構建低冗余度、高可靠性電力視頻大數據存儲系統具有較強的現實意義。
[1]張東霞,苗新,劉麗平,等.智能電網大數據技術發展研究[J].中國電機工程學報,2015,35(01):2-12.
[2]李志海,張天兵,彭啟偉,等.基于同一平臺的電力視頻數據網絡建設及組網策略[J].電力科學與技術學報,2012,27(04):64-69.
[3]宋亞奇,周國亮,朱永利,等.云平臺下輸變電設備狀態監測大數據存儲優化與并行處理[J].中國電機工程學報,2015,35(02):255-267.
[4]宋愛波,萬雨桐,貢歡,等.海量多維數據的存儲與查詢研究[J].計算機工程與應用,2016,52(13):25-28.
[5]陳德軍,高曉軍,王義飛.基于AHP的云存儲負載均衡研究[J].計算機工程與應用,2015,51(07):56–59.
[6]楊俊杰,廖卓凡,馮超超,等.大數據存儲架構和算法研究綜述[J].計算機應用,2016,36(09):2465-2471.
[7]劉海波,董玉杰.基于MooseFS的糾刪碼存儲方法設計和實現[J].計算機工程與應用,2017,53(06):91-96.
[8]HUANG C,SIMITCI H,XU Y,et al.Erasure coding in Windows Azure storage[C]//2012 USENIX Annual Technical Conference,Boston,USA,2012:15-26.
[9]MAHESWARAN S,MEGASTHENIS A,DIMITRIS P. XORing Elephants:Novel Erasure Codes for Big Data [C]//The 39th International Conference on Very Large Data Bases,Trento,Italy,2013:6(05):325-336.
[10]LAI C, JIAN S, YANG L,et al.Atlas:Baidu's key-value storage system for cloud data.Proceedings of the 31st symposium on mass storage systems and technologies[J]. Santa Clara USA,2015.
[11]XIA M,SAXENA M,BLAUM M,et al.A table of two erasure codes in HDFS[C]//Proceedings of the 13th USENIX Conference on File and Storage Technologies, Santa Clara,USA,2015:213-226.
[12]陳崢.一類新的陣列糾刪碼理論及應用研究[D].北京:中國科學院研究生院,2009.
[13]唐聃,楊昊澎,王福超.基于多斜率碼鏈的陣列糾刪碼[J].計算機應用,2017,37(04):936-940.
[14]李鴻強,苗長云,石博雅,等.單向散列函數SHA-512的優化設計[J].計算機工程,2007,33(07):130-165.
[15]劉剛.分布式存儲系統中基于糾錯碼的容錯機制研究[D].武漢:華中科技大學,2007.
王曉濤(1981—),男,碩士,工程師,研究領域為電力數據存儲、智能電網。劉晨曦(1983—),女,碩士,高級工程師,研究領域為智能電網、存儲系統。王一丁(1983—),男,博士,CCF會員,副研究員,研究領域為編碼理論、大數據、海量數據存儲。
四川省科技支撐計劃(No.2017KZ0026)
2095-6835(2018)23-0037-03
TM76
A
10.15913/j.cnki.kjycx.2018.23.037
〔編輯:張思楠〕