日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

视频存储服务器 存储性能,面向海量高清视频数据的高性能分布式存储系统

發(fā)布時(shí)間:2023/12/9 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视频存储服务器 存储性能,面向海量高清视频数据的高性能分布式存储系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

隨著城市項(xiàng)目的推進(jìn), 城市視頻監(jiān)控系統(tǒng)的規(guī)模不斷擴(kuò)大, 視頻監(jiān)控系統(tǒng)朝著“數(shù)字化、網(wǎng)絡(luò)化、高清化、智能化”的方向不斷前進(jìn).不斷增長(zhǎng)的監(jiān)控點(diǎn)設(shè)備數(shù)量、更高清的攝像頭和更長(zhǎng)的視頻留存時(shí)間, 對(duì)視頻監(jiān)控?cái)?shù)據(jù)存儲(chǔ)系統(tǒng)提出了更高的要求.

傳統(tǒng)的基于IP-SAN(Internet protocol storage area network(IP存儲(chǔ)網(wǎng)絡(luò)))存儲(chǔ)方案通過(guò)iSCSI(Internet small computer system interface(Internet小型計(jì)算機(jī)系統(tǒng)接口))協(xié)議將磁盤(pán)陣列掛載給流媒體服務(wù)器做標(biāo)準(zhǔn)磁盤(pán), 采用文件方式進(jìn)行視頻數(shù)據(jù)的集中存儲(chǔ).在這種模式下, 數(shù)據(jù)流要經(jīng)過(guò)流媒體轉(zhuǎn)存服務(wù)器才能寫(xiě)入磁盤(pán)陣列, 存在著單點(diǎn)故障和性能瓶頸等問(wèn)題.視頻監(jiān)控系統(tǒng)通常要求7x24小時(shí)持續(xù)運(yùn)行, 面對(duì)多路視頻流的并發(fā)持續(xù)寫(xiě)入, 基于通用文件系統(tǒng)構(gòu)建的存儲(chǔ)系統(tǒng)將會(huì)產(chǎn)生大量的文件碎片, 導(dǎo)致隨著時(shí)間的推移, 存儲(chǔ)效率不斷下降.因此, 傳統(tǒng)模式不能滿(mǎn)足視頻監(jiān)控系統(tǒng)規(guī)模上升時(shí)對(duì)存儲(chǔ)系統(tǒng)的高可靠性、高性能、可擴(kuò)展性和易管理等方面的需求.隨著技術(shù)的發(fā)展, 分布式云存儲(chǔ)[變得越來(lái)越重要, 一些中等規(guī)模的視頻監(jiān)控系統(tǒng)采用了分布式云存儲(chǔ)方案.

視頻監(jiān)控的數(shù)據(jù)和傳統(tǒng)數(shù)據(jù), 如郵件、文件、圖片、數(shù)據(jù)表等相比, 有以下特點(diǎn).

(1) 數(shù)據(jù)量大.視頻監(jiān)控朝著高清化方向發(fā)展, 隨著攝像頭數(shù)量的不斷增加, 一個(gè)中等規(guī)模的城市一天就能產(chǎn)生PB級(jí)數(shù)據(jù)量.監(jiān)控視頻的保存周期為30天~90天, 視頻監(jiān)控的存儲(chǔ)系統(tǒng)必須滿(mǎn)足視頻數(shù)據(jù)的長(zhǎng)時(shí)間大容量存儲(chǔ)需求, 且要具有線(xiàn)性擴(kuò)展的能力.

(2) 寫(xiě)密集.傳統(tǒng)數(shù)據(jù)的讀寫(xiě)符合二八定律, 即20%的時(shí)間寫(xiě)數(shù)據(jù), 80%的時(shí)間讀數(shù)據(jù).而視頻監(jiān)控?cái)?shù)據(jù)完全相反, 寫(xiě)操作幾乎占到了100%, 只有在回放和檢索視頻時(shí)才讀取視頻數(shù)據(jù).視頻監(jiān)控的存儲(chǔ)系統(tǒng)在設(shè)計(jì)和實(shí)現(xiàn)上需要優(yōu)先考慮如何提高寫(xiě)入帶寬.

(3) 碼率恒定.傳統(tǒng)數(shù)據(jù)的碼率比較隨機(jī), 而視頻監(jiān)控?cái)?shù)據(jù)的碼率比較恒定, 因?yàn)楸O(jiān)控視頻的分辨率和格式一般不會(huì)發(fā)生變化.

(4) 7×24小時(shí)持續(xù)服務(wù).傳統(tǒng)數(shù)據(jù)一般遵循訪(fǎng)問(wèn)周期, 可在訪(fǎng)問(wèn)量很少的情況下將系統(tǒng)停機(jī)下線(xiàn)進(jìn)行維護(hù)和升級(jí)而不影響正常的商業(yè)活動(dòng).視頻監(jiān)控?cái)?shù)據(jù)不存在這樣的周期, 視頻數(shù)據(jù)流持續(xù)不間斷地涌向存儲(chǔ)系統(tǒng), 任何升級(jí)維護(hù)操作都不能影響輸入視頻流的存儲(chǔ), 必須動(dòng)態(tài)地進(jìn)行.

本文針對(duì)上述問(wèn)題和視頻監(jiān)控?cái)?shù)據(jù)的特點(diǎn), 提出一種面向海量高清視頻監(jiān)控?cái)?shù)據(jù)的高性能分布式存儲(chǔ)系統(tǒng)——DVSS(distributed video surveillance storage).本文的主要貢獻(xiàn)如下.

