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

技术编号:30240399 阅读:14 留言:0更新日期:2021-10-09 20:17
本发明专利技术公开了一种数据快照的数据结构、相关数据处理方法及装置和系统,该数据快照的数据结构,包括主数据和元数据;所述元数据中包括主数据的数据块标识和对应的有效位图;所述有效位图中每个比特位对应数据块中的一个子数据块,每个比特位中包括对应子数据块的数据有效性标识。可以应用于大粒度数据分配场景下,在ROW方式下进行数据快照处理时,解决了小粒度数据写入时带来的数据量放大的弊端,并且影响系统的IO访问性能的问题;在读取数据时,避免了数据读取时的IO放大开销,数据读取速度快,降低了对访问性能的影响;在删除快照版本时,支持异步数据资源释放,降低了对IO访问性能的影响。能的影响。能的影响。

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


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

技术介绍

[0002]快照(snapshot)是保留文件系统在某一时间点的一致数据的镜像。在不同时间点为一个文件系统创建的不同的快照版本,可以形成一条快照版本链。快照数据不会被修改,可保证备份数据过程中的数据一致,而当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据回滚恢复某个可用的时间点的状态,所以快照技术广泛用于数据备份和异常故障后恢复。
[0003]现有技术中,快照通常采用写时重定向(Redirect On Write,ROW)和写时拷贝(Copy On Write,COW)两种方式实现。参照图1所示,采用COW方式写数据时,为只读快照版本分配新的数据资源(本专利技术实施例中称为新分配数据块)把只读快照版本的数据块中的快照数据拷贝到当前可写快照版本的新分配数据块中,再修改只读快照版本的元数据,最后用新写入数据修改已拷贝到新分配数据块中的快照数据。由此可以看出采用COW方式,需要包含两次写入数据,读写数据量大,严重影响了系统的输入/输出(Input/Output,IO)访问性能。参照图2所示,采用ROW方式写数据时,为当前可写快照版本分配一个新分配数据块,并把新写入数据拷贝到新分配数据块中,从而保留只读快照版本的数据块中的快照数据不被修改。数据写入时,只包含一次数据修改,读写数据量小,对系统IO访问性能影响小,因此现有技术中通常采用ROW方式进行快照数据处理。在ROW方式实现快照数据处理时,快照的数据块的分配粒度可配置,比如128KB、1MB,在一些文件系统中设置大的数据块分配粒度,这样可带来一定的好处,比如可降低资源管理的开销,降低文件系统的元数据的数量,从而可以实现把文件系统元数据全部装载到服务器的内部存储器,以优化访问性能,但是大粒度的数据块本身的数据量很大,因此也会影响到系统的IO性能。在此基础上进行改进,采用小粒度数据(比如4KB)进行数据写入,为支持快照机制,防止将快照数据块中的原有数据覆盖,在写入小粒度数据时,也需要先读取只读快照版本的数据块中原有的快照数据,再将小粒度数据合并到该原有快照数据中,最后把修改后的大粒度的数据写入新分配数据块中。这种先读取快照版本中原有的快照数据,再进行数据合并的方式,依然存在读写数据量放大的问题,影响系统的IO访问性能。

技术实现思路

