视频数据存储方法及装置、数据存储设备与流程

文档序号:25021410发布日期:2021-05-11 16:45阅读:71来源:国知局
视频数据存储方法及装置、数据存储设备与流程

本申请涉及视频监控领域,具体而言,涉及视频数据存储方法及装置、数据存储设备。



背景技术:

在目前的视频监控领域,通常是采用磁盘阵列技术对视频数据进行存储(例如raid0、raid1等技术),然而当磁盘阵列中出现多块磁盘故障时,可能会导致该磁盘阵列失效,进而导致无法正读取或写入视频数据。

针对上述问题,在现有技术中,通常是采用备份软件对视频数据进行备份或直接将所述磁盘阵列上的数据备份至另一相同的磁盘阵列上,从而保证视频数据读写的可靠性。然而,直接将所述磁盘阵列上的数据备份至另一相同的磁盘阵列上,需要保证备份阵列与原存储设备的磁盘阵列数一致,通常需要预留大量的冗余备份空间,造成存储空间资源消耗过大。

若采用备份软件对视频数据进行备份,则需要使用额外的备份软件,为了支持该备份软件,通常还需要配置较大内存的硬件,造成成本的增加。



技术实现要素:

为了至少克服现有技术中的上述不足,本申请的目的之一在于提供一种视频数据存储方法及装置、数据存储设备。

第一方面,本申请实施例提供一种视频数据存储方法,应用于数据存储设备,所述数据存储设备包括用于存储视频数据的数据阵列及用于存储备份索引数据的备份阵列,其中,所述视频数据包括视频帧数据及索引数据,所述数据阵列包括多个逻辑资源,每个逻辑资源用于存储所述视频帧数据及索引数据,所述方法包括:

检测对所述数据阵列中各逻辑资源的索引数据进行同步的开关是否开启;

在检测到开启对所述数据阵列中各逻辑资源的索引数据进行同步的开关时,将所述数据阵列中存储有视频数据的逻辑资源中存储的索引数据备份到所述备份阵列中。

在可选的实施方式中,将所述数据阵列中存储有视频数据的逻辑资源中存储的索引数据备份到所述备份阵列中,包括:

读取所述数据阵列中存储有视频数据的逻辑资源中的索引数据,并将所述索引数据写到所述备份阵列上;

判断所述数据阵列和所述备份阵列中的索引数据是否一致;

若一致,将所述数据阵列和所述备份阵列的同步状态更新为已同步,并更新所述数据阵列上的索引数据与所述备份阵列上的备份索引数据的lba地址映射表。

在可选的实施方式中,所述方法还包括读取数据的步骤,包括:

根据所述数据的lba地址判断需要读取的数据为视频帧数据或索引数据;

若所述读取的数据为视频帧数据,则从所述数据阵列读取所述视频帧数据;

若所述读取的数据为索引数据,判断所述数据阵列和所述备份阵列的同步状态是否为已同步;

若已同步,则根据所述lba地址映射表将所述索引数据的lba地址重定向至所述备份阵列中,以便通过所述备份阵列读取所述索引数据;

若未同步,则从所述数据阵列中读取索引数据。

在可选的实施方式中,所述方法还包括写入数据的步骤,包括:

根据所述数据的lba地址判断需要写入的数据为视频帧数据或索引数据;

若所述写入的数据为视频帧数据,则直接将所述视频帧数据写入所述数据阵列中;

若所述写入的数据为索引数据,则将所述索引数据同时写入所述数据阵列及所述备份阵列中。

在可选的实施方式中,所述方法还包括:

检测所述数据阵列的状态是否为失效状态;

若所述数据阵列为失效状态,将需要写入的视频数据写入所述数据阵列中未损坏的磁盘中,并将需要写入的视频数据的索引数据存储至备份阵列中,其中,所述数据阵列包括多个磁盘,所述数据阵列失效是指所述数据阵列中的部分磁盘损坏导致无法读取完整的视频数据。

在可选的实施方式中,所述方法还包括:

检测所述数据阵列的状态是否发生变化;

若所述数据阵列由失效状态恢复为正常状态时,判断所述数据阵列和所述备份阵列的同步状态是否为已同步;

若所述数据阵列和所述备份阵列的同步状态为已同步,则将所述备份阵列上的索引数据同步至所述数据阵列上;

若所述数据阵列和所述备份阵列的同步状态为未同步,则将数据阵列上的索引数据同步至所述备份阵列上。

第二方面,本申请实施例提供一种视频数据存储装置,应用于数据存储设备,所述数据存储设备包括用于存储视频数据的数据阵列及用于备份索引数据的备份阵列,所述数据阵列包括多个逻辑资源,每个逻辑资源用于存储视频帧数据及索引数据,所述装置包括:

