存储结构及存储结构配置方法与流程

文档序号:17660235发布日期:2019-05-15 22:19阅读:191来源:国知局
存储结构及存储结构配置方法与流程

本发明涉及数据存储技术领域,具体而言,涉及一种存储结构及存储结构配置方法。



背景技术:

现有的块存储结构通常采用如说明书附图1所示的存储结构,主要包括格式化信息区、索引区及数据区。该存储结构在同一存储资源上对索引区和数据区进行划分,可实现索引区的单独管理及数据区的并发读写。

然而,该种存储结构的缺点在于:只能描述单个存储资源,不支持多个存储资源的跨资源应用。索引区存储空间固定,如果增加存储资源可能导致索引区不够用。



技术实现要素:

为了克服现有技术中的上述不足,本发明提供一种存储结构及存储结构配置方法,其对索引区及数据区进行分离存储,为每个区配置独立的存储资源,以实现多个存储资源的跨资源应用。

本发明较佳实施例的第一目的在于提供一种存储结构,所述存储结构包括:数据区、静态索引区及动态索引区;

所述数据区、静态索引区及动态索引区分别采用各自独立的存储资源存储数据,以通过所述数据区、静态索引区及动态索引区实现多个存储资源的跨资源存储。

本发明较佳实施例的第二目的在于提供一种存储结构配置方法,应用于存储设备,所述方法用于对上述的存储结构进行配置,所述方法包括:

建立数据区、静态索引区及动态索引区,分别为所述数据区、静态索引区及动态索引区配置对应的存储资源,以通过所述数据区、静态索引区及动态索引区实现多个存储资源的跨资源存储;

将所述数据区划分为存储空间相同的多个数据块;

配置所述静态索引区的卷索引区及第一根目录索引区;

配置所述动态索引区的对象索引区及第二根目录索引区。

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

本发明较佳实施例提供一种存储结构及存储结构配置方法。所述存储结构包括:数据区、静态索引区及动态索引区。所述数据区、静态索引区及动态索引区分别采用各自独立的存储资源存储数据,以通过所述数据区、静态索引区及动态索引区实现多个存储资源的跨资源存储。由此,可对索引区及数据区进行分离存储,索引区可根据需求进行扩展。将索引区分为静态索引区及动态索引区,可满足不同的数据索引需求,为每个区配置独立的存储资源,可实现多个存储资源的跨资源应用。

附图说明

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

图1是现有技术中存储结构的结构示意图。

图2是本发明较佳实施例提供的存储结构的组成示意图。

图3是本发明较佳实施例提供的数据区的结构示意图。

图4是本发明较佳实施例提供的静态索引区的结构示意图。

图5是本发明较佳实施例提供的动态索引区的结构示意图。

图6是本发明较佳实施例提供的存储结构配置方法的步骤流程图。

图7是本发明较佳实施例提供的图6所示的步骤s130的子步骤流程图。

图8是本发明较佳实施例提供的图6所示的步骤s140的子步骤流程图。

图标:10-存储结构;100-数据区;110-数据块;120-预留区域;200-静态索引区;210-卷索引区;212-卷索引头信息区;214-一级位图索引区;2140-一级位图单元;216-二级位图索引区;2160-二级位图单元;220-第一根目录索引区;222-第一根目录索引头区;224-根目录信息索引区;2240-根目录信息单元;226-根目录占用块索引区;2260-根目录占用块单元;228-第一根目录位图区;2280-根目录位图单元;300-动态索引区;310-第二根目录索引区;312-第二根目录索引头区;314-第二根目录位图区;320-对象索引区;322-第一存储区;3220-对象信息单元;324-第一位图区;3240-对象信息位图单元;326-第二存储区;3260-对象占用块单元;328-第二位图区;3280-对象占用块位图单元;329-对象索引头区。

具体实施方式

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

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

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

在本发明的描述中,需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本发明较佳实施例提供一种存储结构10。请参照图2,图2是本发明较佳实施例提供的存储结构10的组成示意图。所述存储结构10包括:数据区100、静态索引区200及动态索引区300。

