钟海峰 陈龙 谢雪英 刘伟
(江西警察学院 江西省南昌市 330100)
视频监控节能存储文件系统设计
钟海峰 陈龙 谢雪英 刘伟
(江西警察学院 江西省南昌市 330100)
基于磁盘的数字化和网络化安放视频监控系统已成为一种趋势,本文采用NAS方式,针对视频监控的访问特性,设计专门的数据布局方法和磁盘访问模型,以提高单一磁盘支持并发视频流的能力,减少视频存储服务器中处于工作状态的磁盘数从而降低存储节点的能耗。
NAS;视频服务器;节能存储
数字化、高清化、网络化的安防视频监控系统带来了爆炸式增长的数字视频信息,硬盘以其特有的大容量、高性能、低价格优势成为监控视频信息的主要记录设备,目前,使用硬盘构成大容量磁盘存储系统成为视频监控系统的核心组成部分,实现方式分为SAN、NAS和DAS三种,其中的NAS模式因实现容易、部署简单而广受欢迎,这种方式使用视频监控系统中存储服务器上的磁盘组实现系统视频数据的存储,并可以简单地增加磁盘数量实现系统存储容量的扩充。
视频监控NAS存储系统的流媒体数据读写方式与其它以小文件应用为主NAS系统的随机数据读写方式有很大不同,以采用D1格式图像的视频监控系统为例,每路D1图像数据流为2Mb/s,一天的视频记录需要约50G空间,包含500个摄像头的系统产生的合并数据流超过100MB/s,达到单块硬盘的大数据平均读写速度,而H.264协议高清视频数据流在6Mbps以上,因此视频监控系统存储系统必须具备很高的容量和读写性能,同时,系统存储容量和磁盘数量的不断增长,不仅导致存储服务器的高能耗和散热问题,还增加了磁盘的故障率。本文针对上述问题设计了一种基于NAS的视频监控存储系统GRNAS(GreenNAS),其根据视频监控数据流的特点来设计数据配置方式,实现NAS视频存储的高性能和低能耗。
视频监控系统是典型的I/O密集型应用,其系统瓶颈是磁盘的I/O性能,由于系统包含成百上千连续工作的摄像头,磁盘子系统需同时支持多条并发视频数据流,具有很强的并发大数据块的读写能力。同时,由于系统容量有限,每个磁盘中保存的视频数据都有时间期限,系统需要不断循环用新的视频数据覆盖旧视频数据。在经过多次这样的循环覆盖,必然产生大量磁盘碎片,降低磁盘的读写性能。
针对视频监控的访问特性,需要设计一种专门的文件系统通过控制数据在磁盘上的存放位置(布局),减少长期循环覆盖操作产生文件碎片的可能,以提高磁头顺序访问数据的速率,同时,尽可能合并视频数据流,减少处于工作状态的磁盘数从而降低存储节点能耗。
节能NAS文件系统(GRNAS)应用于视频监控文件存储服务器,其作用是将网络摄像机的数据存储服务统一到专门的存储服务器上,使得分布在网络上的视频数据流可以集中存储。其软件结构见图1。
系统采用分层化的程序结构,应用程序管理模块管理和调度各路摄像头任务的运行,当摄像头产生视频流时,它向GRNAS文件系统发出I/O请求,GRNAS文件系统根据数据布局算法和元数据数据库记录决定视频数据流写入哪一个磁盘的具体物理位置,本地数据管理模块进一步决定数据写人哪一个磁盘,并将视频流直接传输给驱动程序写入指定硬盘,同时修改该视频片段的元数据数据库记录,GRNAS文件系统和元数据数据库共同实现视频流数据的高效磁盘访问。
3.1 磁盘空间管理
图1 GRNAS文件系统结构图
执行一次视频数据输入/输出的磁盘访问时间TIO由磁头径向移动到物理磁道的寻道时间Ts,磁头旋转到目标扇区的时间Tr,磁头读/写时间Trw,即:
从上式可知,磁盘的访问性能直接受制于磁头定位延迟时间Ts+Tr,磁头移动距离短和磁盘旋转时间少的文件需要的访问时间少,因为物理位置上相邻磁盘块的数据读写避免了磁头的频繁移动从而提高了磁盘的读写效率,因此实现磁盘块顺序访问模式的是提高文件存储性能的有效方法。
传统的视频监控系统的文件存储方式割裂了文件的逻辑块与其对应磁盘块的物理位置之间的关系,当多路视频流并发写入磁盘时,视频数据写入是无序的状态,磁头移动频繁导致系统性能低下。为了实现视频数据记录的磁盘顺序访问,GRNAS系统采用数据库SQLserver来建立文件逻辑块与其对应磁盘块物理位置之间的映射关系并管理视频文件的元数据,如表1所示。
表1 文件映射分配表
表1记录了每个视频文件的创建时间,状态,对应的物理设备及其磁盘位置信息,系统逻辑卷中的块编号,并对物理磁盘和磁盘块按其物理位置进行排序,使得对应磁盘逻辑块呈单调递增关系排列,当多路视频流并发访问系统时,通过对数据流的有效调度,实现对磁盘的顺序访问,即将随机的视频数据I/O请求尽可能转化为磁盘物理块的顺序I/O响应,从而提高单个磁盘的数据吞吐率。表中还使用文件名表示视频流编号,并记录视频流的时间属性。
3.2 视频文件的管理
监控设备产生的视频数据流是以文件形式存储于磁盘上,在设备存储容量有限的情况下,需要通过不断的文件创建和删除,实现存储空间的循环覆盖使用,对于传统文件系统如FAT32、NTFS、EXT2等非定长模式文件逻辑块分配方式,必然产生大量文件碎片,破坏文件访问的顺序性,降低磁盘的数据传输率。因此,GRNAS系统采用定长文件模式实现磁盘存储块的充分利用,对于每一路视频数据流都分配相同大小的磁盘块来保存,每一个视频文件大小相同,记录相同时间段的视频信息,从根本上避免磁盘碎片的产生。其文件数据结构定义如下:
该文件信息包括:视频设备编号、文件创建时间、数据块分配状、磁盘编号、逻辑块编号态、有效期等。GRNAS视频存储设备由多个磁盘组成,可以根据需要控制每一个磁盘的工作状态,通过减少处于活动状态的耗能磁盘个数来有效降低系统能耗,这就要满足高强度视频I/O负载的服务质量前提下,尽可能提高单个磁盘的数据吞吐率,使得数据访问集中在少量硬盘上。
假设系统由i个磁盘组成,每个磁盘所能支持的负载量为Ci,系统记录j路数据流,每路数据流的速率为Sj,系统总的负载需求为Li如下式所示:
从负载的角度看,存储服务器至少需保持在活动状态的磁盘个数A如下式所示:
3.3 磁盘调度算法
视频监控的多路视频流是并发执行的,若不对数据流逻辑块序列进行有效的调度,而允许它们无序地并发写入的话,将破坏数据读写的顺序访问性,GRNAS系统设计专门的磁盘调度算法合并并发的多路视频数据,它以逻辑块为基本的单元,每一个逻辑块内可以存储固定时间图像帧的视频数据,同时还保存下一个可写逻辑块与前后关联逻辑块的地址。由于每一路视频流数据量较大,每个视频记录文件所需要占用n个逻辑磁盘块,并采用大数据量写方式,即当数据流达到该n个逻辑块容量时才一次性写入磁盘。其存储单元的数据配置如图2所示。其中A1、A2、A3为一路视频流在不同时间段的记录文件,每个记录文件又包含n个逻辑块。
图2 视频文件数据配置结构图
GRNAS系统初次使用前,先要进行初始化,即按照指定大小创立逻辑块,并创建数据库文件来维护逻辑块和物理块的映射信息,并描述文件的逻辑块分配信息,包括视频文件名、创建的时间)、逻辑块分配状态等信息,在进行数据存储时,GRNAS系统首先查询数据库表,从表中得到一个空逻辑块,然后开始写入操作。若存储设备空间己满,用最新的视频流覆盖最早的视频文件。系统运行过程中,GRNAS不断根据合并数据流的路数和磁盘端口速率计算合并的数据流数量。
现代视频监控系统以视频存储技术为核心,对于大数据量的高清监控数据存储系统,除了要求具有高并发性能外,还要实现环保节能。本文针对传统的流媒体存储割裂文件存储和磁盘物理块的关系这一缺陷,采用数据库进行文件逻辑块和磁盘物理块的集中管理,并设计了固定大小的文件长度和克服文件碎片的调度算法。相对于传统文件系统,大大提高了磁盘数据顺序访问的比率,有效地提高了服务器的支持并发数据流的性能并降低了系统能耗,为后期数据安全、可靠的保存提供了保障。
[1]孙功星,等译.Marc Farley.SAN存储区域网络.北京:机械工业出版,2001:20~23.
[2]G..Gibson et al.File Server Scaling with Network-Attached Secure Disks.ACM SIGMETRICS,June 1997:3~5.
[3]蔡明,任绮年,易剑光.视频监控系统中的视频存储系统的设计与实现[J].江南大学学报自然科学版,2003,2(2):115~118.
[4]骆云志,刘治红.视频监控技术发展综述[J].兵工自动化,2009(1):1~11.
[5]M.Greiffenhagen,D.Comaniciu,H.Niemann,et al.Analysis and Engineering of Vedio Monitoring Systems:An Approach and a Case Study.Proceeding of the IEEE,2001,90(10).
TP277
A
1004-7344(2016)12-0261-02
本文受江西省大学生创新创业项目《绿色多媒体网络文件服务器》支持(201311504003)。
2016-4-10