(1) 首先, 設(shè)計(jì)了一種基于RAW磁盤(pán)設(shè)備的邏輯卷結(jié)構(gòu)來(lái)組織并存儲(chǔ)非結(jié)構(gòu)化視頻數(shù)據(jù), 將大量并發(fā)數(shù)據(jù)流隨機(jī)寫(xiě)轉(zhuǎn)化成大段的連續(xù)寫(xiě), 極大地提升了磁盤(pán)寫(xiě)入帶寬, 支撐大規(guī)模高清視頻流的并發(fā)寫(xiě)入.

(2) 其次, 設(shè)計(jì)了兩級(jí)索引結(jié)構(gòu)來(lái)管理視頻元數(shù)據(jù).兩級(jí)索引結(jié)構(gòu)設(shè)計(jì)極大地減少了狀態(tài)管理器需要管理的元數(shù)據(jù)數(shù)量, 消除了性能瓶頸, 且可實(shí)現(xiàn)錄像段的秒級(jí)檢索.

(3) 最后, 實(shí)現(xiàn)了DVSS系統(tǒng)原型, 并對(duì)磁盤(pán)寫(xiě)入速度和支持的并發(fā)視頻路數(shù)等關(guān)鍵指標(biāo)進(jìn)行測(cè)試, 證明了DVSS系統(tǒng)的高效的存儲(chǔ)性能.測(cè)試結(jié)果表明, DVSS系統(tǒng)在單臺(tái)廉價(jià)PC服務(wù)器上能夠同時(shí)記錄400路1080P視頻流數(shù)據(jù), 寫(xiě)入速度達(dá)本地文件系統(tǒng)的2.5倍.

1 相關(guān)工作

針對(duì)傳統(tǒng)文件系統(tǒng)存儲(chǔ)方案的問(wèn)題, 研究人員根據(jù)視頻監(jiān)控?cái)?shù)據(jù)的特點(diǎn), 提出了直寫(xiě)裸磁盤(pán)設(shè)備的流式存儲(chǔ)策略, 即設(shè)計(jì)一種磁盤(pán)邏輯結(jié)構(gòu), 將錄像段的數(shù)據(jù)和索引信息以此結(jié)構(gòu)組織并直接寫(xiě)入裸磁盤(pán)設(shè)備中[.文獻(xiàn)[

文獻(xiàn)[

2 DVSS設(shè)計(jì)與實(shí)現(xiàn)

視頻監(jiān)控?cái)?shù)據(jù)具有高并發(fā)、大容量、有序的特點(diǎn).通用文件系統(tǒng)如NTFS和Ext4等并非針對(duì)視頻監(jiān)控?cái)?shù)據(jù)而設(shè)計(jì), 傳統(tǒng)存儲(chǔ)方案以文件來(lái)組織并存儲(chǔ)視頻流數(shù)據(jù), 存在以下兩個(gè)問(wèn)題.

(1) 以文件方式存儲(chǔ)視頻流數(shù)據(jù)不能保證數(shù)據(jù)在磁盤(pán)上的存放是連續(xù)的, 同時(shí), 在記錄多路高清視頻流時(shí), 系統(tǒng)需要維護(hù)大量打開(kāi)的文件描述符, 并在這些文件描述符之間來(lái)回切換.隨著系統(tǒng)長(zhǎng)時(shí)間運(yùn)行, 文件被頻繁地創(chuàng)建和刪除, 勢(shì)必產(chǎn)生大量的磁盤(pán)碎片, 使得在寫(xiě)連續(xù)的視頻流時(shí)磁頭需要頻繁地移動(dòng), 造成磁盤(pán)訪(fǎng)問(wèn)性能下降.

(2) 文件分片的長(zhǎng)度決定了視頻檢索的精度:分片太小會(huì)產(chǎn)生海量的小文件, 造成inode號(hào)不夠用; 分片太大, 造成檢索精度不高.

2.1 DVSS系統(tǒng)結(jié)構(gòu)

DVSS系統(tǒng)由一個(gè)狀態(tài)管理器(state manager)、多個(gè)存儲(chǔ)服務(wù)器(storage

server)和多個(gè)客戶(hù)端(client)組成.系統(tǒng)結(jié)構(gòu)如

圖 1

Fig. 1

Fig. 1 Architecture of DVSS

圖 1 DVSS系統(tǒng)結(jié)構(gòu)

狀態(tài)管理器主要做調(diào)度工作, 起負(fù)載均衡的作用.狀態(tài)管理器除了需要在內(nèi)存中記錄集群中所有存儲(chǔ)組和存儲(chǔ)服務(wù)器的狀態(tài)信息以外, 還需要記錄錄像段的起止時(shí)間和對(duì)應(yīng)的存儲(chǔ)組.存儲(chǔ)服務(wù)器采用分組的組織方式, 一個(gè)存儲(chǔ)組由1臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成, 同組內(nèi)的存儲(chǔ)服務(wù)器互相備份, 一個(gè)組的存儲(chǔ)容量由該組內(nèi)存儲(chǔ)容量最小的存儲(chǔ)服務(wù)器決定, 存儲(chǔ)集群總?cè)萘繛榧褐兴薪M的存儲(chǔ)容量之和.HDFS等主流的副本實(shí)現(xiàn)方式通常采用動(dòng)態(tài)分配的方式, 一個(gè)文件實(shí)際存儲(chǔ)節(jié)點(diǎn)位置是不確定的, 通常是3個(gè)備份.DVSS系統(tǒng)采用的分組存儲(chǔ)方式更加靈活, 可操作性更強(qiáng).例如, 對(duì)于重點(diǎn)監(jiān)控點(diǎn)的視頻數(shù)據(jù), 可以由管理員指定存儲(chǔ)分組.當(dāng)一個(gè)分組的存儲(chǔ)服務(wù)器訪(fǎng)問(wèn)壓力較大時(shí), 可以在該組添加存儲(chǔ)服務(wù)器來(lái)提升服務(wù)能力; 當(dāng)視頻監(jiān)控規(guī)模擴(kuò)大時(shí), 可以增加存儲(chǔ)組來(lái)擴(kuò)充存儲(chǔ)容量, 實(shí)現(xiàn)系統(tǒng)線(xiàn)性擴(kuò)展.存儲(chǔ)服務(wù)器保存視頻流數(shù)據(jù)和其索引信息.客戶(hù)端擁有全局唯一識(shí)別號(hào)(命名為SID), 通常為網(wǎng)絡(luò)攝像頭的IP地址.