检测模块,用于检测对所述数据阵列中各逻辑资源的索引数据进行同步的开关是否开启;

备份模块,用于在检测到开启对所述数据阵列中各逻辑资源的索引数据进行同步的功能时,将所述数据阵列中存储有视频数据的逻辑资源中存储的索引数据备份到所述备份阵列中。

在可选的实施方式中,所述装置还包括用于读取数据的读取模块,所述读取模块具体用于:

根据所述数据的lba地址判断需要读取的数据为视频帧数据或索引数据;

若所述读取的数据为视频帧数据,则从所述数据阵列读取所述视频帧数据;

若所述读取的数据为索引数据,判断所述数据阵列和所述备份阵列的同步状态是否为已同步;

若已同步,则根据所述lba地址映射表将所述索引数据的lba地址重定向至所述备份阵列中,以便通过所述备份阵列读取所述索引数据;

若未同步,则从所述数据阵列中读取索引数据。

在可选的实施方式中,所述装置还包括用于写入数据的写入模块,所述写入模块具体用于:

根据所述数据的lba地址判断需要写入的数据为视频帧数据或索引数据;

若所述写入的数据为视频帧数据,则直接将所述视频帧数据写入所述数据阵列中;

若所述写入的数据为索引数据,则将所述索引数据同时写入所述数据阵列及所述备份阵列中。

第三方面,本申请实施例提供一种数据存储设备,所述数据存储设备包括用于存储视频数据的数据阵列及用于存储备份索引数据的备份阵列,其中,所述视频数据包括视频帧数据及索引数据;所述数据阵列包括多个磁盘,各个磁盘包括多个逻辑资源,每个逻辑资源用于存储所述视频帧数据及索引数据;所述数据存储设备还包括处理器及存储有若干计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述数据存储设备执行上述的视频数据存储方法。

相对于现有技术而言,本申请具有以下有益效果:

本申请涉及一种视频数据存储方法及装置、数据存储设备,该方法应用于数据存储设备,该数据存储设备包括用于存放视频数据的数据阵列以及用于存储备份索引数据的备份阵列,所述方法包括:检测是否开启对所述数据阵列中各逻辑资源的索引数据进行同步的功能;在检测到开启对所述数据阵列中各逻辑资源的索引数据进行同步的功能时,将所述数据阵列中存储有视频数据的逻辑资源中存储的索引数据备份到所述备份阵列中。本申请将视频数据中的索引数据同步至备份阵列中进行备份,即使当数据阵列中的部分磁盘损坏时,通过备份阵列中的备份索引数据也能实现对视频数据的读取或写入,且不会消耗过多的存储空间资源。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的数据存储设备的架构图;

图2为本申请实施例提供的视频数据存储方法的流程图;

图3为图2中步骤s220的子步骤流程图;

图4为本申请实施例提供的读取数据的子步骤流程图;

图5为本申请实施例提供的写入数据的子步骤流程图;

图6为本申请实施例提供的视频数据存储装置。

图标:10-数据存储设备;100-数据阵列;200-备份阵列;300-视频数据存储装置;101-磁盘;1011-逻辑资源;301-检测模块;302-备份模块;303-读取模块;304-写入模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

视频文件结构由file_head(文件头)、firstindex(第一指数)、secondindex(第二指数)及data(视频数据)组成。file_head表示视频文件的格式,firstindex包含一个uuid字段、块文件顺序号、通道号、录像开始时间、录像结束时间等信息,firstindex可以定位数据块位置。data包括secondindex、索引项及视频帧。secondindex则用于定位各个数据块中视频帧的位置。在本实施例中,简单地将视频数据分为视频帧数据及索引数据,可通过索引数据读取视频帧数据。

请参照图1,图1为本申请实施例提供的数据存储设备10的架构图。在本实施例中,数据存储设备10包括用于存储视频数据的数据阵列100及用于存储备份索引数据的备份阵列200,其中,视频数据包括视频帧数据及索引数据。

数据阵列100包括多个磁盘101,各个磁盘101包括多个逻辑资源1011,每个逻辑资源1011用于存储视频帧数据及索引数据。

在存储视频数据时,通常是以逻辑资源1011为单位,在每个逻辑资源1011中存储视频数据。具体地,结合参照图1,每个逻辑资源1011中均存储有索引数据、视频帧数据及该逻辑资源1011对应的元数据。

用于存储备份索引数据的备份阵列200的大小通常需要满足