[0004]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据快照的数据结构、相关数据处理方法及装置和系统。
[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]作为本专利技术实施例的第八个方面,本专利技术实施例提供一种快照数据写入装置,包括:
[0034]第一获取模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据快照的数据结构,包括主数据和元数据;所述元数据中包括主数据的数据块标识和对应的有效位图;所述有效位图中每个比特位对应数据块中的一个子数据块,每个比特位中包括对应子数据块的数据有效性标识。2.如权利要求1所述的数据结构,其中,所述数据快照的主数据中各数据块的子数据块的数量和粒度大小相等。3.如权利要求1或2所述的数据结构,其中,所述有效位图中标识有效数据和无效数据的比特位的取值相反。4.一种快照创建方法,包括:固化当前可写快照版本的主数据的数据块和元数据,作为最新的只读快照版本;复制最新的只读快照版本的元数据作为新的可写快照版本的元数据,并修改块引用计数表中主数据的数据块的引用计数;所述元数据中包括主数据的数据块标识和对应的有效位图,所述有效位图中每个比特位对应数据块中的一个子数据块,每个比特位中包括对应子数据块的数据有效性标识。5.一种快照数据写入方法,包括:访问当前可写快照版本的元数据,获取待写入数据的数据块标识和有效位图;所述有效位图中每个比特位对应数据块中的一个子数据块,每个比特位中包括对应子数据块的数据有效性标识;根据所述数据块标识和该数据块的引用计数,判断该数据块是否为当前可写快照版本独占数据块;若是,将待写入数据写入该数据块的相应子数据块,并修改有效位图中对应子数据块的比特位的有效性标识;若否,分配新的数据块,将所述待写入数据写入新分配数据块的相应子数据块,并修改有效位图中对应子数据块的比特位的有效性标识。6.如权利要求5所述的方法,其中,根据所述数据块标识和该数据块的引用计数,判断该数据块是否为当前可写快照版本独占数据块,包括:根据所述数据块标识,获取对应数据块在块引用计数表中的引用计数的值,判断所述引用计数的值是否大于1;若否,确定该数据块为当前可写快照版本独占数据块。7.一种快照数据读取方法,包括:从当前访问的快照版本的元数据中,获取待读取数据的数据块标识和有效位图;所述有效位图中每个比特位对应数据块中的一个子数据块,每个比特位中包括对应子数据块的数据有效性标识;根据待读取数据所在子数据块,获取有效位图中对应比特位中的数据有效性标识;若为有效标识,从所述数据块标识指示的数据块中对应的子数据块读取数据;若为无效数据,根据快照版本链,按照由新到旧的顺序依次回溯在先的快照版本的元数据,直到查找到所述待读取数据对应的有效位图的比特位中为有效标识的快照版本,从该快照版本中获取到的数据块标识指示的数据块中对应的子数据块读取数据。8.一种快照删除方法,包括:
从待删除快照版本的元数据中获取主数据的数据块标识和对应的有效位图;判断待删除快照版本与前一个快照版本和后一个快照版本的元数据中主数据的数据块标识是否均不同;若是,根据待删除快照版本与后一个快照版本的对应数据块的有效位图中比特位的有效性标识,将待删除快照版本中数据块的有效数据合并到后一个快照版本的对应数据块中,并修改块引用计数表中该数据块的引用计数;若否,则只修改块引用计数表中该数据块的引用计数。9.如权利要求8所述的方法,其中,所述判断待删除快照版本与前一个快照版本和后一个快照版本的元数据中主数据的数据块标识是否均不同,包括:根据快照版本链,判断待删除快照版本是否具有在先的快照版本,若是,则将待删除快照版本的元数据中主数据的数据块标识分别与前一个快照版本和后一个快照版本的元数据中主数据的数据块标识进行比较,确定是否均不相同;若否,则将待删除快照版本的元数据中主数据的数据块标识与后一个快照版本的元数据中主数据的数据块标识进行比较,确定是否不相同。10.如权利要求8所述的方法,其中,根据待删除快照版本与后一个快照版本的对应数据块的有效位图中比特位的有效性标识,将待删除快照版本中数据块的有效数据合并到后一个快照版本的对应数据块中,包括:根据待删除快照版本与后一个快照版本的对应数据块的有效位图中比特位的有效性标识,确定待删除快照版本的数据块中与后一个快照版本共享数据的子数据块的数量是否大于等于后一个快照版本的对应数据块中子数据块的数据为有效数据的子数据块的数量:若是,将待删除快照版本的数据块中与后一个快照版本共享数据的子数据块的有效数据复制到后一个快照版本的对应数据块的对应子数据块中,并修改后一个快照版本的元数据的有效位图中对应子数据块的比特位的有效性标识;若否,将后一个快照版本的对应数据块中子数据块的有效数据复制到待删除快照的数据块的对应子数据块,将后一个快照版本中的对应的数据块替换为待删除快照的数据块,并将快照版本链中待删除快照的在后的快照版本的元数据中...

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

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

1