2.2 視頻數(shù)據(jù)組織

為了提高存儲(chǔ)性能, 方便對(duì)視頻進(jìn)行檢索和管理, DVSS采用了將視頻流和其元數(shù)據(jù)分開(kāi)存儲(chǔ)的設(shè)計(jì)思想.元數(shù)據(jù)和視頻數(shù)據(jù)存儲(chǔ)在不同的磁盤(pán)驅(qū)動(dòng)器上, 保證元數(shù)據(jù)的讀寫(xiě)請(qǐng)求不會(huì)影響對(duì)視頻流數(shù)據(jù)的讀寫(xiě), 同時(shí)方便在視頻錄像段過(guò)期后對(duì)其進(jìn)行空間回收.

2.2.1 視頻流數(shù)據(jù)管理

考慮到視頻流編碼格式的特點(diǎn), DVSS以GOP為單位組織數(shù)據(jù)并建立索引, 提供精確到秒級(jí)的高效檢索.為了便于視頻流數(shù)據(jù)的管理, 定義如

圖 2

Fig. 2

Fig. 2 Logical volume architecture design

圖 2 邏輯卷結(jié)構(gòu)設(shè)計(jì)

(1) 邏輯卷

邏輯卷將多個(gè)磁盤(pán)或磁盤(pán)分區(qū)在邏輯上聚合, 提供大小一致的存儲(chǔ)空間, 無(wú)需擔(dān)心不同磁盤(pán)分區(qū)大小不一致的情況, 方便實(shí)現(xiàn)存儲(chǔ)空間動(dòng)態(tài)擴(kuò)容.

用LVM(logical volume manager(邏輯卷管理器))創(chuàng)建邏輯卷之后, 按如

(2) 數(shù)據(jù)塊

數(shù)據(jù)塊是存儲(chǔ)空間分配和回收管理的基本單位.系統(tǒng)每次分配一個(gè)數(shù)據(jù)塊給某一視頻流, 并將對(duì)應(yīng)的位圖bit表示置1.一個(gè)數(shù)據(jù)塊上存儲(chǔ)的是同一路視頻流的數(shù)據(jù), 方便進(jìn)行順序讀寫(xiě), 提高讀寫(xiě)帶寬.空間回收時(shí), 因?yàn)閿?shù)據(jù)塊里的數(shù)據(jù)是按時(shí)有序的, 只要此數(shù)據(jù)塊存放的最后一個(gè)圖像數(shù)據(jù)過(guò)期就回收此數(shù)據(jù)塊.數(shù)據(jù)塊的大小一般設(shè)置為512MB, 具體的討論見(jiàn)第3.2節(jié).

(3) 圖像組GOP

當(dāng)前廣泛采用的視頻編解碼標(biāo)準(zhǔn)H.264/AVC將I幀、P幀、B幀組成圖像組來(lái)編碼圖像序列, 一個(gè)GOP通常存放1s的視頻數(shù)據(jù).

DVSS利用視頻數(shù)據(jù)流的編碼特征, 以GOP為單位讀寫(xiě)數(shù)據(jù), 同一個(gè)視頻流的GOP在數(shù)據(jù)塊中連續(xù)存放, 直到數(shù)據(jù)塊剩下的空間不足以存放一個(gè)GOP為止.

2.2.2 元數(shù)據(jù)管理

為了方便實(shí)現(xiàn)負(fù)載均衡和精確到秒級(jí)的檢索, DVSS設(shè)計(jì)了兩級(jí)索引結(jié)構(gòu), 并使用基于內(nèi)存的鍵值對(duì)數(shù)據(jù)庫(kù)Redis作為元數(shù)據(jù)管理引擎.

(1) 一級(jí)索引

一級(jí)索引存放在狀態(tài)管理器上, 用來(lái)存儲(chǔ)錄像段索引.如Key值, 按起始時(shí)間排序的錄像段記錄列表作為對(duì)應(yīng)的Value值.由于監(jiān)控視頻流本身按時(shí)有序, 所以錄像段記錄的插入也是有序的, 可以實(shí)現(xiàn)O(1) 的插入時(shí)間復(fù)雜度.

圖 3

Fig. 3

Fig. 3 First-Level index structure

圖 3 一級(jí)索引結(jié)構(gòu)

錄像段是從客戶(hù)端發(fā)起視頻寫(xiě)請(qǐng)求開(kāi)始, 到客戶(hù)端主動(dòng)停止寫(xiě)入或者因?yàn)榇鎯?chǔ)服務(wù)器空間不足拒絕繼續(xù)寫(xiě)入為止的一段連續(xù)視頻.

(2) 二級(jí)索引

