一种基于写时复制的文件系统中回收检查点的方法和装置制造方法

文档序号:6547925阅读:197来源:国知局
一种基于写时复制的文件系统中回收检查点的方法和装置制造方法
【专利摘要】本发明实施例公开了一种基于写时复制的文件系统中回收检查点的方法和装置,所述回收检查点的方法包括:根据检查点回收指令获得所述文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块;从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;回收所述第一数据块和所述第二数据块。
【专利说明】—种基于写时复制的文件系统中回收检查点的方法和装置
【技术领域】
[0001]本发明涉及数据处理领域,尤其涉及一种基于写时复制的文件系统中回收检查点的方法和装置。
【背景技术】
[0002]写时复制(简称:C0W ;英文:Copy On Write)是指当对文件系统中的数据进行改动的时候,并不真地去改动原数据,而是把要改动的数据复制到在磁盘的空白区。可以看出,由于在写的过程中,原数据没有被破坏,所以能保障数据的一致性,而且不存在二次写惩罚,同时避免了由二次写惩罚带来的小写问题,所以COW文件系统的应用领域越来越广。
[0003]在COW文件系统中,每次生成检查点(checkpoint,简写为ckp)或者快照(snapshot)的时候,都会从检查点或者快照的根部向下遍历进行加引用计数,若数据块的引用计数在被加I后则会继续向下遍历,若数据块的引用计数在被加I后大于I就不再向下遍历。在COW文件系统中,包括引用树的最上层为超级块(简称:sb ;英文:superblock),被超级块引用的可以是检查点、快照、根区(ROOT)、索引节点(inode)等等。
[0004]请参考图1A,图1A是现有技术中COW文件系统中具有检查点l(ckpl)的引用示意图,如图1A所示,该检查点I中包括编号为A—H的8个数据块,对检查点I执行加引用计数遍历可知其引用计数为:
[0005]
【权利要求】
1.一种基于写时复制的文件系统中回收检查点的方法,其特征在于,包括: 根据检查点回收指令获得所述文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于I的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块; 对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块; 从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于I的整数; 回收所述第一数据块和所述第二数据块。
2.如权利要求1所述的方法,其特征在于,所述对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块,具体包括: 当上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则对为当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数;从所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块;或 当上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照时,则对为上次检查点回收时刻到本次检查点回收时刻之间生成的快照和当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数;从所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块。
3.如权利要求2所述的方法,其特征在于,所述从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,具体包括: 对所述N个数据块中的为所述上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行所述固定步长的减操作,确定所述L个数据块的第二引用计数;其中,所述获得所述K个数据块的第一引用计数之前,所述N个数据块的引用计数为第一参考引用计数; 根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,从所述N个数据块中确定所述第二数据块。
4.如权利要求3所述的方法,其特征在于,所述方法还包括: 根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,确定所述本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数。
5.如权利要求3所述的方法,其特征在于,在所述文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区时,其中,所述上次检查点回收截止根区为对所述N个数据块进行索引的根区,所述实时根区为对所述K个数据块进行索引的根区,所述本次检查点回收截 止根区为在所述文件系统获得所述检查点回收指令时复制所述实时根区内索引关系的根区。
6.如权利要求5所述的方法,其特征在于,在所述回收所述第一数据块和所述第二数据块之后,所述方法还包括: 删除所述上次检查点回收截止根区内的数据;将所述本次检查点回收截止根区内的数据复制到所述上次检查点回收截止根区中。
7.一种基于写时复制的文件系统中回收检查点的装置,其特征在于,包括: 获得单元,用于根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于I的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块; 第一确定单元,用于对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块; 第二确定单元,用于从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于I的整数; 回收单元,用于回收所述第一数据块和所述第二数据块。
8.如权利要求7所述的装置,其特征在于,所述第一确定单元具体用于当上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则对为当前最新生成的检查点分配的K个数据块的 引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数,从所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块;或当上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照时,则对为上次检查点回收时刻到本次检查点回收时刻之间生成的快照和当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数,所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块。
9.如权利要求8所述的装置,其特征在于,所述第二确定单元具体用于对所述N个数据块中的为所述上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行所述固定步长的减操作,确定所述L个数据块当前的引用计数;其中,所述获得所述K个数据块的第一引用计数之前,所述N个数据块的引用计数为第一参考引用计数,并根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,从所述N个数据块中确定所述第二数据块。
10.如权利要求9所述的装置,其特征在于,所述装置还包括第三确定单元,所述第三确定单元用于根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,确定所述本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数。
11.如权利要求9所述的装置,其特征在于,在所述文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区时,其中,所述上次检查点回收截止根区为对所述N个数据块进行索引的根区,所述实时根区为对所述文件系统在所述K个数据块进行索引的根区,所述本次检查点回收截止根区为在所述文件系统获得所述检查点回收指令时复制所述实时根区内索引关系的根区。
12.如权利要求11所述的装置,其特征在于,所述回收单元具体还用于在回收所述第一数据块和所述第二数据块之后,删除所述上次检查点回收截止根区内的数据,并将所述本次检查点回收截止根区内的数据复制到所述上次检查点回收截止根区中。
【文档编号】G06F17/30GK103984609SQ201410231326
【公开日】2014年8月13日 申请日期:2014年5月28日 优先权日:2014年5月28日
【发明者】谢勇, 李育国, 钟延辉, 付旭东 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1