在本实施例中,所述数据区100、静态索引区200及动态索引区300分别采用各自独立的存储资源存储数据,以通过所述数据区100、静态索引区200及动态索引区300实现多个存储资源的跨资源存储。

在本实施例中,所述数据区100是用于存储业务数据的区域。所述静态索引区200是负责资源、业务配置更新的索引区域。所述动态索引区300是在存储业务进行过程中,负责业务数据动态更新的索引区域。

在本实施例中,通过对存储结构10进行分离存储,可根据实际需求对每个存储区域的存储空间进行放大和缩小。尤其对于索引区,通过将索引区分为独立的静态索引区200及动态索引区300,可对区域的存储空间进行灵活调整,避免由于索引区存储空间固定导致索引区不够用的情况。

在本实施例中,可根据不同的数据读写类型选择对应的存储资源。例如,静态索引区200中存储的数据信息具有读取次数多、擦写次数少、数据不能丢失的特点,可优选采用ssd硬盘(solidstatedrives,固态硬盘)作为存储资源,同时进行raid1冗余处理。动态索引区300中存储的数据信息具有读取次数多、擦写次数多、数据不能丢失的特点,可优选采用企业级磁盘作为存储资源,同时进行raid1冗余处理。数据区100采用的存储资源可根据数据业务实际情况设定,可优选采用smr(shingledmagnetingrecording,叠瓦式磁记录)硬盘。

请参照图3,图3是本发明较佳实施例提供的数据区100的结构示意图。所述数据区100包括存储空间相同的多个数据块110。

在本实施例中,所述数据区100被划分为多个存储空间大小固定的数据块110。其中,每个数据块110被划分的存储空间大小可根据整个数据区100的总存储空间及数据块110的数量进行设定。比如,每个数据块110可设定为2g大小。

在本实施例中,当所述数据区100采用smr硬盘作为存储资源时,每个数据块110的结尾处设置有防止写入的数据覆盖到下一个数据块110的预留区域120。

在本实施例中,smr硬盘由很多的track(磁轨)组成,不同的track之间允许互相重叠,可在不缩小磁头的前提下极大地提高存储密度。由于smr的读写磁头宽度不一样,读磁头的宽度和track一致,写磁头宽度要大,顺序写入时,会覆盖后续部分的磁盘数据。由此,本方案在设计时,在每个数据块110的结尾处设置一个预留区域120,以保证写磁头在当前数据块110最后一次写入的数据不会覆盖下一个数据块110的数据。

在本实施例中,所述预留区域120设定的空间大小可根据smr硬盘磁头的宽度来确定,例如,可设定为4mb(大于磁头宽度)的预留区域120。其中,所述预留区域120所占空间可包括在数据块110空间(2g)内,也可在数据块110空间之后单独划分一个小区域作为所述预留区域120。

请参照图4,图4是本发明较佳实施例提供的静态索引区200的结构示意图。

在本实施例中,所述静态索引区200包括:用于描述数据区100中数据块110占用情况的卷索引区210。所述卷索引区210包括卷索引头信息区212、一级位图索引区214及二级位图索引区216。

在本实施例中,所述二级位图索引区216包括多个二级位图单元2160,每个数据块110都有对应的二级位图单元2160,所述二级位图单元2160用于存储数据块110占用情况。比如,所述二级位图单元2160存储的信息可以是0/1标志信息,当某个数据块110被占用时,即该数据块110中存储有数据信息时,该数据块110对应的二级位图单元2160中存储的标志信息为1。反之,数据块110未被占用时,二级位图单元2160中存储的标志信息为0。

在本实施例中,所述一级位图索引区214包括若干个用于存储一级组占用情况的一级位图单元2140,其中,每个一级组存储有若干个二级位图单元2160的占用信息。