二級(jí)索引存放在存儲(chǔ)服務(wù)器上, 結(jié)構(gòu)上類(lèi)似于一級(jí)索引, 其基本索引單元為GOP, 用于對(duì)視頻流的GOP進(jìn)行描述.一個(gè)GOP的描述信息包括該GOP對(duì)應(yīng)的起始時(shí)間戳、存放的邏輯卷號(hào)、對(duì)應(yīng)的數(shù)據(jù)塊、塊內(nèi)偏移和長(zhǎng)度等信息.視頻流標(biāo)識(shí)為Key值, 按時(shí)間戳有序的GOP描述信息列表作為對(duì)應(yīng)的Value值.同樣, GOP描述信息的插入也是有序的, 可以實(shí)現(xiàn)O(1) 的插入時(shí)間復(fù)雜度.

2.3 視頻流上傳和檢索

2.3.1 視頻流上傳

視頻流上傳操作由客戶(hù)端主動(dòng)發(fā)起, 客戶(hù)端在上傳固定時(shí)長(zhǎng)的視頻流后結(jié)束寫(xiě)操作, 再發(fā)起新的上傳操作.通常, 一個(gè)視頻段的時(shí)長(zhǎng)為1個(gè)小時(shí).視頻段時(shí)長(zhǎng)太短, 會(huì)增大狀態(tài)管理器管理的元數(shù)據(jù)的負(fù)擔(dān); 時(shí)長(zhǎng)太長(zhǎng), 則不利于系統(tǒng)的負(fù)載均衡和動(dòng)態(tài)擴(kuò)容.

上傳步驟如下.

(1) 客戶(hù)端向狀態(tài)管理器發(fā)送上傳請(qǐng)求, 包括視頻流標(biāo)識(shí)、視頻段起始時(shí)間、預(yù)計(jì)時(shí)長(zhǎng)和碼流大小.

(2) 狀態(tài)管理器根據(jù)負(fù)載均衡策略查詢(xún)可用的存儲(chǔ)服務(wù)器, 在一級(jí)索引里增加一條視頻段記錄, 將分配的存儲(chǔ)服務(wù)器的IP地址和端口號(hào)返回給客戶(hù)端.

(3) 客戶(hù)端向分配的存儲(chǔ)服務(wù)器發(fā)起寫(xiě)操作, 包括視頻流標(biāo)識(shí)、起始時(shí)間和視頻流數(shù)據(jù).

(4) 存儲(chǔ)服務(wù)器的視頻流編解碼模塊解析出GOP, 按需給此視頻流分配數(shù)據(jù)塊, 將GOP連續(xù)地寫(xiě)入數(shù)據(jù)塊, 并在二級(jí)索引里增加對(duì)應(yīng)的GOP描述信息記錄.

(5) 在客戶(hù)端完成此視頻段的上傳后, 存儲(chǔ)服務(wù)器返回狀態(tài)信息.

2.3.2 視頻流檢索

監(jiān)控視頻回放以視頻流檢索為基礎(chǔ), 當(dāng)用戶(hù)需要查看某一段視頻時(shí), 客戶(hù)端發(fā)起視頻流檢索操作.精確到秒級(jí)的檢索精度, 減少了不必要數(shù)據(jù)的傳輸, 極大地提高了視頻回放的效率.

檢索步驟如下.

(1) 客戶(hù)端向狀態(tài)管理器發(fā)送檢索請(qǐng)求, 包括視頻流標(biāo)識(shí)、視頻段起始時(shí)間和回放時(shí)長(zhǎng).

(2) 狀態(tài)管理器以視頻流標(biāo)識(shí)為Key在鍵值對(duì)數(shù)據(jù)庫(kù)中查詢(xún)對(duì)應(yīng)的視頻段信息列表, 在有序的視頻段信息列表中定位對(duì)應(yīng)的起始時(shí)間和時(shí)長(zhǎng)的視頻段, 得到此視頻段的存儲(chǔ)服務(wù)器組編號(hào).狀態(tài)管理器再根據(jù)存儲(chǔ)服務(wù)器組內(nèi)的負(fù)載情況和視頻數(shù)據(jù)同步情況選擇一個(gè)可用的存儲(chǔ)服務(wù)器, 并返回其IP地址和端口.

(3) 客戶(hù)端向定位的存儲(chǔ)服務(wù)器發(fā)起數(shù)據(jù)讀請(qǐng)求, 包括視頻流標(biāo)識(shí), 起始時(shí)間和時(shí)長(zhǎng).

(4) 存儲(chǔ)服務(wù)器根據(jù)客戶(hù)端的讀請(qǐng)求, 通過(guò)二級(jí)索引找到視頻段的視頻數(shù)據(jù)存儲(chǔ)所在的數(shù)據(jù)塊區(qū)間, 以GOP為單位連續(xù)讀出視頻數(shù)據(jù).

(5) 存儲(chǔ)服務(wù)器讀取的視頻段數(shù)據(jù)返回給客戶(hù)端.

2.4 高并發(fā)寫(xiě)優(yōu)化

DVSS支持大規(guī)模視頻流的高并發(fā)寫(xiě)操作.狀態(tài)管理器會(huì)根據(jù)存儲(chǔ)服務(wù)器的負(fù)載情況, 將寫(xiě)請(qǐng)求分配給合適的存儲(chǔ)服務(wù)器.對(duì)于單個(gè)存儲(chǔ)服務(wù)器, 在同時(shí)寫(xiě)入的視頻路數(shù)較高的情況下, 因不同的視頻流寫(xiě)的數(shù)據(jù)塊不同, 多視頻流高并發(fā)的寫(xiě)入會(huì)導(dǎo)致磁頭的頻繁移動(dòng), 使得磁盤(pán)存取性能降低.