x=0.25+0.001(单位gb),其中,x为备份阵列200的大小,n为数据阵列100中的逻辑资源的总大小。

可选地,在本实施例中,备份阵列200可以选用raid1阵列。在本实施例中,只需保证该备份阵列200具有较高的容错性,无需限制该备份阵列200具体的磁盘类型或阵列类型。

请参照图2,图2为本申请实施例提供的视频数据存储方法的流程图。该方法应用于数据存储设备10,包括以下步骤:

步骤s210,检测对数据阵列中各逻辑资源的索引数据进行同步的开关是否开启。

步骤s220,在检测到开启了同步的开关时,将数据阵列中存储有视频数据的逻辑资源中存储的索引数据备份到备份阵列中。

在上述步骤中,在对索引数据备份之前需要先检测数据存储设备10是否开启了同步开关。通常是通过检测是否存在备份阵列200以判断是否开启了同步开关。若存在备份阵列200,则表示同步开关已开启,若不存在备份阵列200,则表示同步开关开启失败或未开启,此时需要重新开启备份开关。

在开启备份开关之后,数据存储设备10将数据阵列100中存储有视频数据的逻辑资源1011中对应存储的索引数据备份至备份阵列200中,以便在数据阵列100失效时,通过备份阵列200上存储的备份索引数据读取视频数据。

具体地,请参照图3,图3为图2中步骤s220的子步骤流程图。在本实施例中,步骤s220包括以下子步骤:

子步骤s2201,读取数据阵列中存储有视频数据的逻辑资源中的索引数据,并将索引数据写到所述备份阵列上。

子步骤s2202,判断数据阵列和备份阵列中的索引数据是否一致。

子步骤s2203,将数据阵列和备份阵列的同步状态更新为已同步,并更新数据阵列上的索引数据与备份阵列上的备份索引数据的lba地址映射表。

在上述步骤中,索引数据通常是存储在逻辑资源1011的固定地址上,在进行同步时,数据存储设备10读取位于逻辑资源1011的固定地址上的索引数据并将该数据写入备份阵列200中。在同步完成后,将数据阵列100和备份阵列200的同步状态更新为已同步,该同步状态用于标识备份阵列200上存储的索引数据是否可用。同时,还需要更新数据阵列100上的索引数据与备份阵列200上的备份索引数据之间的lba(logicalblockaddress,逻辑资源地址)地址映射表。同时,备份阵列200中还记录有各个逻辑资源1011的id、大小、该逻辑资源1011的元数据等。

通过分离存放索引数据的备份阵列200与存放视频帧数据的数据阵列100,确保在数据阵列100在失效状态下时,仍然能够通过备份阵列200读取失效的数据阵列100上的剩余数据。可选择利用raid1阵列的高冗余性保证备份阵列200的可靠度。

可选地,在本实施例中,视频数据存储方法还包括读取数据的步骤。具体地,请参照图4,图4为本申请实施例提供的读取数据的子步骤流程图。在本实施例中,读取数据的包括:

子步骤s410,判断需要读取的数据为视频帧数据或索引数据。

子步骤s420,若读取的数据为视频帧数据,则从数据阵列读取视频帧数据。

子步骤s430,若读取的数据为索引数据,判断同步状态是否为已同步。

子步骤s440,若已同步,则根据lba地址映射表将索引数据的lba地址重定向至备份阵列200中,以便通过备份阵列200读取索引数据。

子步骤s450,若未同步,则从数据阵列100中读取索引数据。

在进行数据读取时,需要先根据待读取数据的lba地址判断待读取的数据为视频帧数据还是索引数据,若是视频帧数据,则通过数据阵列100直接读取,若是索引数据,则根据lba地址映射表将待读取的索引数据重定向至备份阵列200中,通过备份阵列200读取该索引数据。

由于数据阵列100中存放的索引数据通常是离散地分别存储在各个磁盘101的逻辑资源1011中,而索引数据在备份阵列200中是连续存储的。因此,在读取数据的步骤中,通过备份阵列200读取索引数据时,可以将从数据阵列100对索引数据离散地读取更改为从备份阵列200连续地读取索引数据,提高数据的读取性能。

可选地,在本实施例中,视频数据存储方法还包括写入数据的步骤。具体地,请参照图5,图5为本申请实施例提供的写入数据的子步骤流程图。在本实施例中,写入数据的步骤包括:

子步骤s510,判断需要写入的数据为视频帧数据或索引数据。

子步骤s520,若写入的数据为视频帧数据,则直接将视频帧数据写入数据阵列中。

子步骤s530,若写入的数据为索引数据,则将索引数据同时写入数据阵列及备份阵列中。

