文/浙江大华技术股份有限公司产品经理 王运金 责任编辑/苏雪冰
云计算技术以大系统、大数据为最显著的特征,而安防行业是一个非常典型的大数据应用场景,安防行业中的卡口监控系统、视频监控系统由大量的设备组成(包括大量的前端采集设备、后端平台和云计算服务器集群等),每天产生呈几何级增长的数据,随着智慧城市大型项目的不断成功落地,整个安防平台呈现出数据量超大、数据类型多样、数据处理逻辑复杂、数据清洗、数据共享、数据挖掘难度高等处理难题,对安防厂商提出了巨大的挑战。其中主要表现在智能交通行业领域中海量的交通流信息和卡口过车抓拍图片、智慧城市行业领域中的海量视频录像文件等非结构化数据,安防行业的主要用户公安、交警都有着需要对海量图片和视频文件进行安全有效的数据存储、高性能并行计算、智能化的数据分析挖掘后进行实战方面的强烈需求,这些都与云计算特性非常吻合。提供海量存储的同时,如何快速有效的定位多维度数据,挖掘出各类孤岛数据在多维度的潜在关联关系,一直是我们致力于解决的问题。云计算、大数据等技术正在慢慢渗入安防行业,随着这些技术的发展成熟,将对安防行业带来革命性的影响。
大规模混合计算技术
监控系统产生的大量视频图像数据如果只靠人工来进行处理,效率会非常低,借助于视频智能化处理算法,已经可以从视频图像数据中获取一些简单的特征进行比对,或者进行模式匹配产生报警事件,提高了处理的效率。这种方式能够处理的数据量,数据组合的程度,数据的类型等等都还处于较低的水平,无法应对海量数据和日益增长的需求。大规模计算技术的目的就是为了提供一种统一的数据处理平台,上面可以集成各种智能化算法和计算模型,综合处理海量监控数据,以更快的速度得到更有价值的数据。
统一资源管理技术
监控系统产生的主要数据就是视频和图像数据,原始数据经过处理后,会产生更丰富的数据,处理的方式也会有很大不同。比如对于历史视频数据可以在后台处理的视频数据检索,对于卡口的车牌和人脸特征数据需要实时布控,对历史卡口信息需要做到实时检索。这些数据都需要不同的计算框架进行处理,通过引入统一的资源管理平台,可以在同一个资源池里运行不同的计算框架,大幅提高资源的利用率,同时在资源被某种业务独占时,又能最大限度的发挥系统的性能。
实时检索技术
传统的结构化数据都采用关系型数据库进行保存,通过RAC等技术形成数据库集群,通过索引方式进行加速,但是核心还是基于行存储和关系运算,面对海量记录时在各个方面都已经遇到了瓶颈。实时检索技术通过引入分布式数据库,列式存储,内存计算,索引引擎等技术,能应对100亿级别的结构化数据,在存储容量,可扩展性,检索速度等多个方面都可以得到大幅提升。该系统在智能交通、刑事侦查等视频监控领域具备重要的研究价值和广阔的应用前景。
复杂事件处理技术
随着安防行业的发展,业务变的也来越复杂,比如智能交通领域,出现了车辆积分研判、套牌车分析、同行车分析等需求。这些需求存在产生结果所依赖的条件多、处理过程实时性的要求高、需要处理的数据量巨大等特点。
传统的方式是采用关系数据库,通过复杂的SQL语句组合,不断查询比对的方式,很难满足实时性的要求。复杂事件处理通过引入流式计算等技术,动态地对输入数据进行实时的分析,处理速度可以大幅提供。不符合条件的数据都被丢弃掉,系统中只存在处理的结果或者可能有用的中间数据,这样对存储的要求也变小了,完全在内存中进行全过程的分析,实时性得到了保证。
人脸检索技术
人脸检索的技术在单台服务器上的应用已经比较成熟,可以应用在身份鉴别、在逃人员抓捕、可疑人员排查、身份证查重等领域。人脸检测过程可以分为以下几个阶段:视频或图像解码、人脸检测、特征提取、特征比对,前三个步骤都是每次请求对应一次计算,计算量相对可控,而最后一个步骤特征比每次请求则需要和达亿级的人脸特征进行比对,是运算量最大的一个阶段。
一些实时应用的请求数每秒钟可达请求数达到数百次,每次人脸比对次数可达百万级别时,则整个系统需要支持每秒亿级的人脸特征比对计算。如此大规模的计算,单机上是无法完成的,必须采用集群完成。特征库本身规模不大,但是比对次数很大,属于典型的计算密集型集群,特征库可以全部倒入到内存,在内存中完成计算。
海量视频检索技术
图像传感器采集到的视频数据保存到后端存储后,用户可以随时选择目标区域的多个摄像头,提交给视频检索集群,检索集群按照目标物体的特征快速检索的所有对应摄像头产生视频数据,找到目标物体特征所出现的视频,并定位到准确的时间点。其中主要使用了智能化技术实现视频数据到物体特征结构化数据的转换,支持车辆颜色,车牌,衣着颜色,人脸等特征。基于统一的计算资源池,实现智能化算法的并行运算,线性提高检索效率。
结构化之后的数据可以保存到数据库,下次检索可以直接通过结构化数据进行二次检索,大幅提高检索效率。
分布式对象存储技术
安防云在系统架构和设计上,充分考虑大规模集群环境下软硬件发生故障的现实,采用先进的管理思想和软件系统,实现对大量普通存储服务器存储空间资源进行虚拟化整合,实现软硬件故障高度容错,搭建高度稳定可靠的存储集群。
系统将控制流与数据流分离,以及充分优化元数据节点控制系统,使得系统具备极高的性能和良好的线性扩展能力。系统整体为应用提供统一命名空间,使得系统具备极好的数据共享能力。系统将负载均衡到集群内的各节点上,充分利用集群各节点性能,以获得很好的性能聚合能力以保证系统的稳定。集群采用高度灵活自组网技术,提供简易部署和维护功能。系统在数据可靠方面,采用智能冗余重建技术,保证较高磁盘利用率的前提下,提供最佳冗余策略。另外,系统在节点软硬件故障容错方面,也进行充分考虑,具备屏蔽所有可屏蔽错误能力。
快速文件索引技术
云存储系统可以支持上亿级的文件,同时还需要支持上千个用户同时访问。这么大规模的元数据和并发访问量,采用传统的内存加磁盘多级存储,以及多级索引方式,寻址的开销将非常大,直接影响到系统的可用性。
为了提高系统的响应速度,云存储采用粗粒度的管理方式,以64M作为典型的块大小进行索引,大幅减小元数据的数量,即使如此,系统的元数据规模还是会达到GB级别。基于这种情况,系统采用全内存态的元数据访问模式,可以将文件寻址时间降到毫秒级别。
为了保证元数据的可靠性,需要对元数据的访问做日志记录,并定期将元数据持久化到硬盘。
负载自动均衡技术
采用中心服务器模式来管理整个云存储文件系统,所有元数据均保存在元数据服务器上,文件则被按块划分存储在不同的数据节点上。
元数据维护了统一的命名空间,同时掌握整个系统内数据节点的使用情况,当客户端向元数据服务器发送数据读写的请求时,元数据服务器根据数据节点的磁盘使用情况、网络负担等情况,选择负担最轻的节点服务器对外提供服务,自动调节集群的负载状态。
数据节点内同时有提供磁盘级的负载均衡,根据磁盘的IO负载,空间容量等情况,自动选择负载最轻的磁盘存储新的数据文件。
当有一个数据节点因为机器故障或者其他原因造成离线时,元数据服务器会将此机器自动屏蔽掉,不再将此数据节点提供给客户端使用,同时存储在此数据节点上的数据也会自动恢复到其他可用的节点服务器上,自动屏蔽数据单节点故障对系统的影响。
另外对故障的数据节点上的数据快速恢复,只需将数据节点上的硬盘拔出,插入到其他数据节点,这样即减少集群对数据恢复的压力,又不对客户端读写产生影响。
高速并发访问技术
客户端在访问云存储时,首先访问元数据服务器,获取将要与之进行交互的数据节点信息,然后直接访问这些数据节点完成数据存取。
客户端与元数据服务器之间只有控制流,而无数据流,这样就极大地降低了元数据服务器的负载,使之不成为系统性能的一个瓶颈。客户端与数据节点之间直接传输数据流,同时由于文件被分成多个节点进行分布式存储,客户端可以同时访问多个节点服务器,从而使得整个系统的I/O高度并行,系统整体性能得到提高。
通常情况下,系统的整体吞吐率与节点服务器的数量呈正比。
高可靠性保证技术
对于元数据,通过操作日志来提供容错功能。主服务器本地SSD盘组建高可靠RAID1,提供高可靠容错能力。当元数据服务器发生故障时,在磁盘数据保存完好的情况下,可以迅速恢复以上元数据。且操作日志在主备元数据服务器之间实时同步,实现更高程度的可靠性。
对于节点服务器,采用Erasure Code冗余方式实现容错,数据冗余分布存储在不同的数据节点上。任一数据节点的损坏,不会导致任何数据丢失,不会影响任何的数据访问和写入过程。之后,通过灵活数据恢复机制,进行数据重建过程。集群规模越大,恢复速度越快。
高可用技术
系统中的所有服务节点均是通过网络连接在一起,由于采用了高可靠的容错机制,系统增减节点不必停止服务,可在线增减存储节点。
元数据服务器采用主备双机热备技术,主机故障,备机自动接替其工作,对外服务不停止;存储节点可采用Erasure code冗余备份机制,如采用4+1节点间冗余容错,任意损失一个节点,数据不丢失,服务不停止,客户端无感知。