為了解決這個(gè)問(wèn)題, 存儲(chǔ)服務(wù)器采用單線(xiàn)程處理多路視頻流的并發(fā)寫(xiě)入, 并為每個(gè)視頻流分配一個(gè)緩沖區(qū), 在緩沖區(qū)滿(mǎn)時(shí)將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)塊.同時(shí), 根據(jù)數(shù)據(jù)塊的分配特性, 多個(gè)視頻流的數(shù)據(jù)塊編號(hào)呈遞增關(guān)系, 對(duì)應(yīng)地, 在磁盤(pán)上的物理位置也呈遞增關(guān)系, 故可對(duì)待寫(xiě)入的數(shù)據(jù)按數(shù)據(jù)塊編號(hào)排隊(duì).這種機(jī)制將無(wú)序的小段數(shù)據(jù)高并發(fā)寫(xiě)入轉(zhuǎn)變成了有序的大段連續(xù)數(shù)據(jù)寫(xiě)入, 在增加磁頭有效連續(xù)寫(xiě)入時(shí)間的同時(shí), 減少了磁頭的頻繁移動(dòng), 提高了磁盤(pán)存取性能, 可以支持更多的并發(fā)視頻路數(shù).

2.5 存儲(chǔ)空間管理

2.5.1 空間回收

監(jiān)控視頻的保存時(shí)間從1個(gè)月到3個(gè)月不等, 除了需要永久保存的錄像段外, 其他視頻數(shù)據(jù)隨著時(shí)間的推移, 其重要性逐步降低.由于磁盤(pán)存儲(chǔ)空間有限, 為了充分利用存儲(chǔ)資源, 需要對(duì)達(dá)到存儲(chǔ)周期的視頻數(shù)據(jù)進(jìn)行空間回收.

DVSS采用循環(huán)覆蓋的回收策略.空間回收由狀態(tài)管理器控制.狀態(tài)管理器根據(jù)用戶(hù)設(shè)定的存儲(chǔ)周期, 周期性地刪除一級(jí)索引里的過(guò)期的錄像段記錄信息, 并通知相應(yīng)的存儲(chǔ)服務(wù)器刪除對(duì)應(yīng)的二級(jí)索引.存儲(chǔ)服務(wù)器刪除過(guò)期的二級(jí)索引信息, 并將對(duì)應(yīng)的數(shù)據(jù)塊的位圖表示置0, 無(wú)需擦除數(shù)據(jù)塊里的實(shí)際視頻數(shù)據(jù), 回收效率較高.

得益于數(shù)據(jù)塊的分配策略, 連續(xù)數(shù)據(jù)塊存放的視頻流數(shù)據(jù)在時(shí)間上有序, 回收的空間也是連續(xù)的.當(dāng)回收的空間再次分配給數(shù)據(jù)流時(shí), 并發(fā)寫(xiě)入的數(shù)據(jù)流分得的數(shù)據(jù)塊也是連續(xù)的, 可以減少磁頭的移動(dòng).相鄰的數(shù)據(jù)塊總是被連續(xù)分配, 又被連續(xù)回收, 使存儲(chǔ)系統(tǒng)不會(huì)因?yàn)殚L(zhǎng)時(shí)間運(yùn)轉(zhuǎn)而導(dǎo)致存取性能下降.

2.5.2 擴(kuò)容

為了應(yīng)對(duì)攝像頭路數(shù)增加以及攝像頭分辨率提高的挑戰(zhàn), 需要及時(shí)地對(duì)DVSS進(jìn)行擴(kuò)容.

(1) 組內(nèi)擴(kuò)容

同組內(nèi)的多臺(tái)存儲(chǔ)服務(wù)器互為備份, 類(lèi)似于木桶短板效應(yīng), 一個(gè)組的存儲(chǔ)容量為該組服務(wù)器中最小的存儲(chǔ)容量.擴(kuò)充組內(nèi)容量時(shí), 需要給組內(nèi)的每臺(tái)服務(wù)器增加相同的磁盤(pán)空間.

追加磁盤(pán)空間后, 用LVM創(chuàng)建新的邏輯卷, 并按邏輯卷結(jié)構(gòu)格式化, 分配邏輯卷號(hào), 與裸設(shè)備(/dev/raw/raw[N])綁定后, 即可提供服務(wù).

(2) 系統(tǒng)擴(kuò)容

當(dāng)系統(tǒng)容量不足時(shí), 可以增加存儲(chǔ)組組來(lái)擴(kuò)展系統(tǒng)存儲(chǔ)集群的總?cè)萘?新增的存儲(chǔ)服務(wù)器啟動(dòng)后主動(dòng)向狀態(tài)管理器匯報(bào)自己的狀態(tài), 狀態(tài)管理器對(duì)比自己內(nèi)存里記錄的所有存儲(chǔ)服務(wù)器狀態(tài)后就會(huì)發(fā)現(xiàn)此存儲(chǔ)組是新增的, 將此存儲(chǔ)器組加入活動(dòng)存儲(chǔ)服務(wù)器隊(duì)列, 負(fù)載均衡機(jī)制會(huì)將新到來(lái)的上傳視頻請(qǐng)求導(dǎo)向給新增的存儲(chǔ)服務(wù)器組, 此新增服務(wù)器組就開(kāi)始提供服務(wù), 正常工作, 實(shí)現(xiàn)了系統(tǒng)的動(dòng)態(tài)擴(kuò)容.

2.6 高可用

DVSS由成本低廉的PC服務(wù)器組成, 在降低視頻監(jiān)控存儲(chǔ)系統(tǒng)成本的同時(shí), 需要提高可靠性, 保證系統(tǒng)7×24小時(shí)持續(xù)服務(wù)的能力.DVSS的高可用主要體現(xiàn)在如下幾個(gè)方面.

