一种快照的数据结构、相关数据处理方法及装置和系统制造方法及图纸

技术编号:30240119 阅读:13 留言:0更新日期:2021-10-09 20:16
本发明专利技术公开了一种快照的数据结构、相关数据处理方法及装置和系统,该快照的数据结构,包括主数据和元数据;所述元数据中包括主数据的数据块标识和对应的继承位图;所述继承位图中的每个继承位对应主数据的一个数据块,每个继承位包括用于标识对应数据块是否与前一快照版本共享的继承标志。通过在元数据的继承位图的继承位中记录对应数据块的继承标志,与现有技术相比不用单独对数据块的引用计数进行单独维护,降低了对系统IO访问性能的影响;并且,方便数据处理过程中的数据读写操作。方便数据处理过程中的数据读写操作。方便数据处理过程中的数据读写操作。

【技术实现步骤摘要】
一种快照的数据结构、相关数据处理方法及装置和系统


[0001]本专利技术涉及快照
,特别涉及一种快照的数据结构、相关数据处理方法及装置和系统。

技术介绍

[0002]快照(snapshot)是保留文件系统在某一时间点的一致数据的镜像。在不同时间点为一个文件系统创建的不同的快照版本,可以形成一条快照版本链。快照数据不会被修改,可保证备份数据过程中的数据一致,而当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据回滚恢复某个可用的时间点的状态,所以快照技术广泛用于数据备份和异常故障后恢复。
[0003]现有技术中,快照通常采用写时重定向(Redirect On Write,ROW)和写时拷贝(Copy On Write,COW)两种方式实现。参照图1所示,采用COW方式写数据时,为快照版本分配新的数据资源(本专利技术实施例中称为新分配数据块)把快照的主数据拷贝到新分配数据块作为快照的主数据,再修改快照版本的元数据,最后用新写入数据修改原有的数据块中的数据。由此可以看出采用COW方式,需要包含两次数据修改,读写数据量大,严重影响了系统的输入/输出(Input/Output,IO)访问性能。参照图2所示,采用ROW方式写数据时,为当前可写快照版本分配新的数据资源,并把新写入数据拷贝到新分配数据块中,从而保留快照数据块的数据不被修改。数据写入时,只包含一次数据修改,读写数据量小,对系统IO访问性能影响小,因此现有技术中通常采用ROW方式进行快照数据处理。
[0004]采用ROW方式进行快照数据处理,得到的多个快照版本之间可能会共享一个数据块的数据,即多个快照版本的元数据中都会记录该数据块号。为了高效判断一个数据块的数据是否被多个快照版本共享,以便于在写入数据时进行写时,保留只读快照版本的数据不被修改,以及在删除快照版本时,不将共享的数据释放,现有技术中,通常采用块引用计数表来记录数据块号对应的数据块的数据是否被多个快照版本共享。但是该方法需要对块号引用计表进行维护。如果对块号引用计表在内部存储器中维护,这样不仅增加了内部存储器的开销,而且在系统重启后,需要遍历快照版本链中的所有元数据才能构建完成该块号引用计表,因此会影响系统IO访问性能。如果采用数据持久化方式,在外部存储器对块号引用计表进行维护,那么每次对对块号引用计表中的对应数据块的引用计数进行更新时,需涉及到低效的外部存储器的输入/输出(Input/Output,IO)操作,所以也会影响系统IO访问性能。

技术实现思路

