专利名称:一种基于块存储的索引恢复方法和装置的制作方法
技术领域:
本发明涉及视频监控技术领域,尤其涉及一种基于块存储的索引恢复方法和装置。
背景技术:
目前,在视频监控系统中使用互联网协议存储区域网络(Internet ProtocolStorage Area Network,IPSAN)作为存储普遍应用。监控编码设备将获取到的监控数据存储到IPSAN中,当用户需要查看历史监控数据时,可以从IPSAN中读取相应的监控数据。图1为一种现有的视频监控系统的典型组网结构示意图,其中,视频编码器(Encoder, EC)通过互联网小型计算机系统接口( internet Small Computer SystemInterface, iSCSI)与IPSAN连接,并将监控摄像机获取到的监控数据进行编码后存储在IPSAN中。当用户需要查看历史监控数据时,可以通过视频监控客户端(Video Client, VC)或者视频解码器(Decoder,DC)向视频监控服务器(Video Management,VM)发送回放请求,VM接收到该回放请求后,向数据管理服务器(Data Management, DM)发送指示消息,指示DM读取IPSAN中存储的相应监控数据,并返回给VC或者DC。在上述的组网结构中,IPSAN将多个磁盘组成独立磁盘冗余阵列(RAID)后,将RAID分成一系列逻辑单元,每个逻辑单元都有一个逻辑单元号(LUN),然后将LUN分配给EC进行存储。EC录像数据的一种存储格式可以如图2所示,其中,该存储格式是基于块的存储格式,包括超级块、主索引区和多个数据区,每个数据区对应一个数据块,数据块的大小可以为256M,每个数据块包括副索引区和多个I帧组,可选地,所述数据块中还包括有填充区。EC按照图2所示的索引结构将录像数据存入IPSAN,每次数据写入都需要更改索引区,因此索引区数据读写频繁。回放录像时,首先是读取主索引区(一级索引),然后找到指定的数据区,再从数据区中根据副索引(二级索引)查找到指定时间的I帧组数据,然后读取I帧组数据发给客户端进行播放。其中,主索引区和副索引区的结构如图3所示,包括索引描述和索引项,索引项的内容为时间和/或空间信息,根据索引项的内容可以查询指定时刻的录像数据所在的位置。为了避免频繁的读写索引区域,现有的一种解决方案为,EC将索引区存于自身的缓存中,设定一个索引缓存时间(例如16秒),当索引缓存时间到达时进行一次索引区数据的写入,I帧组数据则是持续的写入数据区。在上述解决方案中, 由于索引数据非即时写入物理硬盘,当EC发生故障或被人为损坏时,录像数据已经写入存储设备,但缓存中的索引数据可能还没有写入存储设备,导致一部分录像数据无法查看。
发明内容
有鉴于此,本发明的目的是提供一种基于块存储的索引恢复方法和装置,能够在视频编码设备离线后,对索引数据进行及时的恢复,从而保证索引数据的完整性。为实现上述目的,本发明提供技术方案如下一种基于块存储的索引恢复方法,应用于视频监控系统中,所述索引恢复方法包括当满足索引恢复条件时,从待进行索引恢复的视频编码设备对应的存储资源的超级块中获取数据的结束时间;根据所述存储资源的索引获取所述结束时间对应的I帧组,并从所述I帧组中获取时间戳信息TM_Last ;从所述存储资源中获取所述I帧组的后续I帧组,每获取一个I帧组,从该I帧组中获取时间戳信息TM,当O < TM-TM_Last ( Tc时,根据该I帧组的信息对所述存储资源的索引进行更新,其中,Tc为所述视频编码设备对应的索引缓存时间。一种基于块存储的索引恢复装置,应用于视频监控系统中,所述索引恢复装置包括结束时间获取模块,用于当满足索引恢复条件时,从待进行索引恢复的视频编码设备对应的存储资源的超级块中获取索引的结束时间;结束帧组获取模块,用于根据所述存储资源的索引获取所述结束时间对应的I帧组,并从所述I帧组中获取时间戳信息TM_Last ;索引更新模块,用于从所述存储资源中获取所述I帧组的后续I帧组,每获取一个I帧组,从该I帧组中获取时间戳信息TM,当0 < TM-TM_Last≤ Tc时,根据该I帧组的信息对所述存储资源的索引进行更新,其中,Tc为所述视频编码设备对应的索引缓存时间。根据本发明的上述技术方案,在视频编码设备离线后需要进行索引恢复时,从与该视频编码设备对应的存储资源的超级块中获取索引的结束时间,并根据所述存储资源的索引获取所述结束时间对应的I帧组,根据所述I帧组就能够获取后续的I帧组,并根据获取到的I帧组的信息对所述存储资源的索引进行更新,如此,实现了对索引数据的及时恢复,从而保证了索引数据的完整性,使得客户端可以根据完整的索引数据查看任意时刻的录像数据。
图1为现有的视频监控系统的典型组网结构示意图;图2为是录像数据的一种存储格式示意图;图3为主索引区和副索引区的结构示意图;图4为本发明实施例的基于块存储的索引恢复方法流程图;图5为本发明实施例的基于块存储的索引恢复装置结构图。图6为本发明实施例中超级索引块的结构图。图7为本发明实施例中一级索引中的索引描述的数据结构图。图8为本发明实施例中一级索引中的索引项的数据结构图。图9为本发明实施例中二级索引中的索引描述的数据结构图。图10为本发明实施例中二级索引中的索引项的数据结构图。
具体实施例方式为解决现有技术中存在的录像数据已经写入存储设备,但缓存中的索引数据可能还没有写入存储设备,导致一部分录像数据无法查看的问题,本发明实施例提供的一种解决方案为,从离线的视频编码设备对应的存储资源的超级块中获取索引的结束时间,然后,根据所述存储资源的索引获取所述结束时间对应的I帧组,根据所述I帧组从所述存储资源中获取后续的I帧组,每获取一个I帧组,并根据该I帧组的信息对所述存储资源的索引进行更新。以下结合附图对本发明进行详细描述。在本发明的下述实施例中,是以图2所示的存储格式为例来描述索引数据的恢复,需要说明的是,本发明实施例的方案也可以适用于基于块存储方式的其他存储格式。图4为本发明实施例的基于块存储的索引恢复方法流程图,所述索引恢复方法应用于视频监控系统中,所述视频监控系统可以包括视频监控服务器、视频监控客户端、视频编码设备、IPSAN等,视频监控服务器包括数据管理服务器DM和视频管理服务器VM等,所述视频编码设备可以是网络摄像机IPC和视频编码器EC等。其中,所述索引恢复方法可以由视频监控服务器例如DM执行,也可以由视频编码设备执行。下面以所述索引恢复方法由DM执行,且视频编码设备为EC为例进行说明。参照图4,所述索引恢复方法可以包括如下步骤步骤401,当满足索引恢复条件时,从待进行索引恢复的视频编码器对应的存储资源的超级块中获取数据的结束时间;所述索引恢复条件可以为视频编码设备离线后,所述数据管理服务器的巡检时间间隔到达;或者,视频编码设备离线后,用户手动查询视频编设备对应的存储资源;或者,视频编码设备重新上线。具体地,EC的网络异常或被人为破坏之后,VM在一段时间内将检测到EC离线,然后,VM可以查询该EC是否配置存储计划,如果已配置存储计划,则可以将该EC的存储计划做一个“待恢复”标记,并查询该EC对应的DM,将EC离线的信息通知给该DM。其中,VM记录有各个EC的索引缓存时间(Tc,如果全局统一,则记入全局参数)。DM在巡检时间间隔到达或者当有用户手动查询该编码器上通道录像时,DM向VM获取该编码器对应通道的索引缓存时间Tc,然后对该录像数据进行索引恢复过程。另外,当EC上线时,VM收到EC的注册消息后,检测该EC对应的存储计划状态,如果处于“待恢复”状态,则马上进行录像恢复过程,同时通知EC存储计划暂停,直到下述的所述恢复过程结束后,再通知EC开始存储。DM在确定需要进行索引恢复时,首先获取对该EC的存储资源的读写权限,具体地,是将EC通道对应的存储资源以读写方式挂载(即在存储设备上将iSCSI target设置成读写,同时重新通过iSCSI连接存储磁盘);然后,查询该存储资源的超级块信息,获取当前超级块中索引的结束时间。例如,对于图2所示的存储格式,其中的超级块数据结构可以参考图6所示,可以获取其中的end_time作为索引的结束时间。 在上述数据结构中,units是静态配置的,也就是说,其值是固定的,具体值与EC对应的存储资源的大小有关。对于end_time,其对应于有索引信息的最后一个I帧组的时间。步骤402,根据所述存储资源的索引获取所述结束时间对应的I帧组,并从所述I帧组中获取时间戳信息TM_Last ;首先,根据所述存储资源的一级索引定位所述结束时间对应的数据块;然后,根据定位到的数据块中的二级索引获取所述结束时间对应的I帧组。具体地,DM在获取到所述结束时间后,通过查询一级索引项中的时间信息找出该结束时间对应的数据块(一级索引项的时间信息为每个数据块中第一个I帧组的时间,这里的查询过程可以用二分法实现)。例如,对于图2所示的存储格式,其一级索引中的索引描述的数据结构可以参考图7所示。其一级索引中的索引项的数据结构可以参考图8所示。索引项中包括如下时间信息year为年,month为月,day为日,hour为小时,minute为分钟,second为秒。将所述结束时间与索引项中的时间信息进行比较,可以确定该结束时间对应的数据块。在定位到所述结束时间对应的数据块后,就可以从该数据块中的二级索引获取所述结束时间对应的I帧组。例如,对于图2所示的存储格式,其二级索引中的索引描述的数据结构可以参考图9所示;而其二级索引中的索引项的数据结构可以参考图10所示。在块存储方案中,可以以例如16k作为一个存储单元,且以存储单元作为最小单位存储接收到的数据。为区别于一级索引中的数据块,将二级索引中的存储单元称为二级数据块。
`
在上述数据结构中,pos表示一个数据块(256M)中最后一个二级数据块(16K)的结束位置,items表示当前写完的二级数据块的索引号;year为年,month为月,day为日,hour为小时,minute为分钟,second为秒;block_offset表示该索引项对应的I巾贞组的开始位置相对于256M的数据块的开始位置所偏移的二级数据块的数目。根据二级索引项可以定位到所述结束时间对应的I帧组,从所述I帧组中获取时间戳信息TM_Last。例如,对于图2所示的存储格式,每个I帧组的数据结构如下
权利要求
1.一种基于块存储的索引恢复方法,应用于视频监控系统中,其特征在于,所述索引恢复方法包括 当满足索引恢复条件时,从待进行索引恢复的视频编码设备对应的存储资源的超级块中获取数据的结束时间; 根据所述存储资源的索引获取所述结束时间对应的I帧组,并从所述I帧组中获取时间戳信息TM_Last ; 从所述存储资源中获取所述I帧组的后续I帧组,每获取一个I帧组,从该I帧组中获取时间戳信息TM,当
2.如权利要求1所述的索引恢复方法,其特征在于,所述索引恢复条件为 视频编码设备离线后,视频监控服务器的巡检时间间隔到达;或者 视频编码设备离线后,用户手动查询视频编码设备对应的存储资源;或者 视频编码设备重新上线。
3.如权利要求1所述的索引恢复方法,其特征在于,所述根据所述存储资源的索引获取所述结束时间对应的I帧组,包括 根据所述存储资源的一级索引定位所述结束时间对应的数据块; 根据定位到的数据块中的二级索引获取所述结束时间对应的I帧组。
4.如权利要求1所述的索引恢复方法,其特征在于,还包括 当
5.如权利要求1所述的索引恢复方法,其特征在于,所述根据该I帧组的信息对所述存储资源的索引进行更新,包括 根据该I帧组的大小、位置以及时间戳信息,更新二级索引; 更新超级块中索引的结束时间为该I帧组对应的时间戳信息; 如果该I帧组为数据块中的第一个I帧组,更新一级索引。
6.一种基于块存储的索引恢复装置,应用于视频监控系统中,其特征在于,所述索引恢复装置包括 结束时间获取模块,用于当满足索引恢复条件时,从待进行索引恢复的视频编码设备对应的存储资源的超级块中获取索引的结束时间; 结束帧组获取模块,用于根据所述存储资源的索引获取所述结束时间对应的I帧组,并从所述I帧组中获取时间戳信息TM_Last ; 索引更新模块,用于从所述存储资源中获取所述I帧组的后续I帧组,每获取一个I帧组,从该I帧组中获取时间戳信息TM,当
7.如权利要求6所述的索引恢复装置,其特征在于,所述索引恢复条件为 视频编码设备离线后,视频监控服务器的巡检时间间隔到达;或者 视频编码设备离线后,用户手动查询视频编码设备对应的存储资源;或者 视频编码设备重新上线。
8.如权利要求6所述的索引恢复装置,其特征在于,所述结束帧组获取模块进一步用于根据所述存储资源的一级索引定位所述结束时间对应的数据块;根据定位到的数据块中的二级索引获取所述结束时间对应的I帧组。
9.如权利要求6所述的索引恢复装置,其特征在于,所述索引更新模块还用于当TM-TM_Last > Tc,或者,TM_TM_Last ( O时,结束索引恢复过程。
10.如权利要求6所述的索引恢复装置,其特征在于,所述索引更新模块进一步用于根据该I帧组的大小、位置以及时间戳信息,更新二级索引;更新超级块中索引的结束时间为该I帧组对应的时间戳信息;如果该I帧组为数据块中的第一个I帧组,更新一级索引。
全文摘要
本发明提供一种基于块存储的索引恢复方法和装置,属于视频监控技术领域。所述方法包括当满足索引恢复条件时,从待进行索引恢复的视频编码设备对应的存储资源的超级块中获取数据的结束时间;根据所述存储资源的索引获取所述结束时间对应的I帧组,并从所述I帧组中获取时间戳信息TM_Last;从所述存储资源中获取所述I帧组的后续I帧组,每获取一个I帧组,从该I帧组中获取时间戳信息TM,当0<TM-TM_Last≤Tc时,根据该I帧组的信息对所述存储资源的索引进行更新,其中,Tc为所述视频编码设备对应的索引缓存时间。本发明能够在视频编码设备离线后,对相应的索引数据进行及时的恢复,从而保证索引数据的完整性。
文档编号H04N21/8547GK103037203SQ20121053893
公开日2013年4月10日 申请日期2012年12月11日 优先权日2012年12月11日
发明者周迪, 陈乾业 申请人:浙江宇视科技有限公司