(1) 狀態(tài)管理器高可用

類(lèi)似于HDFS NameNode, DVSS的狀態(tài)管理器存在單點(diǎn)故障.在Hadoop

2.0中, HDFS NameNode單點(diǎn)故障問(wèn)題已經(jīng)解決.DVSS參照了HDFS HA[的實(shí)現(xiàn), 狀態(tài)管理器由主狀態(tài)管理器和備狀態(tài)管理器構(gòu)成, 主備狀態(tài)管理器共享存儲(chǔ).正常情況下, 只有主狀態(tài)管理器對(duì)外提供服務(wù).當(dāng)主備切換控制器檢測(cè)到主狀態(tài)管理器故障時(shí), 進(jìn)行主備切換, 由備狀態(tài)管理器對(duì)外提供服務(wù).當(dāng)主狀態(tài)管理器恢復(fù)后, 再切換回來(lái).狀態(tài)管理器高可用架構(gòu)消除了單點(diǎn)故障, 可持續(xù)對(duì)外提供服務(wù).

(2) 組內(nèi)互備

一個(gè)視頻錄像段的備份個(gè)數(shù)為所在存儲(chǔ)服務(wù)器組內(nèi)的服務(wù)器個(gè)數(shù).DVSS分組存儲(chǔ)的方式可以根據(jù)視頻流的重要程度靈活控制視頻段的副本個(gè)數(shù).將存儲(chǔ)服務(wù)器組按重要程度, 配置不同數(shù)量的組內(nèi)服務(wù)器.狀態(tài)管理器根據(jù)視頻流標(biāo)識(shí)將重要的視頻流導(dǎo)向到互備服務(wù)器較多的存儲(chǔ)組.

若一臺(tái)存儲(chǔ)服務(wù)器失效, 狀態(tài)管理器通過(guò)和存儲(chǔ)服務(wù)器之間周期性的心跳機(jī)制檢測(cè)出存儲(chǔ)服務(wù)器斷線(xiàn), 狀態(tài)管理器會(huì)將此存儲(chǔ)服務(wù)器剔除服務(wù)隊(duì)列直到其重新上線(xiàn).由于同一組內(nèi)的服務(wù)器是對(duì)等關(guān)系, 同組的其他服務(wù)器可以繼續(xù)提供服務(wù), 對(duì)此存儲(chǔ)服務(wù)器的讀數(shù)據(jù)請(qǐng)求, 會(huì)被分派給同組的其他存儲(chǔ)服務(wù)器.

(3) 斷點(diǎn)續(xù)傳

針對(duì)攝像頭可能出現(xiàn)的網(wǎng)絡(luò)故障問(wèn)題, 前端設(shè)備需配有小容量的本地存儲(chǔ), 如SD卡等.當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí), 視頻錄像會(huì)被存儲(chǔ)在本地存儲(chǔ)上; 在網(wǎng)絡(luò)恢復(fù)之后, 再將暫存在本地存儲(chǔ)的未上傳的視頻錄像補(bǔ)錄到DVSS中, 以保證不會(huì)因?yàn)榫W(wǎng)絡(luò)故障而發(fā)生數(shù)據(jù)丟失.

同時(shí), 當(dāng)DVSS系統(tǒng)通過(guò)周期性的心跳機(jī)制發(fā)現(xiàn)攝像頭斷開(kāi)連接時(shí), 需通過(guò)發(fā)送報(bào)警信息等方式通知維護(hù)人員及時(shí)處理.

3 實(shí)現(xiàn)與評(píng)估

3.1 測(cè)試環(huán)境

DVSS原型系統(tǒng)由一臺(tái)狀態(tài)管理器和40臺(tái)存儲(chǔ)服務(wù)器組成.存儲(chǔ)服務(wù)器采用Intel Xeon 2.4GHz×2 CPU, 4GB內(nèi)存, 6塊1TB 15000RPM SATA Disks和Mellanox

InfiniBand QDR 40Gb/s網(wǎng)卡.操作系統(tǒng)為Ubuntu Server 14.04LTS, 鍵值對(duì)數(shù)據(jù)庫(kù)Redis采用V3.2版本.

3.2 參數(shù)測(cè)試

數(shù)據(jù)塊和緩沖區(qū)的大小將直接影響磁盤(pán)的寫(xiě)性能.通過(guò)改變數(shù)據(jù)塊大小和為每路數(shù)據(jù)流分配的緩沖區(qū)大小來(lái)測(cè)試和分析這兩個(gè)參數(shù)對(duì)磁盤(pán)寫(xiě)性能的影響.對(duì)單臺(tái)存儲(chǔ)服務(wù)器發(fā)起100路數(shù)據(jù)流并發(fā)寫(xiě)入, 為了測(cè)試最大吞吐率, 不限定數(shù)據(jù)流的比特率大小.測(cè)試結(jié)果如

圖 4

Fig. 4

Fig. 4 Effect of data block and buffer size on disk write performance

圖 4 數(shù)據(jù)塊和緩沖區(qū)大小對(duì)磁盤(pán)寫(xiě)性能的影響

