隨著流媒體技術(shù)的發(fā)展,其應用范圍在不斷擴展。特別是在視頻監(jiān)控領(lǐng)域,高清網(wǎng)絡攝像機的出現(xiàn)和發(fā)展,對實時視頻流媒體的存儲提出了新的挑戰(zhàn)。
實時流媒體存儲的主要特點是以“持續(xù)寫入”為主,以“隨機讀出”為輔,與傳統(tǒng)的廣播電視音像資料存儲系統(tǒng)和文件系統(tǒng)應用有著明顯的區(qū)別。
1、引言
基于網(wǎng)絡的視頻監(jiān)控存儲系統(tǒng)的存儲介質(zhì)主要由磁盤陣列和相應的控制系統(tǒng)組成,根據(jù)其結(jié)構(gòu),可分為直連式存儲(DAS)、網(wǎng)絡附加存儲(NAS)和存儲區(qū)域網(wǎng)絡(SAN)。
DAS是以服務器為中心的存儲系統(tǒng),在視頻數(shù)量較多時,其響應能力下降比較嚴重,在大規(guī)模流媒體存儲系統(tǒng)中很少采用。
NAS是直接連接在網(wǎng)絡上的存儲系統(tǒng),是一種專用的存儲服務器,通常采用CIFS和NFS協(xié)議,提供文件系統(tǒng)服務。NAS系統(tǒng)具有較好的網(wǎng)絡共享能力,部署靈活,管理簡單。但在大量網(wǎng)絡并發(fā)傳輸持續(xù)數(shù)據(jù)時性能可能會顯著下降。
SAN是一種專用的存儲網(wǎng)絡系統(tǒng),提供統(tǒng)一的塊級存儲,所有存儲設備可以集中管理,支持完善的冗余備份功能。SAN可以是交換式網(wǎng)絡,也可以是共享式網(wǎng)絡。FC-SAN的最大缺點是成本昂貴,限制了它的廣泛應用。iSCSI的出現(xiàn),提供了低成本SAN(IPSAN),促進了SAN的應用和發(fā)展。
網(wǎng)絡視頻監(jiān)控系統(tǒng)對流媒體的存儲需求特點可以概括為:大容量、高性能、高可靠性、部署靈活、低成本。研究表明,iSCSI性能要明顯優(yōu)于NFS/CIFS[1,2],采用iSCSI協(xié)議的IPSAN產(chǎn)品非常適合網(wǎng)絡流媒體存儲應用。
2、iSCSI簡介 iSCSI(internetSCSI)[3]就是SCSIOverIP,將SCSI協(xié)議封裝在IP數(shù)據(jù)包中,在IP網(wǎng)絡上傳輸Block級I/O數(shù)據(jù)。目的是為了用IP協(xié)議將存儲設備連接在一起。通過在IP網(wǎng)上傳送SCSI命令和數(shù)據(jù),ISCSI推動了數(shù)據(jù)在網(wǎng)際之間的傳遞,同時也促進了數(shù)據(jù)的遠距離管理。由于其出色的數(shù)據(jù)傳輸能力,ISCSI協(xié)議被認為是促進存儲區(qū)域網(wǎng)(SAN)市場快速發(fā)展的關(guān)鍵因素之一。因為IP網(wǎng)絡的廣泛應用,ISCSI能夠在LAN、WAN甚至internet上進行數(shù)據(jù)傳送,使得數(shù)據(jù)的存儲不再受地域的限制。
iSCSI協(xié)議定義了在TCP/IP網(wǎng)絡上發(fā)送、接收Block(塊)級的存儲數(shù)據(jù)的規(guī)則和方法。ISCSI技術(shù)的核心是在TCP/IP網(wǎng)絡上傳輸SCSI協(xié)議,用TCP/IP報文、iSCSI報文封裝SCSI協(xié)議,使得SCSI命令和數(shù)據(jù)可以在普通以太網(wǎng)絡上進行傳輸。iSCSI在以太網(wǎng)上傳輸?shù)姆庋b結(jié)構(gòu)如圖1所示。硬盤,配置RAID5,千兆網(wǎng)連接。
如圖1
iSCSI遵循SCSI協(xié)議的客戶機-服務器體系結(jié)構(gòu),客戶端稱為Initiator(發(fā)起端),服務器端稱為Target(目標端)。
發(fā)起端將SCSI命令和數(shù)據(jù)封裝到TCP/IP包,經(jīng)過網(wǎng)絡傳輸,目標端收到TCP/IP包之后,將其解包獲得SCSI命令和數(shù)據(jù)并執(zhí)行,完成之后將返回的SCSI命令和數(shù)據(jù)封裝到TCP/IP包中再傳送回發(fā)起端。整個過程對用戶是透明的,使用遠端的存儲設備就象訪問本地的SCSI設備一樣。
Initiator可以使用軟件或硬件實現(xiàn),通常以軟件實現(xiàn),作為操作系統(tǒng)內(nèi)核驅(qū)動的一部分,使用現(xiàn)有網(wǎng)卡和網(wǎng)絡協(xié)議棧,通過編程實現(xiàn)。Windows系統(tǒng)自帶Initiator軟件,Linux系統(tǒng)下存在多種開源的Initiator軟件,包括Core-iSCSI、Open-iSCSI、UNH-iSCSI等。
iSCSI Target一般指專門的連接網(wǎng)絡的數(shù)據(jù)存儲設備,也可以是運行相應Target軟件的通用計算機。現(xiàn)在有眾多的存儲設備提供商可以提供商用IPSAN設備,當然也有象Openfiler、UNH-iSCSI等構(gòu)建在Linux系統(tǒng)上的開源iSCSI Target軟件。作為研究用途,軟件設計人員完全可以參考iSCSI RFC文檔自行開發(fā)iSCSI Target軟件[4,5]。
3、系統(tǒng)設計與實現(xiàn)
本文研究內(nèi)容是在iSCSI設備上實現(xiàn)實時流媒體存儲,如何實現(xiàn)iSCSI Initiator和Target不是本文關(guān)注的重點,因此,這里選用商用IPSAN設備和Open-iSCSI開源軟件作為研究的基礎。
在視頻監(jiān)控領(lǐng)域,目前主要存在兩種使用iSCSI實現(xiàn)實時流存儲的結(jié)構(gòu),分別是:
(1) 前端IP攝像機或編碼器直接把碼流寫入IPSAN設備,如圖2所示;
圖2、3
圖2 前端IP攝像機直接把碼流寫入IPSAN
圖3 流媒體服務器接收碼流然后寫入IPSAN
(2) 在后端使用服務器接收數(shù)字視頻流,然后寫入IPSAN,如圖3所示。
第一種存儲系統(tǒng)結(jié)構(gòu)簡單,節(jié)省后端服務器設備,但是要求前端設備實現(xiàn)存儲管理,而且存儲碼流采用iSCSI封裝,而實時監(jiān)控碼流一般需要使用RTP封裝,必須傳輸至少兩路碼流,對前端設備的網(wǎng)絡傳輸處理能力要求較高,對接入網(wǎng)的帶寬需求較大。{$page$}
第二種存儲系統(tǒng)需要在后端使用流媒體存儲服務器完成接收RTP流,然后封裝成iSCSI流并寫入IPSAN設備,對前端設備要求較低,前端設備只需要發(fā)出一個RTP組播碼流,就可以同時為存儲和實時監(jiān)控服務,節(jié)省了前端接入網(wǎng)帶寬。存儲系統(tǒng)主要依靠后端設備完成,與前端設備的具體實現(xiàn)無關(guān)。
顯然,由于一般前端接入網(wǎng)帶寬有限,而后端局域網(wǎng)一般能夠提供足夠的帶寬和較好的傳輸質(zhì)量,第二種結(jié)構(gòu)更適合大多數(shù)系統(tǒng),本文采用第二種結(jié)構(gòu)進行研究,并搭建如下的實現(xiàn)環(huán)境:流存儲服務器系統(tǒng)硬件使用通用的PC服務器,采用SUSE11操作系統(tǒng),采用MySQL數(shù)據(jù)庫管理系統(tǒng);前端使用H.264編碼的網(wǎng)絡攝像機,采用組播方式傳輸視頻流,如圖3所示。
系統(tǒng)主要由以下軟件模塊組成:
1、 攝像機信息管理:包括攝像機名稱、組播組、碼流類型、碼流帶寬等信息管理;
2、 存儲計劃管理:為每個攝像機制定存儲計劃;
3、 碼流接收處理模塊:根據(jù)存儲計劃和攝像機碼流信息接收RTP數(shù)據(jù)流;
4、 存儲模塊:把接收的碼流封裝成iSCSI格式寫入IPSAN設備。
5、 視頻檢索信息處理:生成檢索信息,并寫入數(shù)據(jù)庫;
6、 回放和下載服務:接收用戶回放或下載請求,并根據(jù)索引信息從IPSAN設備讀出數(shù)據(jù),封裝到RTP數(shù)據(jù)包中發(fā)回請求者,請求者接收碼流進行回放或下載保存;
7、 系統(tǒng)管理:系統(tǒng)管理模塊用戶信息管理、系統(tǒng)運行狀態(tài)監(jiān)控、日志管理等功能。
存儲設備上視頻數(shù)據(jù)的組織,不同于文件的隨機讀寫,而是采取順序讀寫方式,分塊存儲。系統(tǒng)在寫滿一個預定義數(shù)據(jù)塊后,根據(jù)該視頻數(shù)據(jù)流對應的攝像機的IP地址、寫入本數(shù)據(jù)塊的起止時間,自動生成一個塊索引值,存儲到數(shù)據(jù)庫中。按照存儲計劃,存儲到期后可依次覆蓋原有視頻數(shù)據(jù)。本系統(tǒng)利用iSCSI協(xié)議直接寫磁盤塊,規(guī)避了文件系統(tǒng)的工作機制,可以有效減少文件系統(tǒng)造成的磁盤碎片,提高磁盤空間的利用率。
4、實驗分析
為了測試上述系統(tǒng)的性能,搭建以下實驗環(huán)境:
網(wǎng)絡狀況:千兆以太網(wǎng)。
流媒體存儲服務器:4核Xeon CPU,2GB內(nèi)存,千兆網(wǎng)連接。
IPSAN存儲設備:16TB硬盤,配置RAID5,千兆網(wǎng)連接。
網(wǎng)絡攝像機:H.2641080P編碼,RTP組播傳輸,8Mbps碼流帶寬。
測試實時流:在另外一臺服務器上使用碼流轉(zhuǎn)發(fā)服務軟件轉(zhuǎn)發(fā)50路8Mbps碼流,模擬50路8Mbps實時流的環(huán)境。
對設備寫入48小時后進行測試。
4.1流媒體寫入性能
使用iftop查看網(wǎng)絡吞吐量,如圖4所示,可以看到,從流媒體存儲服務器(192.168.0.23)到IPSAN存儲設備(192.168.0.114)的流量持續(xù)大于400Mbps。IPSAN設備在測試時間過去2秒、10秒、40秒的平均接收流量分別為418Mbps、419Mbps和420Mbps。這個數(shù)據(jù)與預期結(jié)果相符,可以認為50路8Mbps碼流全部寫入到IPSAN設備中。
圖4 使用iftop查看網(wǎng)絡流量
4.2視頻檢索測試
使用測試程序分別對12小時、24小時、48小時、60小時和72小時的歷史視頻數(shù)據(jù)進行檢索,響應時間分別為29ms、42ms、51ms、56ms和61ms,隨著數(shù)據(jù)量的增加,檢索時間也相應的緩慢增加。由于受測試設備存儲空間限制,無法測試更長時間的數(shù)據(jù),但是從圖5的曲線可以推算,對于較大數(shù)據(jù)量,檢索時間也在可承受范圍之內(nèi)。
4.3視頻回放測試
使用VLC軟件通過RTSP協(xié)議對存儲的視頻進行播放,可見視頻播放流暢、連續(xù),沒有中斷,但偶爾存在少量馬賽克現(xiàn)象,說明存在數(shù)據(jù)丟包現(xiàn)象。分析可能的丟包原因存在三個方面:實時流的網(wǎng)絡傳輸丟包、存儲丟包、回放過程的網(wǎng)絡傳輸丟包。通過在流媒體存儲服務器上使用工具軟件抓包分析,發(fā)現(xiàn)實時流傳輸過程存在少量丟包現(xiàn)象。
上述結(jié)果表明,運行原型系統(tǒng)的一臺服務器上能夠滿足50路8Mbps的高清視頻流存儲需求,其索引響應時間極短,可以滿足一般系統(tǒng)需求。
圖5 數(shù)據(jù)量和檢索時間關(guān)系圖
5、結(jié)束語
本文以iSCSI協(xié)議為基礎,對實時流媒體存儲技術(shù)進行了探討,設計實現(xiàn)了一個高性能的原型系統(tǒng),并進[5]劉化君.物聯(lián)網(wǎng)關(guān)鍵技術(shù)研究[J].計算機時代,2010,(7):4.
行了系統(tǒng)性能測試。測試結(jié)果表明,原型系統(tǒng)的存儲和檢索性能可以滿足高清網(wǎng)絡視頻監(jiān)控系統(tǒng)的需求。本文對于正在迅速增長的高清網(wǎng)絡視頻監(jiān)控系統(tǒng)中的流媒體存儲提供了很好的參考。<
來源:互聯(lián)網(wǎng)
http:www.mangadaku.com/news/35398.htm

