徐步东, 田晓艳
(1.山东师范大学 信息技术管理处, 山东 济南250014; 2.山东师范大学 信息科学与工程学院, 山东 济南 250014)
近年来,互联网上数据呈现爆炸式增长,其中非结构化数据的比重迅速增加.非结构化数据把信息存储在文件系统中,而不是数据库中,这使得很多数据库技术无法应用于非结构化数据管理,因此非结构化数据的存储、检索、挖掘等有很多问题亟待解决.云计算技术(Cloud Computing)正是在这种背景下提出的.云计算是一种商业计算模型,它将计算任务分布在大量计算设备构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务[1].云存储并不是某一个存储设备,而是云计算系统中的一种数据访问服务.云存储服务模型是以云计算为基础架构,通过集群、网格或分布式文件系统等技术,将网络中大量不同类型的存储设备通过应用软件集成起来协同工作,共同对外提供数据存储和业务访问功能的一个系统,如微软的云计算平台Azure、Amazon的EC2、IBM的blue cloud等[2].
云存储是配置了大容量存储空间并以数据存储和管理为核心的一个云计算系统[3],云存储技术比其他存储方式有更多优势,云数据中心能够整合移动数据、降低存储成本和复杂性,备份及灾难恢复更为容易,数据迁移更方便,数据安全性高.
云存储系统结构从下到上依次是存储层、基础管理层、应用接口层、访问层.如图1所示,其中存储层是云存储的基础部分,基础管理层是云存储的核心部分,应用接口层负责云存储的扩展功能,访问层针对不同需求的用户提供不同的访问类型.
目前云存储数据存储技术主要有谷歌的GFS(Google File System)和Hadoop的HDFS(Hadoop Distributed File System). GFS是一种高效集群存储技术,可以实现性能与容量的线性扩展。目前雅虎、英特尔的“云”计划等都采用HDFS数据存储技术[4].
计算机网络正在改变着传统的监控方式,视频监控技术的网络化发展已经成为趋势.网络视频技术的核心问题是海量视频流的传输以及存储问题.目前的络视频技术中, P2P技术、流媒体技术和分布式技术应用在视频点播和实时监控等方面,有效改善了传输视频流时的网络拥塞等问题;DVR存储等存储技术从不同侧重点解决了视频存储问题.
基于多播的P2P流媒体技术与可扩展性视频编码技术结合能极大地提高每个用户所接收的视频质量.由于可扩展性编码流具有可加性,媒体数据可以分块传输给不同用户,通过用户间的连接就可以得到合在一起的媒体数据.即使每个用户与服务器的连接带宽是有限的,应用P2P技术用户依然可以通过流媒体系统享受高质量的多媒体服务[5].
基于多播的P2P流媒体技术会对网络拥塞和视频质量带来很大改进.而视频监控与普通视频需求有很大不同,它需要多个点同时向一个点传输数据,机器性能和网络带宽限制给监控数据的流畅稳定传输带来很大的挑战,因此需要考虑服务器及缓存副本等机制来协助解决这些问题.
分布式网络视频监控系统[6]中监控信号经过前端编码后由网络传输到控制端解码.前端编码采用了软件编码方式,编码技术主要采用了ISO的MPEG系列和ITU的H系列;控制端解码则采取了硬件解码器.利用软件编码硬件解码的思路,提出了一个分布式网络视频系统架构,符合目前视频监控的网络化趋势.但是,海量视频数据在网络环境下进行多路信号同时传输会造成严重的拥塞.
视频监控存储主要有以下几种技术:
1)DVR存储.采用编解码器设备直接挂接硬盘的方式,但性能局限性影响了图像数据的共享及分析.
2)编码器外挂存储设备直连存储.通过编解码器的外部存储接口连接,主要采用SATA、USB、iSCSI和NAS等存储协定进行容量扩展,在转发环节易出现瓶颈,且多节点并发写入数据时效率不高.
3)集中管理存储.服务器连接前端编解码器,通过流媒体协议下载数据,然后存放到存储设备上.在节点较多的监控环境和中小型应用中较为合适.
4)NVR存储.NVR系统将传统的视频、音频及控制信号数字化,通过NVR设备上的网络接口,以IP包的形式在网络上传输,在DVR的基础上,实现系统网络化.但高清监控视频文件,对存储设备容量、读写性能、可靠性提出了更高要求.
以上存储方式都无法有效满足目前高清信号的监控存储需求.而视频监控云存储,可以突破传统存储方式的性能和容量瓶颈,在网络中联接大量各种不同类型的存储设备形成强大的存储能力,实现视频监控数据的海量存储管理.
作为网络视频监控的一个应用方面,高考视频监控数据管理系统的目标是建设一个遍布全省甚至是全国的系统,并提供远程的实时视频监控和视频回放功能.由于网络带宽因素、监控存储设备规模及性能上的限制等因素,一般都只能在一个城市内,甚至某一个区县内来建设,很难跨城来建设.目前网络带宽和路由瓶颈等问题很难实时传输.海量视频数据基于云存储服务模型的工作原理提出高考视频监控数据管理系统来解决上述问题.
高考视频监控数据一般采用考后人工报盘方式向上集中存储,这种方式效率低且耗费人力物力.本文提出高考视频监控管理系统采用分布式存储管理方式,利用网络和视频传输技术实现实时监控及安全存储.系统中多级监控点与底层各个考点之间有明确的控制关系,上一级监控点可以监看并控制下一级监控点,所有视频数据均存储于底层考点服务器上.
如图2所示,以某省为例建设的高考视频监控数据管理系统.省市县为自上而下为层次结构,每层监控点在逻辑上连成环状,将市级监控点T_M连成的环上增加一个省/市控制点P/T_C,将县级监控点C_M连成环状并根据距离范围远近和考点分布密度在环上增加一个或多个市/县控制点T/C_C.各级监控点和控制点逻辑上连成环状,分别负责视频数据的上传、数据备份并整理存储数据的目录信息等.
系统采用分层结构,最顶层为省级监控点,省级监控点P_M与下一层省/市控制点P/T_C及各个市级监控点T_M连接,并将市级监控点T_M与同层上的省/市控制点P/T_C连成环状;每个市级监控点T_M与下一层各个从属的县级监控点C_M及市/县控制点T/C_C连接,省/市控制点P/T_C与下一级的所有市/县控制点T/C_C连接,并将每个市的县级监控点C_M与其同市级辖区内的市/县控制点T/C_C连成环状;每个县级监控点C_M与从属各个考点服务器连接,所有市/县控制点T/C_C与所在市级考点按地理位置和考点密度就近连接.
县级监控点C_M及市/县控制点T/C_C.管理和维护其辖域内各个考点存储的视频监控数据,分别存储底层考点服务器送来的复制编码数据.T/C_C还负责存储维护一张目录信息表记录复制编码数据的存储位置,在一定时间内交换环上各个T/C_C的信息,保证每个T/C_C内都完整存储这一个市级单位的实时考点信息,并将整理合并好的目录数据向P/T_C传输,保证整个系统稳定.
市级监控点T_M及省/市控制点P/T_C.功能上近似县级监控点C_M和市/县控制点T/C_C.而结构上,只有一个P/T_C,是为了便于省级监控点P_M对整个系统的控制.T_M和P/T_C分别存储底层考点服务器送来的复制编码数据(与C_M、T/C_C存储的复制编码数据不同,四者存储的分别为某个视频文件的不同部分),P/T_C也负责维护一张目录信息表记录复制的编码数据的存储位置,并将下层各个控制点合并好的目录数据备份保存.
省级监控点P_M. 主要有两个功能:一是为各级监控点和控制点各自产生一个全局标识,另一个是记录各级监控点和控制点的信息.
上层调看视频监控数据时,根据可扩展编码技术的可加性,控制点同时向上层监控点以及控制点传输视频数据的不同部分,上层监控点将接收到的视频数据合并起来,避免了多点同时向一个点传输视频数据时出现网络拥塞等问题.监控点还可以依据副本创建策略以及缓存技术,减少由于网络不稳定对视频实时性传输的影响.为了提高安全性,管理节点在逻辑上构成一个环状,避免了单点失效等故障引起的其从属考点无法连接到问题,提高了系统鲁棒性.
在高考视频监控数据管理系统中,分布式存储是其中最基础的应用实现.目前的分布式存储解决方案中,文献[7]采用SAN作为视频监控应用的存储系统、文献[8]提出了高码率监控视频存储系统THNVR(Tsinghua Network Video Recorder)、文献[9]基于信息散列算法提出了一种分布式存储策略等.
借鉴已有分布式存储策略,在满足系统的存储要求下,提出了一种适用于高考视频监控数据管理的分布式存储策略——多点备份.在底层各个考点服务器上采取定长存储和加大缓存的方法实时存储各个考场的视频数据;考试过程中底层考点服务器实时监控数据并编码复制上传到上层控制服务器中,这样一方面可以保证底层服务器受到攻击篡改时,可以将上层监控点服务器存储的数据与其对比;另一方面在上层监控点服务器调看某一考点视频数据时只需上传复制之外的部分,减少数据传输量.
3.3.1 数据存储与检索
在底层考点服务器上创建定长文件存储高考视频数据,采用了轻量级数据库SQLite来存储考场监控文件记录表(见表1).在数据表中记录每个视频文件的场次科目信息、起止学号戳、复制编码数据存储位置,以便检索.
表1最后一栏数字表示视频文件编码数据的顺序,符号代表其复制后的存储位置,若存储于上层监控点,则是考点所属的县级或者市级监控点,分号间隔开不同部分的存储信息.同时在每个T/C_C中也会维护一张记录表,将多个控制点记录表的信息合并后上传至P/T_C.在P_M需要调看某一考场的监控视频时,首先从P/T_C维护的记录表中获得某场考试的存储位置,并控制监控视频的不同部分从不同存储位置向上同时传递,按照可扩展编码的可加性将视频合并复原.T_M要求监看数据时,其过程与P_M类似.
3.3.2 磁盘存储优化
高考视频监控中每个考点全部考场的视频数据同时集中存储到本地磁盘,存在着多路视频流同时写盘冲突的问题.为解决这一问题,系统采用缓冲存储法,为每一路视频数据分配较大的缓冲区,当缓冲区满时一并写入磁盘,即“大写”.这样并行操作保证了对磁盘的访问是顺序的、连续的、大量的,从而更有效地利用了磁盘写入带宽,实现高效访问,同时因为每个文件是定长存储,所以方便了检索定位.
云存储已经成为未来存储的一种发展趋势,未来云存储的发展主要在安全性、便携性、有效性和可用性及数据访问等方面.
本文将云存储技术应用于高考视频监控数据管理,实现了视频监控数据的分布式存储.该系统采用层次架构和同层节点逻辑上的环连接机制,避免了单点失效等故障引起的其从属考点无法连接到的问题,提高了系统的鲁棒性;采用底层考点定长存储视频数据并维护记录表的方式,方便了视频数据检索;多点备份策略有效改善了上层监控点在同时读取多路考点视频信息时的网络拥塞问题.
[1]刘鹏.云计算[M].第2版.北京:电子工业出版社,2011:1-2
[2]Microsoft. Cloud computing platform: Azure service platform overview[R].INSIGHT (Microsoft), 2008
[3]Dejun J,Pierre G,Chi C H.EC2 performance analysis for resource provisioning of service-oriented applications[C]//Proc of Workshop on Non-Functional Properties and SLA Management in Service-Oriented Computing,2009.
[4]网佳隽,吕智慧,吴杰,等.云计算技术发展分析及其应用探讨[J].计算机工程与设计,2010,31(20):4 405-4 407.
[5]窦凌云.P2P技术在视频流媒体网络中的研究和应用[D].成都: 电子科技大学,2006.
[6]王永利.分布式网络视频监控系统的架构[J].自动化仪表, 2010(7):42-44.
[7]雷凌.视频监控系统中最佳存储方案的实践[J].中国安防,2009(1):122-125.
[8]邬建元,顾瑜,鞠大鹏,等,分布式大规模监控视频存储系统THNVR[J].计算机工程与应用, 2009,45(31):56-59
[9]吕卫忠,康红勋,周园春,等.数据网格中高效的分布式存储策略[J].计算机工程,2011,37(5):38-40.