[0005]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种快照的数据结构、相关数据处理方法及装置和系统。
[0006]作为本专利技术实施例的第一个方面,本专利技术实施例提供一种快照的数据结构,包括主数据和元数据;
[0007]所述元数据中包括主数据的数据块标识和对应的继承位图;
[0008]所述继承位图中的每个继承位对应主数据的一个数据块,每个继承位包括用于标识对应数据块是否与前一快照版本共享的继承标志。
[0009]作为本专利技术实施例的第二个方面,本专利技术实施例提供一种数据处理方法,包括:
[0010]获取快照的元数据中主数据的数据块标识和继承位图;所述继承位图中的每个继承位对应主数据的一个数据块,每个继承位包括用于标识对应数据块是否与前一快照版本共享的继承标志;
[0011]根据主数据的数据块标识和继承位图中对应继承位的继承标志,进行以下至少一项处理:创建快照、写入数据、读取数据、删除快照版本和快照的数据迁移。
[0012]作为本专利技术实施例的第三个方面,本专利技术实施例提供一种快照创建方法,包括:
[0013]固定当前可写快照版本的主数据和元数据,作为最新的只读快照版本;
[0014]复制最新的只读快照版本的元数据作为新的可写快照版本的元数据,并修改新的可写快照版本的继承位图中对应继承位的继承标志。
[0015]作为本专利技术实施例的第四个方面,本专利技术实施例提供一种快照数据写入方法,包括:
[0016]访问当前可写快照版本的元数据,获取待写入数据的数据块标识和对应继承位的继承标志;
[0017]若所述继承位的继承标志为无效标识,则将待写入数据写入所述数据块标识指示的数据块;
[0018]若所述继承位的继承标志为有效标识,分配新的数据块,将待写入数据写入所述新分配数据块,修改元数据中的数据块标识为新分配数据块的数据块标识,并修改继承位图中新分配数据块的数据块标识对应继承位的继承标志。
[0019]作为本专利技术实施例的第五个方面,本专利技术实施例提供一种快照删除方法,包括:
[0020]获取待删除快照版本的元数据中的数据块标识和继承位图中对应的继承位的继承标志;
[0021]若待删除快照版本的继承位的继承标志为有效标识,则不释放对应的数据块标识指示的数据块的数据;
[0022]若待删除快照版本与后一个快照版本的对应数据块的继承位的继承标志均为无效标识,则释放待删除快照版本的相应数据块标识指示的数据块的数据;
[0023]若待删除快照的继承位的继承标志为无效标识,而后一个快照版本的对应继承位的继承标志为有效标识,则不释放待删除快照版本的数据块标识指示的数据块的数据,并修改后一个快照版本的继承位图中对应的继承位的继承标志为无效标识。
[0024]作为本专利技术实施例的第六个方面,本专利技术实施例提供一种快照的数据迁移方法,应用于快照迁移的源端,包括:
[0025]当待迁移快照为当前可写快照版本时,针对每个数据块,确定目标端不存在对应的数据块,则将当前可写快照版本的数据块的数据和元数据中对应数据块的继承位发送到目标端;
[0026]当待迁移快照为只读快照版本时,针对每个数据块,若待迁移快照的后一个快照版本的继承位图中对应继承位的继承标志为无效标识,则将对应数据块的数据和元数据中
对应数据块的继承位发送到目标端;否则,向目标端发送构建元数据中对应数据块标识与数据块的映射关系的请求。
[0027]作为本专利技术实施例的第七个方面,本专利技术实施例提供一种快照的数据迁移方法,应用于快照迁移的目标端,包括:
[0028]当接收到源端的数据时,分配新的数据块,将接收的数据写入新分配数据块,修改元数据中的数据块标识为新分配数据块的数据块标识;
[0029]当接收到构建元数据中对应数据块标识与数据块的映射关系的请求时,构建当前快照版本中元数据的数据块标识与后一快照版本的对应数据块的映射关系。
[0030]作为本专利技术实施例的第八个方面,本专利技术实施例提供一种快照创建装置,包括:
[0031]快照固化模块,用于固定当前可写快照版本的主数据和元数据,作为最新的只读快照版本;
[0032]可写快照生成模块,用于复制最新的只读快照版本的元数据作为新的可写快照版本的元数据,并修改新的可写快照版本的继承位图中对应继承位的继承标志。
[0033]作为本专利技术实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种快照的数据结构,包括主数据和元数据;所述元数据中包括主数据的数据块标识和对应的继承位图;所述继承位图中的每个继承位对应主数据的一个数据块,每个继承位包括用于标识对应数据块是否与前一快照版本共享的继承标志。2.如权利要求1所述快照的数据结构,其中,若所述继承位的继承标志为有效标识,则表示该继承位对应的数据块为当前快照版本与快照版本链中前一快照版本共享的数据块;若所述继承位的继承标志为无效标识,则表示该继承位对应的数据块为当前快照版本中的新分配数据块。3.一种数据处理方法,包括:获取快照的元数据中主数据的数据块标识和继承位图;所述继承位图中的每个继承位对应主数据的一个数据块,每个继承位包括用于标识对应数据块是否与前一快照版本共享的继承标志;根据主数据的数据块标识和继承位图中对应继承位的继承标志,进行以下至少一项处理:创建快照、写入数据、读取数据、删除快照版本和快照的数据迁移。4.如权利要求3所述的数据处理方法,所述创建快照,包括:固定当前可写快照版本的主数据和元数据,作为最新的只读快照版本;复制最新的只读快照版本的元数据作为新的可写快照版本的元数据,并修改新的可写快照版本的继承位图中对应继承位的继承标志。5.如权利要求3所述的数据处理方法,所述写入数据,包括:访问当前可写快照版本的元数据,获取待写入数据的数据块标识和对应继承位的继承标志;若所述继承位的继承标志为无效标识,则将待写入数据写入所述数据块标识指示的数据块;若所述继承位的继承标志为有效标识,分配新的数据块,将待写入数据写入所述新分配数据块,修改元数据中的数据块标识为新分配数据块的数据块标识,并修改继承位图中新分配数据块的数据块标识对应继承位的继承标志。6.如权利要求3所述的数据处理方法,所述读取数据,包括:从当前访问的快照版本的元数据中,获取待读取数据的数据块标识;从所述数据块标识指示的数据块中读取数据。7.如权利要求3所述的数据处理方法,所述删除快照版本,包括:获取待删除快照版本的元数据中的数据块标识和继承位图中对应的继承位的继承标志;若待删除快照版本的继承位的继承标志为有效标识,则不释放对应的数据块标识指示的数据块的数据;若待删除快照版本与后一个快照版本的对应继承位的继承标志均为无效标识,则释放待删除快照版本的相应数据块标识指示的数据块的数据;若待删除快照的继承位的继承标志为无效标识,而后一个快照版本的对应继承位的继承标志为有效标识,则不释放待删除快照版本的数据块标识指示的数据块的数据,并修改后一个快照版本的继承位图中对应的继承位的继承标志为无效标识。
8.如权利要求3所述的数据处理方法,所述快照的数据迁移,包括:当待迁移快照为当前可写快照版本时,针对每个数据块,确定目标端不存在对应的数据块,则将当前可写快照版本的数据块的数据和元数据中对应数据块的继承位发送到目标端;当待迁移快照为只读快照版本时,针对每个数据块,若待迁移快照的后一个快照版本的继承位图中对应继承位的继承标志为无效标识,则将对应数据块的数据和元数据中对应数据块的继承位发送到目标端;否则,向目标端发送构建元数据中对应数据块标识与数据块的映射关系的请求;目标端根据接收到源端的数据,分配新的数据块,将接收的数据写入新分配数据块,修改元数据中的数据块标识为新分配数据块的数据块标识;目标端根据接收的构建元数据中对应数据块标识与数据块的映射关系的请求,构建当前快照版本中元数据的数据块标识与后一快照版本的对应数据块的映射关系。9.如权利要求8所述的方法,其中,所述目标端根据接收的构建元数据中对应数据块标识与数据块的映射关系的请求时,构建当前快照版本中元数据的数据块标识与后一快照版本的对应数据块的映射关系,包括:若待迁移快照为当前可写快照版本的前一个只读快照版本,且目标端当前可写快照版本的数据块的继承位的继承标志为无效数据,则向源端发送重传数据请求,分配新的数据块,将重新接收的待迁移快照的数据块的数据写入新分配数据块,并修改元数据中的数据块标识为新分配数据块的数据块标识;否则,将当前快照版本中元数据的数据块标识与后一快照...

【专利技术属性】
技术研发人员:张军伟刘振军陈森王利虎
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1