測(cè)試數(shù)據(jù)顯示:64MB~512MB大小的數(shù)據(jù)塊, 在緩沖區(qū)大小為64KB時(shí), 相對(duì)于32MB大小的數(shù)據(jù)塊, 寫(xiě)入速度有顯著的提升.在數(shù)據(jù)塊大小為64MB~600MB時(shí), 100路數(shù)據(jù)流并發(fā)寫(xiě)入速度先隨著緩沖區(qū)大小的增大而提升, 隨后下降.對(duì)測(cè)試結(jié)果的分析如下:記數(shù)據(jù)塊大小為blocksize, 緩沖區(qū)大小為bufsize.在將bufsize大小的一路數(shù)據(jù)流寫(xiě)入磁盤(pán)后, 需要調(diào)用lseek()將寫(xiě)位置指向下一路數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)塊位置, 偏移量offset為$blocksi\mathop {ze}\limits^\tilde{\ } $ bufsize.在offset比較小的情況下, 上一次write()調(diào)用結(jié)束到下一次write()調(diào)用時(shí), 磁盤(pán)已轉(zhuǎn)過(guò)要寫(xiě)的位置, 需要多轉(zhuǎn)一圈才能接著寫(xiě), 使得寫(xiě)性能下降.這解釋了數(shù)據(jù)塊增大時(shí)寫(xiě)性能提高的原因, 同時(shí), 隨著bufsize的繼續(xù)增大, 使得offset減小, 寫(xiě)性能也會(huì)下降.數(shù)據(jù)塊也不是越大越好, 當(dāng)數(shù)據(jù)塊大小增大到600MB時(shí), 由此帶來(lái)的尋道時(shí)間開(kāi)銷(xiāo)使得寫(xiě)性能顯著下降.

根據(jù)以上的測(cè)試結(jié)果, DVSS原型系統(tǒng)將數(shù)據(jù)塊和緩沖區(qū)大小分別設(shè)置為512MB和1MB.

3.3 單機(jī)性能測(cè)試

為了證明DVSS系統(tǒng)的視頻數(shù)據(jù)組織結(jié)構(gòu)在多路視頻流高并發(fā)寫(xiě)入時(shí)的性能優(yōu)勢(shì), 將50路~500路分辨率為1 080P的視頻流分別并發(fā)寫(xiě)入DVSS單臺(tái)存儲(chǔ)服務(wù)器和Ext4文件系統(tǒng)中, 每一路視頻流的碼率恒定為4Mbit/s, 測(cè)得的平均寫(xiě)入速度如

圖 5

Fig. 5

Fig. 5 DVSS single storage server and Ext4 performance comparison evaluation

圖 5 DVSS單臺(tái)存儲(chǔ)服務(wù)器與Ext4性能對(duì)比測(cè)試

當(dāng)視頻路數(shù)為50和100時(shí), 總的輸入帶寬分別為25MB/s和50MB/s, Ext4和DVSS的寫(xiě)入速度和輸入總帶寬一致.但是當(dāng)視頻路數(shù)為200時(shí), 輸入帶寬為100MB/s, DVSS能夠順利地實(shí)時(shí)寫(xiě)入, 而Ext4的寫(xiě)入速度只有85.69MB/s, 低于輸入帶寬, 造成較大的寫(xiě)入延遲.視頻路數(shù)上升到300時(shí), 輸入總帶寬達(dá)到150MB/s, DVSS依然能夠?qū)崟r(shí)地將視頻數(shù)據(jù)寫(xiě)入磁盤(pán), 而Ext4的寫(xiě)入速度稍微下降到了85.05MB/s.隨著視頻路數(shù)的繼續(xù)上升, DVSS的寫(xiě)入速度持續(xù)穩(wěn)定增長(zhǎng), Ext4的寫(xiě)入速度卻顯著下降.視頻路數(shù)上升, 用Ext4存儲(chǔ)大量并發(fā)的視頻流數(shù)據(jù)時(shí), 系統(tǒng)需要維護(hù)打開(kāi)的文件表項(xiàng)增多, 內(nèi)存開(kāi)銷(xiāo)變大, 且需要來(lái)回切換要寫(xiě)入的文件描述符, 磁頭移動(dòng)更加頻繁, 導(dǎo)致其寫(xiě)入性能顯著下降.

由此可見(jiàn), DVSS單臺(tái)存儲(chǔ)服務(wù)器的寫(xiě)入速度比基于文件系統(tǒng)的存儲(chǔ)方案要穩(wěn)定, 能夠支持400路分辨率為1 080P的視頻流的并發(fā)寫(xiě)入.

3.4 整體性能測(cè)試

上述的實(shí)驗(yàn)只測(cè)試了DVSS單臺(tái)存儲(chǔ)服務(wù)器在多路數(shù)據(jù)流同時(shí)寫(xiě)入時(shí)的性能, 為了進(jìn)一步觀察DVSS系統(tǒng)作為一個(gè)整體對(duì)外提供服務(wù)的能力, 需要對(duì)其進(jìn)行大規(guī)模數(shù)據(jù)流并發(fā)寫(xiě)入測(cè)試.將40臺(tái)存儲(chǔ)服務(wù)器分成20個(gè)存儲(chǔ)組, 每組2臺(tái)存儲(chǔ)服務(wù)器.我們用恒定碼流生成器(constant-bit-rate traffic generator)模擬2

000路、4 000路、6 000路、8 000路、9

000路、10 000路、11 000路、12 000路數(shù)據(jù)流, 每路數(shù)據(jù)流的比特率均為4Mbit/s.測(cè)試結(jié)果如

圖 6

Fig. 6

Fig. 6 DVSS overall performance evaluation

圖 6 DVSS整體性能測(cè)試

3.5 相關(guān)工作比較

為了說(shuō)明DVSS系統(tǒng)的優(yōu)勢(shì), 將DVSS系統(tǒng)與已有工作進(jìn)行對(duì)比分析, 分析結(jié)果見(jiàn)

表 1(Table 1)

Table 1 Comparison of DVSS with exisiting schemes

表 1 DVSS與已有工作的比較

現(xiàn)有/本文工作

存儲(chǔ)模型

容錯(cuò)能力

性能瓶頸

