背景技术
随着视音频编解码技术和网络存储技术的发展,通过将EC(Encoder,编码器,如摄像机)的图像数据数字化,并在Internet网络上进行传输和存储,从而形成了视频监控技术。
在视频监控技术中,为了实现监控数据的存储,RAID(Redundant Array ofIndependent Disks,独立磁盘冗余阵列)技术是关键组成部分,该RAID技术可为EC通道提供存储空间,而且由于RAID的高性能、高可靠性、可扩展性,使得大量的EC同时将监控数据存储在一个RAID阵列上成为可能,并且可以在需要时对存储在RAID阵列上的监控数据进行读取(回放操作)。
现有视频监控系统的组网示意图如图1所示,该视频监控系统中至少包括EC、VM(Video Management,视频管理)服务器、VC(Video Client,视频客户端)、IP SAN(Storage Area Network,存储域网络,即存储设备,由RAID组成)、以及相应的软件管理系统及网络传输设备。
基于图1所示的视频监控系统,EC根据事先制定的计划或策略进行监控数据的存储,在存储过程中,EC对当前的画面内容进行持续不断地编码,将编码数据持续不断地封装在iSCSI(internet Small Computer System Interface,基于Internet小型计算机系统接口)报文中,并发送至存储设备中进行存储。
进一步的,EC在对监控数据编码的过程中,可生成I帧组(即数据),并将I帧组传输给存储设备进行存储;之后,在存储设备存储监控数据的过程中,在存储I帧组时,需要将I帧组的时间戳写入到二级索引,将I帧组存储到数据区,并在二级索引中记录该I帧组存储到数据区的位置信息(即偏移量)。
现有技术中,VC在请求回放监控数据时,需要先查询数据库(如VM的数据库),从而得知存储有监控数据的时间段,继而可以基于该存储有监控数据的时间段请求回放;因此,提出了DM(Data Management,数据管理)服务器定期巡检的解决方式,DM服务器在定期巡检过程中,需要将存储设备上存储监控数据的时间段信息通知给数据库。
具体的,DM服务器可定期(15分钟)读取存储设备上所有SAN资源的索引信息,得到存储监控数据的时间段信息,并将其记录在数据库上。其中,在数据库中可通过建立位图的方式表示相应的时间段是否存在监控数据,例如,每5分钟有监控数据,则标识为1,否则为0。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
DM服务器定期巡检将所有存储资源中的索引信息读出,对于存储设备来说,相当于小块的随机读操作,而现有的存储设备对于随机IO(输入输出)的处理远远不如顺序IO性能,这样一来,每当巡检发生时,存储设备的性能就会降低,甚至可能导致EC的存入受到影响,发生丢失监控数据的情况。
发明内容
本发明提供一种监控数据的查询方法和设备,以提高存储设备的性能和可靠性。
为了达到上述目的,本发明提供一种监控数据的查询方法,应用于包括监控设备、存储设备、管理服务器和视频客户端的监控系统中,该方法包括以下步骤:
所述管理服务器从所述监控设备获取所述存储设备上监控数据对应的时间信息,并存储所述监控数据对应的时间信息;
所述视频客户端根据所述监控数据对应的时间信息查询所述存储设备上存储的监控数据。
所述管理服务器从所述监控设备获取所述存储设备上监控数据对应的时间信息,具体包括:
在将监控数据存储到所述存储设备上时,所述监控设备确定所述监控数据对应的时间信息,并通过指定类型的报文将所述监控数据对应的时间信息发送给所述管理服务器;
所述管理服务器从所述指定类型的报文中获取所述监控数据对应的时间信息。
所述管理服务器从所述监控设备获取所述存储设备上监控数据对应的时间信息,具体包括:
在将监控数据存储到所述存储设备上时,所述监控设备确定所述监控数据对应的时间信息,并通过指定类型的报文将所述监控数据对应的时间信息发送给所述存储设备;
所述存储设备从所述指定类型的报文中获取所述监控数据对应的时间信息,并在维护的时间信息表中存储所述监控数据对应的时间信息;
所述管理服务器从所述存储设备的所述时间信息表中获取所述监控数据对应的时间信息。
所述管理服务器从所述存储设备的所述时间信息表中获取所述监控数据对应的时间信息,包括:
所述存储设备通过指定类型的报文将所述时间信息表中的监控数据对应的时间信息发送给所述管理服务器;或者,
所述管理服务器从所述存储设备的所述时间信息表中查询监控数据对应的时间信息。
所述指定类型的报文包括:基于Internet小型计算机系统接口iSCSI报文。
一种管理服务器,应用于包括监控设备、存储设备、所述管理服务器和视频客户端的监控系统中,该管理服务器包括:
获取模块,用于从所述监控设备获取所述存储设备上监控数据对应的时间信息;
存储模块,用于存储所述监控数据对应的时间信息,由所述视频客户端根据所述监控数据对应的时间信息查询所述存储设备上存储的监控数据。
所述获取模块,具体用于接收来自所述监控设备的指定类型的报文,并从所述指定类型的报文中获取所述监控数据对应的时间信息。
所述获取模块,具体用于接收来自所述存储设备的指定类型的报文,并从所述指定类型的报文中获取所述监控数据对应的时间信息;或者,
当所述存储设备的时间信息表中维护有所述监控数据对应的时间信息时,从所述时间信息表中查询所述监控数据对应的时间信息。
一种监控设备,应用于包括所述监控设备、存储设备、管理服务器和视频客户端的监控系统中,该监控设备包括:
确定模块,用于在将监控数据存储到所述存储设备上时,确定所述监控数据对应的时间信息;
发送模块,用于通过指定类型的报文将所述监控数据对应的时间信息发送给所述管理服务器;或者,
通过指定类型的报文将所述监控数据对应的时间信息发送给所述存储设备。
一种存储设备,应用于包括监控设备、所述存储设备、管理服务器和视频客户端的监控系统中,该存储设备包括:
接收模块,用于接收来自所述监控设备的指定类型的报文;
获取模块,用于从所述指定类型的报文中获取监控数据对应的时间信息;
存储模块,用于在维护的时间信息表中存储所述监控数据对应的时间信息;
发送模块,用于通过指定类型的报文将所述时间信息表中的监控数据对应的时间信息发送给所述管理服务器。
与现有技术相比,本发明至少具有以下优点:
由监控设备确定监控数据对应的时间信息,并由管理服务器从监控设备或存储设备上获得该时间信息,从而不需要定期巡检将所有存储资源中的索引信息读出,不会对存储设备的随机读造成影响,显著提高存储设备的性能和可靠性。
具体实施方式
本发明提出一种监控数据的查询方法,该方法应用于监控系统中,该监控系统中至少包括监控设备(如编码器等)、存储设备(如IP SAN等)、管理服务器和视频客户端VC,且该管理服务器上设置有数据库(用于记录存储有监控数据的时间段信息)。
该管理服务器用于实现当前VM服务器和DM服务器的功能;根据实际组网的需求,还可以直接部署VM服务器和DM服务器,且VM服务器和DM服务器共同实现管理服务器的功能,以图1为例,是监控系统中直接部署VM服务器和DM服务器的示意图,此时,数据库可以设置在VM服务器或DM服务器上,以数据库设置在VM服务器上为例进行说明。
基于上述网络架构,如图2所示,该监控数据的查询方法包括以下步骤:
步骤201,监控设备(即前端编码器,如EC)向存储设备发送监控数据,存储设备接收来自监控设备的监控数据,并将来自监控设备的监控数据存储到RAID阵列。其中,该监控数据可以为视频数据,且由于该监控数据用于播放录像,该监控数据还可称为录像数据。
具体的,在监控设备按存储计划发送监控数据的过程中,监控设备对监控数据编码完成后可生成I帧组,并将I帧组传输给存储设备进行存储;此外,需要将I帧组的时间戳写入到二级索引,以及在二级索引中记录该I帧组存储到存储设备的位置信息(即地址偏移量)。
如图3所示的二级索引的格式示意图,二级索引标识记录有二级索引偏移量(即地址偏移量),即每个二级索引记录有一个I帧组的时间戳和偏移位置。例如,二级索引1记录了I帧组1的时间戳和偏移位置,因此通过二级索引1,则可以查找到I帧组1所在的位置。
步骤202,在将监控数据存储到存储设备的过程中,监控设备确定监控数据对应的时间信息。其中,该监控数据对应的时间信息为存储设备上存储有监控数据的时间段信息。
例如,以5分钟为检索粒度,则时间201106071015与时间201106071020之间有监控数据存储到存储设备时,监控设备确定监控数据对应的时间信息为201106071015,
该时间201106071015表示时间201106071015与时间201106071020之间,在存储设备上存储有监控数据;之后,时间201106071020与时间201106071025之间有监控数据存储到存储设备时,监控设备确定监控数据对应的时间信息为201106071020,该时间201106071020表示时间201106071020与时间201106071025之间,在存储设备上存储有监控数据。
步骤203,管理服务器从监控设备获取存储设备上监控数据对应的时间信息。其中,由于在监控设备上确定有监控数据对应的时间信息,因此,管理服务器可从监控设备获得该监控数据对应的时间信息。
方式一:在确定了监控数据对应的时间信息之后,监控设备通过指定类型的报文将监控数据对应的时间信息发送给管理服务器,管理服务器从指定类型的报文中获取该监控数据对应的时间信息。例如,监控设备通过指定类型的报文将时间201106071015发送给管理服务器,管理服务器可获得监控数据对应的时间信息为201106071015。
方式二:在确定了监控数据对应的时间信息之后,监控设备通过指定类型的报文将监控数据对应的时间信息发送给存储设备,存储设备从指定类型的报文中获取监控数据对应的时间信息,并在维护的时间信息表中存储监控数据对应的时间信息;之后,管理服务器从存储设备的时间信息表中获取监控数据对应的时间信息。
具体的,可由存储设备主动通过指定类型的报文将时间信息表中的监控数据对应的时间信息发送给管理服务器;或者,管理服务器从存储设备的时间信息表中查询监控数据对应的时间信息。
例如,监控设备通过指定类型的报文将时间201106071015发送给存储设备,存储设备将时间201106071015记录在时间信息表中;之后,存储设备主动将时间201106071015发送给管理服务器,或者,由管理服务器从时间信息表中查询到时间201106071015。
本发明中,该指定类型的报文包括但不限于:基于Internet小型计算机系统接口iSCSI报文,例如,可以为iSCSI的NOP-OUT报文。
以NOP-OUT报文为例,则基于实际策略,监控设备可设置一个定时器,该定时器的时间可与上述检索粒度相同,如检索粒度为5分钟时,通过该定时器可以每5分钟向管理服务器或存储设备发送一个NOP-OUT报文,且NOP-OUT报文中携带监控数据对应的时间信息。
例如,如图4所示,可以在NOP-OUT报文的Reserved字段中加入T字符串,并使用该T字符串存放监控数据对应的时间信息(如201106071015),该时间信息表示从该时间信息开始的一个检索粒度期间内,在存储设备中存储过该监控设备的监控数据。
针对方式二,存储设备上可维护表1所示的时间信息表,即存储设备接收到来自监控设备的NOP-OUT报文后,从NOP-OUT报文中获得监控数据对应的时间信息,并将时间信息存储到时间信息表中。
表1
SAN资源ID |
时间信息1 |
时间信息2 |
时间信息3 |
时间信息N |
LUN1 |
201106071015 |
201106071020 |
201106071025 |
… |
LUN2 |
201106071015 |
201106071020 |
201106071025 |
… |
LUN3 |
201106071015 |
201106071020 |
201106071025 |
… |
LUNN |
… |
… |
… |
… |
需要注意的是,在表1中,SAN资源ID与监控设备相对应,例如,监控设备1将自身的监控数据存储到LUN1中,201106071015表示监控设备1在时间201106071015-时间201106071020内有监控数据存储到存储设备上。
基于表1维护的内容,存储设备可以主动将监控数据对应的时间信息发送给管理服务器,也可以由管理服务器从时间信息表中将监控数据对应的时间信息读出。
需要说明的是,为了节省时间信息表中记录的内容,方便对时间信息表的维护,当存储设备主动将监控数据对应的时间信息发送给管理服务器后,或者,管理服务器从时间信息表中将监控数据对应的时间信息读出后,还可以由存储设备或管理服务器将时间信息表中记录的内容清空。
步骤204,管理服务器在数据库中存储监控数据对应的时间信息。
需要说明的是,当采用图1所示的组网架构时,该数据库可以设置在VM上,上述管理服务器的功能均由DM服务器实现,因此,本步骤中,由DM服务器在VM的数据库中存储监控数据对应的时间信息。
在数据库中存储监控数据对应的时间信息的过程中,可以采用表1所示的方式进行存储,也可以采用位图的方式进行存储,本发明中并不局限于上述方式,只要使得VC在请求回放监控数据时,能够从数据库中得知存储有监控数据的时间段即可,本发明中不再详细说明。
步骤205,视频客户端根据监控数据对应的时间信息查询存储设备上存储的监控数据。即视频客户端在回放前,使用检索功能将数据库上的监控数据时间信息读出,再进行回放。
具体的,视频客户端在发送查询请求之前,需要先获知监控数据对应的时间信息,从而可根据该监控数据对应的时间信息发送获取监控数据的查询请求。例如,当基于监控数据对应的时间信息,获知时间201106071015与时间201106071020之间有监控数据存储在存储设备上时,则视频客户端可以发送针对时间201106071015与时间201106071020之间的查询请求;获知时间201106071015之前没有监控数据存储在存储设备上时,则视频客户端不需要发送针对时间201106071015之前的查询请求。
基于与上述方法同样的发明构思,本发明还提出了一种管理服务器,应用于包括监控设备、存储设备、所述管理服务器和视频客户端的监控系统中,如图5所示,该管理服务器包括:
获取模块11,用于从所述监控设备获取所述存储设备上监控数据对应的时间信息;
存储模块12,用于存储所述监控数据对应的时间信息,由所述视频客户端根据所述监控数据对应的时间信息查询所述存储设备上存储的监控数据。
所述获取模块11,具体用于接收来自所述监控设备的指定类型的报文,并从所述指定类型的报文中获取所述监控数据对应的时间信息。
所述获取模块11,具体用于接收来自所述存储设备的指定类型的报文,并从所述指定类型的报文中获取所述监控数据对应的时间信息;或者,
当所述存储设备的时间信息表中维护有所述监控数据对应的时间信息时,从所述时间信息表中查询所述监控数据对应的时间信息。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明还提出了一种监控设备,应用于包括所述监控设备、存储设备、管理服务器和视频客户端的监控系统中,如图6所示,该监控设备包括:
确定模块22,用于在将监控数据存储到所述存储设备上时,确定所述监控数据对应的时间信息;
发送模块22,用于通过指定类型的报文将所述监控数据对应的时间信息发送给所述管理服务器;或者,
通过指定类型的报文将所述监控数据对应的时间信息发送给所述存储设备。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明还提出了一种存储设备,应用于包括监控设备、所述存储设备、管理服务器和视频客户端的监控系统中,如图7所示,该存储设备包括:
接收模块31,用于接收来自所述监控设备的指定类型的报文;
获取模块32,用于从所述指定类型的报文中获取监控数据对应的时间信息;
存储模块33,用于在维护的时间信息表中存储所述监控数据对应的时间信息;
发送模块34,用于通过指定类型的报文将所述时间信息表中的监控数据对应的时间信息发送给所述管理服务器。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。