在本实施例中,可将所述多个二级位图单元2160分成多个一级组,每个一级组都有对应的一级位图单元2140。其中,所述一级位图单元2140存储的信息也可采用0/1标志信息。比如,当某个一级组中包括的全部二级位图单元2160对应的数据块110均被占用时,该一级位图单元2140存储的标志信息为1,反之为0。例如,一级组中包括四个二级位图单元2160,若所述四个二级位图单元2160的标志信息均为1(即数据块110均被占用),则该一级组对应的一级位图单元2140标识为1,反之为0。

在本实施例中,优选地,可将一级位图单元2140的数量与一个一级组内二级位图单元2160的数量设置为相同的数量,以使查找效率最优。例如,一共有1024*1024个数据块110,最坏情况下最少的查找次数是1024+1024。

在本实施例中,所述卷索引头信息区212用于存储数据区100的数据块110信息(比如,数据块110数量、每个数据块110的存储空间大小等)、一级位图单元2140信息(比如,一级位图单元2140的数量,每个一级位图单元2140的存储空间大小)、二级位图单元2160信息(比如,二级位图单元2160的数量,每个二级位图单元2160的存储空间大小)及校验信息。

在本实施例中,通过设置卷索引区210,采用两级位图索引设计可在进行数据块110分配时,快速检索到未使用的数据块110,可有效提升索引效率。

请再次参照图4,所述静态索引区200还包括:用于描述根目录区域内各数据块110占用情况的第一根目录索引区220。

在本实施例中,所述根目录区域是指在所述数据区100中为每个根目录指定分配的数据存储区域,其中,每个根目录区域包括多个数据块110。比如,在视频监控系统中,所述根目录通常指一个图像采集设备(比如,摄像机)的数据目录,应用所述存储结构10的存储设备会为每个图像采集设备预先分配独立的数据存储区域,即根目录区域。

在本实施例中,所述第一根目录索引区220包括:第一根目录索引头区222、根目录信息索引区224、根目录占用块索引区226及第一根目录位图区228。

在本实施例中,所述根目录信息索引区224包括多个根目录信息单元2240,所述根目录信息单元2240用于存储根目录信息,比如,根目录名称、根目录区域的存储空间大小等。

在本实施例中,所述根目录占用块索引区226包括多个根目录占用块单元2260,所述根目录占用块单元2260用于存储根目录区域内被占用数据块110的地址信息。

在本实施例中,所述第一根目录位图区228包括多个根目录位图单元2280,所述根目录位图单元2280用于存储所述根目录占用块单元2260占用情况。

在本实施例中,根目录信息索引区224和根目录占用块索引区226可按照固定大小的存储空间进行分割,分割后,根目录信息单元2240的数量与根目录占用块单元2260的数量一致,并且按照排列顺序从前往后一一对应。

在本实施例中,所述根目录位图单元2280存储的信息也可采用0/1标志信息。当某个根目录占用块单元2260中存储有数据信息时,则将对应的根目录位图单元2280标识为1,反标识之为0。

在本实施例中,所述第一根目录索引头区222用于存储根目录数量、根目录信息单元2240信息(比如,根目录信息单元2240数量、每个根目录信息单元2240的存储空间大小等)、根目录占用块单元2260信息(比如,根目录占用块单元2260数量、每个根目录占用块单元2260的存储空间大小等)、根目录位图单元2280信息(比如,根目录位图单元2280数量、每个根目录位图单元2280的存储空间大小等)及校验信息。

在本实施例中,通过设置第一根目录索引区220,可快速查找到当前根目录对应的根目录区域内哪些数据块110已被占用,以此索引出未使用的数据块110。

请参照图5,图5是本发明较佳实施例提供的动态索引区300的结构示意图。

在本实施例中,所述动态索引区300包括:第二根目录索引区310,所述第二根目录索引区310与上述静态索引区200的第一根目录索引区220对应。所述第二根目录索引区310可包括:第二根目录索引头区312及第二根目录位图区314。

在本实施例中,所述动态索引区300还包括:用于描述分配给对象使用的数据块110的占用情况的对象索引区320。所述对象索引区320包括:第一存储区322、第一位图区324、第二存储区326、第二位图区328及对象索引头区329。

在本实施例中,对象是归属于根目录的子目录。在视频监控系统中,所述对象可以是指,但不限于,某个图像采集设备以一天为周期或以一周为周期采集的数据目录。