檢索精度

寫(xiě)性能

讀性能

性能描述

THNVR[

SQLite+定長(zhǎng)文件

較弱

無(wú)

普通SATA硬盤(pán)上可同時(shí)記錄256路碼率為1~2Mbit/s的視頻數(shù)據(jù)

DSFS[

連續(xù)存儲(chǔ)模型CSM

單點(diǎn)故障

存在

單臺(tái)存儲(chǔ)服務(wù)器可同時(shí)記錄300路碼碼率為4Mbit/s的視頻數(shù)據(jù)

DVSS

Redis+邏輯卷結(jié)構(gòu)

高可用

無(wú)

高, 秒級(jí)

單臺(tái)存儲(chǔ)服務(wù)器可同時(shí)記錄400路碼率為4Mbit/s的視頻數(shù)據(jù)

Table 1 Comparison of DVSS with exisiting schemes

表 1 DVSS與已有工作的比較

THNVR采用定長(zhǎng)文件存儲(chǔ)視頻數(shù)據(jù), 使用SQLite維護(hù)視頻文件的元數(shù)據(jù).THNVR檢索精度與文件大小和視頻碼率有關(guān), 精度較低.THNVR只有1份存儲(chǔ)的視頻數(shù)據(jù), 當(dāng)THNVR節(jié)點(diǎn)發(fā)生故障時(shí), 與該節(jié)點(diǎn)連接的攝像頭的視頻數(shù)據(jù)將面臨丟失的風(fēng)險(xiǎn), 容錯(cuò)能力較弱.DSFS設(shè)計(jì)了一種連續(xù)存儲(chǔ)模型(CSM), 將對(duì)磁盤(pán)的隨機(jī)高并發(fā)寫(xiě)轉(zhuǎn)化為順序?qū)? 有較高的寫(xiě)性能.但CSM模型中, 同一路視頻數(shù)據(jù)存儲(chǔ)較為分散, 讀操作需要頻繁移動(dòng)磁頭, 導(dǎo)致DSFS的讀性能較低.DSFS的元數(shù)據(jù)全部由MetaServer管理, 元數(shù)據(jù)量較大, 存在著性能瓶頸和單點(diǎn)故障問(wèn)題.DVSS以GOP為單位組織視頻數(shù)據(jù), 檢索精度能達(dá)到秒級(jí).DVSS采用根據(jù)視頻監(jiān)控?cái)?shù)據(jù)特征設(shè)計(jì)的邏輯卷結(jié)構(gòu), 并結(jié)合多數(shù)據(jù)流并發(fā)寫(xiě)入優(yōu)化方法, 將無(wú)序隨機(jī)的小寫(xiě)轉(zhuǎn)化成有序的大段連續(xù)寫(xiě), 提供較高的寫(xiě)性能, 并且同一路視頻流的數(shù)據(jù)存儲(chǔ)在同一數(shù)據(jù)塊中, 能夠支持較高的讀性能.同時(shí), DVSS針對(duì)分布式存儲(chǔ)的特點(diǎn), 設(shè)計(jì)了元數(shù)據(jù)服務(wù)和視頻數(shù)據(jù)的可用機(jī)制, 提高了系統(tǒng)的容錯(cuò)能力和可用性.

4 結(jié)束語(yǔ)

本文針對(duì)傳統(tǒng)基于IP-SAN視頻監(jiān)控存儲(chǔ)系統(tǒng)在規(guī)模上升時(shí)難以線(xiàn)性擴(kuò)展的問(wèn)題, 提出了面向視頻監(jiān)控?cái)?shù)據(jù)的分布式視頻流直存系統(tǒng)DVSS.DVSS將非結(jié)構(gòu)化視頻數(shù)據(jù)以GOP為單位組織直存入裸磁盤(pán)設(shè)備, 摒棄了傳統(tǒng)基于文件的存儲(chǔ)方式, 單臺(tái)存儲(chǔ)服務(wù)器在400路1 080P視頻流數(shù)據(jù)并發(fā)寫(xiě)入時(shí)的速度達(dá)到本地文件系統(tǒng)的2.5倍左右.DVSS采用的兩級(jí)索引檢索結(jié)構(gòu)只需要狀態(tài)管理器存儲(chǔ)少量的元數(shù)據(jù), 極大地減少了狀態(tài)管理器的負(fù)擔(dān), 消除了性能瓶頸.同時(shí), 兩級(jí)索引結(jié)構(gòu)提供了精確到秒級(jí)的檢索精度, 能夠更好地服務(wù)于上層應(yīng)用.此外, DVSS靈活的存儲(chǔ)服務(wù)器分組方式和組內(nèi)服務(wù)器互相備份的關(guān)系, 讓其能夠更好地支持視頻監(jiān)控系統(tǒng)的擴(kuò)展和容錯(cuò)需求.在DVSS系統(tǒng)的后續(xù)工作中, 將考慮用新型存儲(chǔ)設(shè)備, 如SSD(solid state disk(固態(tài)盤(pán)))等作為緩存盤(pán), 進(jìn)一步提升系統(tǒng)對(duì)高并發(fā)高清視頻的存儲(chǔ)能力.另一方面, 系統(tǒng)將會(huì)采用糾刪碼(erasure code)技術(shù)對(duì)存儲(chǔ)時(shí)間超過(guò)1個(gè)月的和需要永久保存的錄像段進(jìn)行離線(xiàn)處理, 進(jìn)而用糾刪碼的技術(shù)提高設(shè)備的存儲(chǔ)效率.

總結(jié)

以上是生活随笔為你收集整理的视频存储服务器 存储性能,面向海量高清视频数据的高性能分布式存储系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。