在上述步骤中,视频帧数据存储在数据阵列100中,索引数据同时存储在数据阵列100和备份阵列200中。因此,在判断出写入的数据为视频帧数据之后,直接将该视频帧数据写入数据阵列100中,若判断出待写入的数据是索引数据,除了将该索引数据写入数据阵列100中,还需要同时写入备份阵列200中。

在本实施例中,通过改变在有备份阵列200的情况下的读写流程,使得数据阵列100在失效的情况下,不仅可以读取数据,还可以写入数据。

在本实施例中,视频数据存储方法还包括:

检测数据阵列100的状态是否为失效状态;若数据阵列100为失效状态,则表示通过该数据阵列100无法正常读取数据。此时,在写入数据时,将需要写入的数据拆分为多个数据块并写入至该数据阵列100中未损坏的磁盘101中,同时将需要写入的数据的索引数据写入备份阵列200中。其中数据阵列100包括多个磁盘101,数据阵列100失效是指数据阵列100中的部分磁盘101损坏导致无法正常读取数据。

可选地,在本实施例中,该方法还包括:

检测数据阵列100的状态是否发生变化,若数据阵列100的状态由失效状态恢复为正常状态时,判断数据阵列100和备份阵列200的同步状态是否为已同步。若数据阵列100和备份阵列200的同步状态为已同步,则将备份阵列200上的索引数据同步至数据阵列100。从而将数据阵列100失效期间写入至备份阵列200中的数据同步至数据阵列100中。

若未同步,则将数据阵列100中的索引数据同步至备份阵列200中,以保证数据阵列100和备份阵列200上存储索引数据一致。

可选地,在本实施例中,若检测出备份阵列200的状态为失效状态时,则将关闭同步功能,并发出警告,以便工作人员能及时进行处理。此时,需要将失效的备份阵列200删除并重新创建新的备份阵列200。

当备份阵列200失效,且同步功能关闭时,需要将备份阵列200上存储的数据清除,并更新备份阵列200上存储的相关信息。

可选地,在本实施例中,备份阵列200还用于备份各个逻辑资源1011的元数据。当删除逻辑资源1011上的数据时,不会删除备份阵列200中的索引数据及存储在备份阵列200中的该逻辑资源1011的元数据,当出现误删除逻辑资源1011的操作时,可从备份阵列200上读取该逻辑资源1011的元数据并拷贝至数据阵列100中,即可恢复误删除的逻辑资源1011上的数据。

请参照图6,图6为本申请实施例提供的视频数据存储装置300,该装置应用于数据存储设备10,数据存储设备10包括用于存储视频数据的数据阵列100及用于备份索引数据的备份阵列200,数据阵列100包括多个逻辑资源1011,每个逻辑资源1011用于存储视频帧数据及索引数据,视频数据存储装置300包括:

检测模块301,用于检测对数据阵列100中各逻辑资源1011的索引数据进行同步的开关是否开启。

备份模块302,用于在检测到开启对数据阵列100中各逻辑资源1011的索引数据进行同步的开关时,将数据阵列100中存储有视频数据的逻辑资源1011中存储的索引数据备份到备份阵列200中。

读取模块303,用于读取数据。具体地,读取模块303用于:根据数据的lba地址判断需要读取的数据为视频帧数据或索引数据;若读取的数据为视频帧数据,则从数据阵列100读取视频帧数据;若读取的数据为索引数据,判断同步状态是否为已同步;若已同步,则根据lba地址映射表将索引数据的lba地址重定向至备份阵列200中,以便通过备份阵列200读取索引数据;若未同步,则从数据阵列100中读取索引数据。

写入模块304,用于写入数据。具体的,写入模块304用于:根据数据的lba地址判断需要写入的数据为视频帧数据或索引数据;若写入的数据为视频帧数据,则直接将视频帧数据写入数据阵列100中;若所述的数据为索引数据,则将索引数据同时写入数据阵列100及备份阵列200中。

本申请实施例所提供的视频数据存储装置300可以为数据存储设备10上的特定硬件或者安装于数据存储设备10上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

可选地,在本申请实施例中,还提供了一种数据存储设备10,包括用于存储视频数据的数据阵列100及用于存储备份索引数据的备份阵列200,其中,视频数据包括视频帧数据及索引数据;数据阵列100包括多个磁盘101,各个磁盘101包括多个逻辑资源1011,每个逻辑资源1011用于存储视频帧数据及索引数据;数据存储设备10还包括处理器及存储有若干计算机指令的非易失性存储器,所述计算机指令被处理器执行时,数据存储设备10执行上述的视频数据存储方法。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1