传统的视频录像技术大都采用在普通文件系统上用视频录像文件的方式来进行录像。因为普通文件系统固有的特点,导致在做视频存储应用时出现很多问题。
· 普通文件系统以簇为单位分配磁盘空间,为了提高空间利用率,簇的字节数一般都很小,文件反复读写/创建/删除导致簇不断被分配和释放,时间稍微一长就会产生磁盘碎片,导致磁盘读写性能急剧下降,严重时甚至会损坏磁盘;
· 普通的文件系统采用元数据来保证数据的一致性,鲁棒性不强,一旦元数据受到损害,即使数据部分没有损害,也无法还原。而超过100路的并发录像,若使用普通文件系统,元数据损坏的机率极大;
· 由于文件系统的限制,文件不能太大,也不能太小,一般采用几分钟一个文件进行录像,难以实现检索几秒以前的录像数据,很难支持对正在录像的文件的检索回放;
· 扫描磁盘文件、清理旧录像、检索等操作效率低下,且格式化非常缓慢。
所以,如果采用普通文件来实现存储服务,一般需要很多特殊的手段和技巧来避免上述问题,其中有一个办法就是采用文件预分配机制,多数的DVR厂商使用这个方案。
对于海量的分布式存储,使用上述方案也会碰到很多的挑战,通常更彻底的办法是开发自己的基于磁盘设备块和流媒体特性的文件系统。PVG选择了这个方案,PVG支持的文件系统命名为ROFS(Ring Objects File System)。
ROFS文件系统拥有最高的磁盘读写性能,还有极高的鲁棒性。系统采用大数据块方式读写磁盘,但以视频帧为单位进行提交,视频帧是一个最小可修复的单位,任何一个视频帧损坏不会影响其它视频帧,所以即使在没有任何RAID防护的情况下的硬盘物理损坏也只会损失非常短的一小段录像,如果是软损坏(程序错误导致的损坏)则甚至只会仅仅损失一帧或数帧(<1秒)而已,又因为ROFS为完全自主的文件系统,任何部分数据损坏都不会影响到其它地方的数据(没有破坏的完好数据全部可以修复),所以ROFS有极高的鲁棒性。
因为以视频帧为基本存储单位,一旦一个视频帧写入完成就立即可以进行检索,采用ROFS的录像系统可以检索到40毫秒前的录像。另外,视频帧的索引内建在ROFS中,所以可以快速地定位到任何一个视频帧并开始播放。最后,ROFS的格式化也非常迅速,几T磁盘的格式化时间也只需要数秒的时间。
ROFS文件系统基于POSA3构建的分布式存储服务提供强大的存储服务功能,可以作为云存储的一个现成解决方案。
易于扩充的协议标准化
随着国标GB/T28181-2011《安全防范
联网系统信息传输、交换、控制技术要求>>、公安部《全国公安机关视频图像信息整合与共享工作任务书》等文件的发布,分布式监控管理平台支持标准化协议势在必行。
如果监控管理平台在设计之初只支持内部的协议,对标准化的协议改造会是碰到一些困难,而PVG由于基于POSA构架,对新协议的满足、协议的扩充是比较容易处理的。事实上,每个协议只需要实现为一个组件或一个服务,就能满足通讯协议规定的要求。PVG已经基本上完成了国标GB/T28181-2011常用功能的实现。
分布式监控管理平台的前沿技术应用
分布式监控管理平台的前沿技术的应用,从近期来看,是进一步强化分布式集群服务的应用,从远期来看,应该是云计算的应用。事实上,我们可以认为分布式集群计算和云计算都是分布式系统的一种特殊形式。当然,云计算还包含运营、服务等更多的概念和内容。
PVG在流媒体转发服务器的模型中,支持多台流媒体的集群计算;