在本实施例中,所述第一存储区322包括多个用于存储对象信息(比如,对象名称)的对象信息单元3220。所述第一位图区324包括多个用于存储所述对象信息单元3220占用情况的对象信息位图单元3240。

在本实施例中,所述第二存储区326包括多个用于存储对象占用数据块110的地址信息的对象占用块单元3260。所述第二位图区328包括多个用于存储所述对象占用块单元3260占用情况的对象占用块位图单元3280。

在本实施例中,所述对象信息位图单元3240和/或对象占用块位图单元3280存储的信息也可采用0/1标志信息。标识方式与上述类似,在此不再赘述。

在本实施例中,所述对象索引头区329用于存储对象数量、对象信息单元3220信息、对象占用块单元3260信息、对象信息位图单元3240信息、对象占用块位图单元3280及校验信息。

在本实施例中,在对根目录区域进行预先配置时,若数据区100采用多个存储资源,可选用不同存储资源上的多个数据块110作为根目录区域,实现数据的离散分布。根目录区域分配好后,对象的数据块110分配会被限制在指定的所述根目录区域内,可快速查找到对象分配所需的数据块110。并且,在对索引区进行拓展时,能有效保证根目录区域不会由于存储空间的扩大而增加额外的开销,影响存储结构10的性能。

在本实施例中,由于不同的对象所需的存储空间可能是不同的,采用便于反复擦写的动态索引区300可满足数据存储动态变化的需求。在对数据进行删除处理时,以对象作为最小可删除粒度,不涉及整个根目录的数据业务,简化了系统本身的复杂性,同时也避免出现文件碎片。

本发明较佳实施例还提供一种存储结构配置方法。所述方法应用于存储设备,所述方法用于对上述的存储结构10进行配置。

在本实施例中,所述存储设备可以应用于,但不限于,视频监控系统,所述视频监控系统包括对多个图像采集设备(比如,摄像机),所述存储设备用于对图像采集设备采集的数据信息进行存储。

请参照图6,图6是本发明较佳实施例提供的存储结构配置方法的步骤流程图。下面对存储结构配置方法具体流程进行详细阐述。

步骤s110,建立数据区100、静态索引区200及动态索引区300,分别为所述数据区100、静态索引区200及动态索引区300配置对应的存储资源,以通过所述数据区100、静态索引区200及动态索引区300实现多个存储资源的跨资源存储。

在本实施例中,存储设备可分别为静态索引区200及动态索引区300各单独配置一个对应的存储资源,可根据实际的数据存储需求为数据区100配置一个或者多个存储资源。

步骤s120,将所述数据区100划分为存储空间相同的多个数据块110。

在本实施例中,存储设备将数据区100对应的一个或多个存储资源按顺序做好排列,根据数据区100存储空间总容量,将数据区100分割为顺序排列且存储空间大小固定的数据块110。

步骤s130,配置所述静态索引区200的卷索引区210及第一根目录索引区220。

请参照图7,图7是本发明较佳实施例提供的图6所示的步骤s130的子步骤流程图。所述步骤s130包括:子步骤s131、子步骤s132、子步骤s133及子步骤s134。

子步骤s131,建立卷索引区210及第一根目录索引区220。

子步骤s132,在所述卷索引区210中配置卷索引头信息区212、一级位图索引区214及二级位图索引区216,以对所述数据区100中每个数据块110的占用情况进行描述。

在本实施例中,所述存储设备将所述一级位图索引区214分割为多个一级位图单元2140,将所述二级位图索引区216分割为多个二级位图单元2160。

在本实施例中,配置好所述静态索引区200后,所述存储设备把数据区100中数据块110的数量、排序信息及每个数据块110对应的地址信息写入所述卷索引头信息区212。同时,所述存储设备将所述一级位图索引区214中的一级位图单元2140及二级位图索引区216中二级位图单元2160均设置为空闲状态(即将标志信息标识为0)。最后对卷索引区210进行整体校验,并将一级位图单元2140信息、二级位图单元2160信息及校验信息写入卷索引头信息区212。

