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