子步骤s133,在所述数据区100中为每个根目录分配指定的根目录区域。

在本实施例中,每个根目录区域包括多个数据块110。

子步骤s134,在所述第一根目录索引区220中配置第一根目录索引头区222、第一根目录位图区228、根目录信息索引区224及根目录占用块索引区226,以对所述根目录区域中每个数据块110的占用情况进行描述。

在本实施例中,所述存储设备将根目录信息索引区224分割为多个根目录信息单元2240,将根目录占用块索引区226分割为多个根目录占用块单元2260,将第一根目录位图区228分割为多个根目录位图单元2280。

在本实施例中,当要给一个根目录(比如,一个摄像机)配置存储空间时,先划分该根目录对应的根目录区域,再配置该根目录对应的第一根目录索引区220。例如,要分配存储空间为2tb的根目录区域,每个数据块110的存储大小为2gb,所述存储设备从卷索引区210中找到可用的数据块110,再把可用数据块110对应的地址信息存储到第一根目录索引区220。存储过程包括:先根据第一根目录位图区228找到可用的位置。把根目录信息写到根目录索引信息区224。把数据块110的地址信息写到根目录占用块索引区226。然后在第一根目录位图区228中将对应的根目录位图单元2280标识为占用状态(即,标志信息为1)。最后将卷索引区210中对应位置的二级位图索引区216标识为占用状态。

在本实施例中,关于对卷索引区210及第一根目录索引区220具体的介绍可参照上述对图4的相关描述。

步骤s140,配置所述动态索引区300的对象索引区320及第二根目录索引区310。

请参照图8,图8是本发明较佳实施例提供的图6所示的步骤s140的子步骤流程图。所述步骤s140包括:子步骤s141、子步骤s142及子步骤s143。

子步骤s141,建立对象索引区320及第二根目录索引区310。

子步骤s142,根据所述第一根目录索引区220在所述动态索引区300中配置对应的第二根目录索引区310。

在本实施例中,所述第二根目录索引区310与静态索引区200的第一根目录索引区220对应。所述第二根目录索引区310包括:第二根目录索引头区312及第二根目录位图区314。

子步骤s143,在所述对象索引区320中配置对象索引头区329、第一位图区324、第一存储区322、第二位图区328及第二存储区326,以对分配给对象使用的数据块110的占用情况进行描述。

在本实施例中,可根据对象索引区320生成业务数据表,用于记录对象相关的数据信息。

在本实施例中,对对象索引区320的配置操作与上述配置第一根目录索引区220类似,在此不再赘述。关于对对象索引区320及第二根目录索引区310的具体介绍可参照上述对图5的相关描述。

在本实施例中,当需要删除对象相关的数据时,可根据对象索引区320查找到对应的数据块110,删除数据块110中存储的数据信息,释放所述对象索引区320,然后将第一根目录位图区228中对应的根目录位图单元2280设置为空闲状态。

在本实施例中,当需要删除一个根目录的全部数据时,先根据对象索引区320找到对应的地址信息,清除动态索引区300上的对象信息。然后在静态索引区200找到对应的第一根目录索引区220,清除该第一根目录索引区220,并释放该根目录占用的数据块110,并在卷索引区210中将对应的二级位图单元2160设置为空闲状态。

综上所述,本发明较佳实施例提供一种存储结构及存储结构配置方法。所述存储结构包括:数据区、静态索引区及动态索引区。所述数据区、静态索引区及动态索引区分别采用各自独立的存储资源存储数据,以通过所述数据区、静态索引区及动态索引区实现多个存储资源的跨资源存储。

由此,可对索引区及数据区进行分离存储,将索引区分为静态索引区及动态索引区,满足不同的数据索引需求。为每个区配置独立的存储资源,可实现多个存储资源的跨资源应用。

并且,可实现数据存储的离散分布,数据索引效率高。随着数据区存储空间的扩增或缩小,可动态调整索引区的存储容量并且不会影响存储结构的性能。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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