CN103984609A - 一种基于写时复制的文件系统中回收检查点的方法和装置 - Google Patents
一种基于写时复制的文件系统中回收检查点的方法和装置 Download PDFInfo
- Publication number
- CN103984609A CN103984609A CN201410231326.5A CN201410231326A CN103984609A CN 103984609 A CN103984609 A CN 103984609A CN 201410231326 A CN201410231326 A CN 201410231326A CN 103984609 A CN103984609 A CN 103984609A
- Authority
- CN
- China
- Prior art keywords
- data block
- checkpoint
- reference count
- recovery
- last time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
Abstract
本发明实施例公开了一种基于写时复制的文件系统中回收检查点的方法和装置,所述回收检查点的方法包括:根据检查点回收指令获得所述文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块;从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;回收所述第一数据块和所述第二数据块。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种基于写时复制的文件系统中回收检查点的方法和装置。
背景技术
写时复制(简称:COW;英文:Copy On Write)是指当对文件系统中的数据进行改动的时候,并不真地去改动原数据,而是把要改动的数据复制到在磁盘的空白区。可以看出,由于在写的过程中,原数据没有被破坏,所以能保障数据的一致性,而且不存在二次写惩罚,同时避免了由二次写惩罚带来的小写问题,所以COW文件系统的应用领域越来越广。
在COW文件系统中,每次生成检查点(checkpoint,简写为ckp)或者快照(snapshot)的时候,都会从检查点或者快照的根部向下遍历进行加引用计数,若数据块的引用计数在被加1后则会继续向下遍历,若数据块的引用计数在被加1后大于1就不再向下遍历。在COW文件系统中,包括引用树的最上层为超级块(简称:sb;英文:super block),被超级块引用的可以是检查点、快照、根区(ROOT)、索引节点(inode)等等。
请参考图1A,图1A是现有技术中COW文件系统中具有检查点1(ckp1)的引用示意图,如图1A所示,该检查点1中包括编号为A—H的8个数据块,对检查点1执行加引用计数遍历可知其引用计数为:
数据块编号 | 引用计数 |
A | 1 |
B | 1 |
C | 1 |
C | 1 |
D | 1 |
E | 1 |
F | 1 |
G | 1 |
H | 1 |
请参考图1B,图1B是现有技术中在检查点1的基础上生成检查点2的示意图,如图1B所示,COW文件系统修改了索引节点2右边的子块(即将H修改为L)而生成了检查点2,从检查点2根部执行加引用计数遍历可知其引用计数为:
数据块编号 | 引用计数 |
I | 1 |
J | 1 |
K | 1 |
L | 1 |
C | 2 |
G | 2 |
在删除检查点或者快照的时候,需要从检查点或者快照的根部向下遍历进行减引用计数,若数据块的引用计数被减1后为0则继续向下遍历,若数据块的引用计数被减1后大于0就不再向下遍历,其中,引用计数为0的数据块即为需要回收的数据块。
以删除如图1B所示的检查点1为例,请参考图1C,图1C是现有技术中删除检查点1的示意图,如图1C所示,对检查点1执行减引用计数遍历可知其引用计数为:
数据块编号 | 引用计数 |
A | 0 |
B | 0 |
C | 1 |
D | 0 |
E | 1 |
F | 1 |
G | 1 |
H | 0 |
在对检查点1执行减引用计数遍历后,可知在检查点1删除后,编号为A、B、D、H对应的数据块引用计数为0,需要回收,从而才能够减少这些数据块所占用的空间。
可以看出,在COW文件系统中,对生成的每一个检查点和每一个快照都需要进行加引用计数遍历,对删除的每一个检查点和快照都需要进行减引用计数遍历,所以遍历的规模较大,遍历时所计算的数据量也较大。
发明内容
本发明实施例通过提供一种基于写时复制的文件系统中回收检查点的方法和装置,用以解决现有技术中存在的在COW文件系统中遍历的规模较大,遍历时所计算的数据量也较大的技术问题。
本发明实施例第一方面提供了一种基于写时复制的文件系统中回收检查点的方法,包括:
根据检查点回收指令获得所述文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;
对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块;
从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;
回收所述第一数据块和所述第二数据块。
结合第一方面,在第一方面的第一种可能的实现方式中,所述对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块,具体包括:
当上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则对为当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数;所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块;或
当上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照时,则对为上次检查点回收时刻到本次检查点回收时刻之间生成的快照和当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数;从所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,具体包括:
对所述N个数据块中的为所述上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行所述固定步长的减操作,确定所述L个数据块的第二引用计数;其中,所述获得所述K个数据块的第一引用计数之前,所述N个数据块的引用计数为第一参考引用计数;
根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,从所述N个数据块中确定所述第二数据块。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
根据所述K个数据块的第一引用计数,所述N个数据块的第一参考引用计数和所述L个数据块当前的引用计数,确定所述本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数。
结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区时,其中,所述上次检查点回收截止根区为对所述N个数据块进行索引的根区,所述实时根区为对所述文件系统在所述K个数据块进行索引的根区,所述本次检查点回收截止根区为在所述文件系统获得所述检查点回收指令时复制所述实时根区内索引关系的根区。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,在所述回收所述第一数据块和所述第二数据块之后,所述方法还包括:
删除所述上次检查点回收截止根区内的数据;
将所述本次检查点回收截止根区内的数据复制到所述上次检查点回收截止根区中。
本发明实施例第二方面提供一种基于写时复制的文件系统中回收检查点的装置,包括:
获得单元,用于根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;
第一确定单元,用于对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块;
第二确定单元,用于从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;
回收单元,用于回收所述第一数据块和所述第二数据块。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一确定单元具体用于当上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则对为当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数,从所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块;或当上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照时,则对为上次检查点回收时刻到本次检查点回收时刻之间生成的快照和当前最新生成的检查点分配的K个数据块的引用次数进行所述固定步长的加操作,获得所述K个数据块的第一引用计数,所述M个数据块中除所述K个数据块外的数据块中确定所述第一数据块。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二确定单元具体用于对所述N个数据块中的为所述上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行所述固定步长的减操作,确定所述L个数据块当前的引用计数;其中,所述获得所述K个数据块的第一引用计数之前,所述N个数据块的引用计数为第一参考引用计数,并根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,从所述N个数据块中确定所述第二数据块。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括第三确定单元,所述第三确定单元用于根据所述第一引用计数、所述第二引用计数和所述第一参考引用计数,确定所述本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数。
结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,在所述文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区时,其中,所述上次检查点回收截止根区为对所述N个数据块进行索引的根区,所述实时根区为对所述文件系统在所述K个数据块进行索引的根区,所述本次检查点回收截止根区为在所述文件系统获得所述检查点回收指令时复制所述实时根区内索引关系的根区。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述回收单元具体还用于在回收所述第一数据块和所述第二数据块之后,删除所述上次检查点回收截止根区内的数据,并将所述本次检查点回收截止根区内的数据复制到所述上次检查点回收截止根区中。
本发明实施例第三方面还提供一种设备,该设备包括第二方面提供的任一种装置。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于采用了根据检查点回收指令获得所述文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数,其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块,并对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块,并从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数,并回收所述第一数据块和所述第二数据块的技术方案,不需要对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间生成的数据块中需要回收的数据块进行遍历操作,而只需要对需要保留的数据块进行遍历操作,所以实现了减少对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间需要回收的数据块进行遍历操作时对应的数据量,缩减COW文件系统回收空间时遍历的规模的技术效果。
附图说明
图1A为现有技术中COW文件系统中具有检查点1(ckp1)的引用示意图;
图1B为现有技术中在检查点1的基础上生成检查点2的示意图;
图1C为现有技术中删除检查点1的示意图;
图2为本发明实施例提供的回收检查点的方法的流程图;
图3为本发明实施例提供的COW文件系统上次检查点回收时刻保留的数据块的示意图;
图4为本发明实施例提供的COW文件系统中上次检查点回收时刻保留的数据块发生第一次修改的示意图;
图5为本发明实施例提供的COW文件系统中上次检查点回收时刻保留的数据块发生第二次修改的示意图;
图6为本发明实施例提供的COW文件系统中上次检查点回收时刻保留的数据块发生第三次修改的示意图;
图7为本发明实施例提供的COW文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区的示意图;
图8为本发明实施例提供的COW文件系统本次检查点回收时刻的示意图;
图9为本发明实施例提供的COW文件系统在接收到检查点回收指令后的示意图;
图10为本发明实施例提供的将本次检查点回收截止根区内的内容复制到上次检查点回收截止根区内的示意图;
图11为本发明实施例提供的检查点装置的结构图。
具体实施方式
本发明实施例通过提供一种基于写时复制的文件系统中回收检查点的方法和装置,用以解决现有技术中存在的在COW文件系统中遍历的规模较大,遍历时所计算的数据量也较大的技术问题。
本发明实施例中的技术方案为解决上述技术问题,总体思路如下:
本发明实施例提供一种基于写时复制的文件系统中回收检查点的方法,该方法包括:根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块;从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;回收第一数据块和第二数据块。
通过上述部分可以看出,由于采用了根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数,其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块,并对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块,并从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数,并回收第一数据块和第二数据块的技术方案,不需要对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间生成的数据块中需要回收的数据块进行遍历操作,而只需要对需要保留的数据块进行遍历操作,所以实现了减少对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间需要回收的数据块进行遍历操作时对应的数据量,缩减COW文件系统回收空间时遍历的规模的技术效果。
为了更好地理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
请参考图2,图2是本发明实施例提供的回收检查点的方法的流程图,如图2所示,该方法包括:
S1:根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;
S2:对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块;
S3:从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;
S4:回收第一数据块和第二数据块。
在具体实施过程中,实现本发明实施例提供的回收检查点的方法有多种实现方式,在接下来的部分中,将详细介绍其中的两种。
实施例一
请参考图3,图3是本发明实施例提供的COW文件系统上次检查点回收时刻保留的数据块的示意图,如图3所示,COW文件系统上次检查点回收时刻保留了快照1(snp1)和检查点1(ckp1),其中快照1包括编号A、B、C、D的四个数据块,或称为快照1引用的编号为A、B、C、D数据块,检查点1包括编号E、F、C、G的四个数据块,或称为检查点1引用的编号为E、F、C、G的四个数据块。对快照1和检查点1引用的数据块分别执行固定步长的加操作,这里执行加引用计数遍历操作,则可以得到上次回收时刻的第一参考引用计数,本发明实施例中,数据块被快照1或检查点1引用一次,则引用计数加1,也就是说固定步长为1。在本实施例中,所有的引用计数都以表的形式呈现,第一参考引用计数为:
数据块编号 | 引用计数 |
A | 1 |
B | 1 |
C | 2 |
D | 1 |
E | 1 |
F | 1 |
G | 1 |
表1
请继续参考图4,图4是本发明实施例提供的COW文件系统中上次检查点回收时刻保留的数据块发生第一次修改的示意图,如图4所示,数据块C被修改为J,则此时会生成一个检查点2(ckp2),对检查点2做一个快照,可以生成如图4所示的快照2(snp2)。
请继续参考图5,图5是本发明实施例提供的COW文件系统中上次检查点回收时刻保留的数据块发生第二次修改的示意图,如图5所示,数据块J被修改为M,则此时会生成一个检查点3(ckp3)。
请继续参考图6,图6是本发明实施例提供的COW文件系统中上次检查点回收时刻保留的数据块发生第三次修改的示意图,如图6所示,编号为G的数据块被修改为编号为P的数据块,则此时会生成一个检查点4(ckp4)。
设定此时COW文件系统接收到一检查点回收指令,在具体实施过程中,该检查点回收指令可以由用户手动触发而生成,也可以是由COW文件系统的回收策略触发而生成,在此不做限制。
当然,需要说明的是,在本实施例中,从COW文件系统上次检查点回收时刻之后,到COW文件系统接收到检查点回收指令时刻之间,数据块都不进行遍历操作和引用计数更新操作。
在步骤S1中,根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数,其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块,具体来讲,可以通过COW文件系统的数据块分配模块获得COW文件系统从上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,COW文件系统的数据块分配模块会在上次检查点回收时刻与本次检查点回收时刻之间生成检查点和快照中的至少一种时,为检查点和快照中的至少一种对应的数据块分配对应的编号,由图3至图6可知,一个检查点或快照会对应多个数据块,所以M为不小于1的整数。
需要说明的是,本实施例中的“分配”是指基于写时复制的文件系统在生成检查点或快照时,该检查点或快照引用现有检查点或快照对应的数据块时,该数据块也属于为新生成的检查点或快照分配的数据块。
在本实施例中,请同时参考图3、图4、图5和图6,可以从COW文件系统的数据块分配模块获得从上次检查点回收时刻到本次检查点回收时刻之间已经分配的数据块的编号为“G—P”这一信息,由于数据块编号为COW文件系统的数据块分配模块连续分配的,数据块分配模块可以只记录COW文件系统在上次检查点回收时刻和本次检查点回收时刻之间分配的第一个数据块编号和最后一个数据块编号即可,占用的空间较小。
在步骤S2中,对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块,具体来讲,可以是当上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则对为当前最新生成的检查点分配的K个数据块的引用次数进行固定步长的加操作,这里步长为1,获得K个数据块的第一引用计数;从M个数据块中除K个数据块外的数据块中确定第一数据块;或当上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照时,则对为上次检查点回收时刻到本次检查点回收时刻之间生成的快照和当前最新生成的检查点分配的K个数据块的引用次数进行固定步长的加操作,这里固定步长为1,获得K个数据块的第一引用计数;从M个数据块中除K个数据块外的数据块中确定第一数据块。
由于COW文件系统中一般会保留所有的快照,同时只会保留最后生成的一个检查点,因此,在本实施例中,同时参考图3、图4、图5和图6,快照2和检查点4需要保留,因此需要对快照2和检查点4对应的K个数据块的引用次数进行固定步长的加操作,获得K个数据块的第一引用计数。
具体来讲,即对快照2和检查点4对应的K个数据块执行加引用计数遍历操作,从而能够获得快照编号和检查点编号对应的数据块的第一引用计数,本发明实施例中,为快照2和检查点4分配的数据块编号为G、H、I、J、M、N、O和P,对快照2和检查点4对应的数据块执行加引用计数遍历操作,即能够获得快照2和检查点4引用的数据块的第一引用计数:
数据块编号 | 引用计数 |
G | 1 |
H | 1 |
I | 1 |
J | 1 |
M | 1 |
N | 1 |
O | 1 |
P | 1 |
表2
通过步骤S1获得的COW文件系统在上次检查点回收时刻到本次检查点回收时刻之间已经分配的数据块的编号为G—P,所以结合第一引用计数,可以确定COW文件系统在上次检查点回收时刻到本次检查点回收时刻之间已经分配的数据块编号中可以回收的数据块的编号为K、L(因为其没有任一需要被保留的检查点4和快照2引用),也即第一数据块的编号为K、L。
当然了,如上述部分所介绍的,在本实施例中,上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照,所以按上述部分所介绍的步骤,为快照2和检查点4分配的数据块编号为G、H、I、J、M、N、O和P,即可以从M个数据块中除K个数据块之外的数据块中确定需要回收的第一数据块,在本发明实施例中,因为需要回收检查点3,从编号为K和L的数据块中确定需要回收的数据块的编号为K和L。在其他实施例中,上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则只对当前最新生成的检查点分配的K个数据块的引用次数进行固定步长的加操作,固定步长为1,从而能够获得该K个数据块的第一引用计数,从而可以从M个数据块中除K个数据块之外的数据块中确定第一数据块,在此就不再赘述了。
在通过步骤S2从M个数据块中确定需要回收的第一数据块之后,本发明实施例进入步骤S3,即:从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数。
在步骤S3中,具体来讲,可以包括:对N个数据块中的为上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行固定步长的减操作,这里固定步长为1,确定L个数据块当前的引用计数;其中,获得快照2和检查点4引用的数据块的第一引用计数之前,N个数据块的引用计数为第一参考引用计数;根据第一引用计数、L个数据块当前的引用计数和第一参考引用计数,从N个数据块中确定第二数据块。
在本实施例中,具体来讲,如前述部分所介绍的,表1即是COW文件系统上次检查点回收时刻的第一参考引用计数。在获得第一参考引用计数之后,即可以对N个数据块中的为上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行固定步长的减操作,这里固定步长为1,也即对该检查点对应的L个数据块执行减引用计数遍历操作,例如,请参考图6,上次检查点回收时刻保留的数据块中,对检查点1对应的数据块进行固定步长的减操作,也即执行减引用计数遍历操作,可以得到N个数据块中为检查点1分配的4个数据块的第二引用计数,如下表所示:
数据块编号 | 引用计数 |
C | -1 |
E | -1 |
F | -1 |
G | -1 |
表3
在获得第二引用计数后,即能够根据第一参考引用计数(表1)、第一引用计数(表2)和第二引用计数(表3),从N个数据块中确定出第二数据块,具体来讲,可以是合并第一参考引用计数、第一引用计数和第二计数,在本实施例中,“合并第一参考引用计数、第一引用计数和第二计数”是指将第一参考引用计数、第一引用计数和第二计数中相同数据块的引用计数进行合并,不相同的数据块的引用计数保留,其结果如下表所示:
数据块编号 | 引用计数 |
A | 1 |
B | 1 |
C | 1 |
D | 1 |
E | 0 |
F | 0 |
G | 1 |
H | 1 |
I | 1 |
J | 1 |
M | 1 |
N | 1 |
O | 1 |
P | 1 |
表4
从表4可以确定,上次检查点回收时刻保留的数据块中编号为E、F的数据块是需要回收的数据块,第二数据块也即E、F。
通过上述部分可以看出,现有技术中COW文件系统的遍历规模相比,本发明实施例提供的回收检查点的方法不需要对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间生成的数据块中需要回收的数据块进行遍历操作,而只需要对需要保留的数据块进行遍历操作,所以实现了减少了对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间需要回收的数据块进行遍历操作时对应的数据量,缩减COW文件系统回收空间时遍历的规模的技术效果。
在确定第二数据块之后,本发明实施例提供的回收检查点的方法还包括:根据K个数据块的第一引用计数,N个数据块的第一参考引用计数和L个数据块当前的引用计数,确定本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数。也就是说,在COW文件系统确定出需要回收的第一数据块和第二数据块之后,即能够根据第一引用计数、第二引用计数和第一参考引用计数,确定出本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数(也即表4所示的内容),以供COW文件系统下一次检查点回收的时候使用,在此就不再赘述了。
在通过步骤S2确定需要回收的第一数据块编号、以及通过步骤S3确定需要回收的第二数据块编号之后,本发明实施例提供的回收检查点的方法进入步骤S4,即:回收第一数据块和第二数据块。
在步骤S4中,即是回收编号为E、F的数据块,以及回收编号为K、L的数据块,在此就不再赘述了。
上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:
由于采用了根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数,其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块,并对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块,并从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数,并回收第一数据块和第二数据块的技术方案,不需要对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间生成的数据块中需要回收的数据块进行遍历操作,而只需要对需要保留的数据块进行遍历操作,所以实现了减少对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间需要回收的数据块进行遍历操作时对应的数据量,缩减COW文件系统回收空间时遍历的规模的技术效果。
实施例二
请参考图7,图7是本发明实施例提供的COW文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区的示意图,如图7所示,其中,上次检查点回收截止根区为对N个数据块进行索引的根区,实时根区为对文件系统在K个数据块进行索引的根区,本次检查点回收截止根区为在文件系统获得检查点回收指令时复制实时根区内索引关系的根区。当然,需要说明的是,在本实施例中,COW文件系统的快照或者检查点的生成和删除都由对COW文件系统的树的插入和删除来实现,挂在COW文件系统的根区下面,以保证根据COW文件系统的树来回收需要回收的数据块对应的空间时不会遗漏。
如图7所示,上次检查点回收截止根区内为COW文件系统上次检查点回收时刻保留的数据块的索引,COW文件系统上次检查点回收时刻,只有检查点,因此,为保留的检查点引用的数据块的编号为包括A、B、C、D、E、F、G,本实施例以实时根区内为COW文件系统在上次检查点回收时刻之后对新生成的检查点分配的数据块的索引为例,上次检查点回收时刻之后为新生成的检查点分配的数据块的编号为B、C、D、F、G和H,编号为H的数据块直接或间接引用数据块的编号为B、C、D、E、F、G。
请继续参考图8,图8是本发明实施例提供的COW文件系统本次检查点回收时刻的示意图,如图8所示,COW文件系统在本次检查点回收时刻与上次检查点回收时刻相比,经过了一些事务,又生成了另一检查点,为该新生成的检查点分配的数据块的编号为B、C、D、F、G和I,编号为I的数据块的索引在实时根区。
请继续参考图9,图9为本发明实施例提供的COW文件系统在接收到检查点回收指令后的示意图,如图9所示,COW文件系统在接收到检查点回收指令后,即会将图8所示的实时根区内的数据复制到本次检查点回收截止根区内,实时根区内的数据是指如图8所示对编号为I的数据块及其直接引用或间接引用的数据块的索引,即对编号为B、C、D、F、G和I的数据块的索引。当然,如图9所示,COW文件系统在接收到检查点回收指令之后,会继续根据COW文件系统的运行情况,在实时根区索引在本次检查点回收时刻之后新增长的数据块,如图9所示的编号为J的数据块,在此就不再赘述了。
如图9所示,在将实时根区内的数据复制到本次检查点回收截止根区之后,即可以对本次检查点回收截止根区内的数据块执行加引用计数遍历操作(需要说明的是,此时不需要考虑实时根区的影响,也即不计编号为J的数据块的引用关系),获得各个数据块的引用计数如下:
数据块编号 | 引用计数 |
I | 1 |
B | 2 |
C | 2 |
D | 1 |
E | 1 |
F | 1 |
G | 1 |
表5
在步骤S1中,获得COW文件系统在上次检查点回收时刻到本次检查点回收时刻之间已经分配的M个数据块,具体来讲,与实施例一中的过程类似,同样是可以通过COW文件系统的数据块分配模块来获得该M个数据块,在实施例一中已经介绍了详细的过程,在此为了说明书的简洁,就不再赘述了。
在本实施例中,通过COW文件系统的数据块分配模块可知,COW文件系统在上次检查点回收时刻与本次检查点回收时刻之间已经分配的M个数据块编号分别为“B—I”。
在通过步骤S1获得COW文件系统在上次检查点回收时刻到本次检查点回收时刻之间已经分配的数据块之后,本发明实施例提供的回收检查点的方法即进入步骤S2,即:对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块。如图9所示,由于只生成了检查点,因此,只需要保留最新的检查点即可,在截止根区最新的检查点引用的数据块的编号为B、C、D、F、G和I,因此M个数据块中编号为B、C、D、F、G和I的数据块需要保留,编号为H的数据块为可回收数据块。
在本实施例中,由于COW文件系统在上次检查点回收时刻到本次检查点回收时刻之间已经分配的数据块编号为“B—I”,并结合表5,可知编号H的数据块为需要回收的第一数据块,在对本次检查点回收截止根区索引的数据块执行加引用计数遍历操作时,由于编号为H的数据块未被引用,所以其不需要被保留,也不需要对其执行加引用计数遍历操作,在回收时也不需要对其执行减引用技术遍历操作,而在现有技术中,对编号为H的数据块会分别执行加引用技术遍历操作与减引用技术遍历操作。
在通过步骤S2确定需要回收的第一数据块编号后,本发明实施例提供的回收检查点的方法进入步骤S3,即:从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数。
具体来讲,在本实施例中,由于只有检查点,因此,可以是对上次检查点回收截止根区索引的检查点引用的数据块执行减引用计数遍历操作,其结果如下:
数据块编号 | 引用计数 |
A | 0 |
B | 1 |
C | 1 |
D | 1 |
E | 1 |
F | 1 |
G | 1 |
表6
根据表6可以看出,编号为A的数据块是不再被引用的数据块,编号为A的数据块为需要回收的数据块,也即A为第二数据块编号。
在通过步骤S2确定需要回收的第一数据块,以及通过步骤S3确定需要回收的第二数据块后,本发明实施例提供的回收检查点的方法进入步骤S4,即:回收第一数据块和第二数据块编号。
与实施例一类似的,在本实施例中,回收第一数据库编号对应的第一空间即是回收编号为H的数据块对应的空间,回收第二数据块编号对应的第二空间即是回收编号为A的数据块对应的空间,为了说明书的简洁,在此就不再赘述了。
在具体实施过程中,在回收第一数据块编号对应的第一空间和第二数据块编号对应的第二空间之后,方法还包括:删除上次检查点回收截止根区内的数据;将本次检查点回收截止根区内的数据复制到上次收截止根区中。
具体来讲,请继续参考图9,如图9所示,在COW文件系统的回收检查点完成之后,即清空上次检查点回收截止根区,如删除上次检查点回收截止根区内的索引等等,并将本次检查点回收截止根区内的数据如数据块的索引信息等等复制到上次检查点回收截止根区内,以供COW文件系统下一次空间回收时使用,请参考图10,图10是本发明实施例提供的将本次检查点回收截止根区内的数据复制到上次检查点回收截止根区内的示意图,在此就不再赘述了。
在具体实施过程中,如果是已经被删除的检查点或快照,本次检查点回收截止根区中就已经不再有其索引(如新的检查点生成后,旧的检查点就不会再被索引),从上次检查点回收截止根区向下执行减引用计数遍历操作时,发现其引用为0,就会继续向下减,另外如果是当前保留的检查点或快照(如一个快照生成后未被删除,实时根区内就会一直存在该快照的索引),本次检查点回收截止根区有其索引,从上次检查点回收截止根区向下执行减引用计数遍历操作时,发现其引用不为0,就不再向下减,因此,在COW文件系统接收到检查点回收指令后,不需要知道哪些检查点、快照需要回收,根据实施根区内的索引情况即能够完成空间回收。
上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:
由于采用了根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数,其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块,并对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块,并从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数,并回收第一数据块和第二数据块的技术方案,不需要对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间生成的数据块中需要回收的数据块进行遍历操作,而只需要对需要保留的数据块进行遍历操作,所以实现了减少对COW文件系统中上次检查点回收时刻到本次检查点回收时刻之间需要回收的数据块进行遍历操作时对应的数据量,缩减COW文件系统回收空间时遍历的规模的技术效果。
基于同一发明构思,本发明实施例还提供一种基于写时复制的文件系统中回收检查点的装置,请参考图11,图10是本发明实施例提供的装置的模块图,如图11所示,该装置包括:
获得单元101,用于根据检查点回收指令获得文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;
第一确定单元102,用于对M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从M个数据块中确定需要回收的第一数据块;
第二确定单元103,用于从为上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;
回收单元104,用于回收第一数据块和第二数据块。
在具体实施过程中,第一确定单元102具体用于当上次检查点回收时刻到本次检查点回收时刻之间只生成检查点时,则对为当前最新生成的检查点分配的K个数据块的引用次数进行固定步长的加操作,获得K个数据块的第一引用计数,从M个数据块中除K个数据块外的数据块中确定第一数据块;或当上次检查点回收时刻到本次检查点回收时刻之间既生成检查点又生成快照时,则对为上次检查点回收时刻到本次检查点回收时刻之间生成的快照和当前最新生成的检查点分配的K个数据块的引用次数进行固定步长的加操作,获得K个数据块的第一引用计数,从M个数据块中除K个数据块外的数据块中确定第一数据块。
在具体实施过程中,第二确定单元103具体用于对N个数据块中的为上次检查点回收时刻保留的检查点分配的L个数据块的引用次数进行固定步长的减操作,确定L个数据块当前的引用计数;其中,获得K个数据块的第一引用计数之前,N个数据块的引用计数为第一参考引用计数,并根据第一引用计数、第二引用计数和第一参考引用计数,从N个数据块中确定第二数据块。
在具体实施过程中,装置还包括第三确定单元105,第三确定单元105用于根据第一引用计数、第二引用计数和第一参考引用计数,确定本次检查点回收需要保留的数据块的引用计数作为当前第一参考引用计数。
在具体实施过程中,在文件系统包括上次检查点回收截止根区、本次检查点回收截止根区和实时根区时,其中,上次检查点回收截止根区为对N个数据块进行索引的根区,实时根区为对文件系统在K个数据块进行索引的根区,本次检查点回收截止根区为在文件系统获得检查点回收指令时复制实时根区内索引关系的根区。
在具体实施过程中,回收单元104具体还用于删除上次检查点回收截止根区内的数据;将本次检查点回收截止根区内的数据复制到上次检查点回收截止根区中。
需要说明的是,本实施例中的装置与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的装置的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
本发明实施例中用于表示数据块个数的符号与表示数据块的编号的符号相同,但各自具有独立的含义,数据块个数的符号用于表示数据块的数量,而表示数据块的编号的符号仅仅用于区分不同的数据块,数据块的编号还可以以其他形式来表示,例如数字、字符串等。另外,本发明实施例中提到的对数据块进行固定步长加操作、固定步长减操作,步长可以为1,对数据块进行固定步长加操作的含义与对数据块进行加引用计数操作含义相同,对数据块进行固定步长减操作的含义与对数据块进行减引用计数操作含义相同。具体地,对需要保留的快照和/或检查点引用的一个数据块进行加引用计数操作,即当该数据块被快照或检查点引用一次,引用计数加1,则该数据块是为该快照或检查点分配的数据块。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种基于写时复制的文件系统中回收检查点的方法,其特征在于,包括:
根据检查点回收指令获得所述文件系统在上次检查点回收时刻到本次检查点回收时刻之间分配的M个数据块,M为不小于1的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;
对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块;
从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;
回收所述第一数据块和所述第二数据块。
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为不小于1的整数;其中,所述M个数据块为上次检查点回收时刻到本次检查点回收时刻之间生成的检查点和快照中的至少一种分配的数据块;
第一确定单元,用于对所述M个数据块中需要保留的数据块的引用次数进行固定步长的加操作,从所述M个数据块中确定需要回收的第一数据块;
第二确定单元,用于从为所述上次检查点回收时刻保留的检查点和快照中的至少一种分配的N个数据块中确定需要回收的第二数据块,N为不小于1的整数;
回收单元,用于回收所述第一数据块和所述第二数据块。
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所述的装置,其特征在于,所述回收单元具体还用于在回收所述第一数据块和所述第二数据块之后,删除所述上次检查点回收截止根区内的数据,并将所述本次检查点回收截止根区内的数据复制到所述上次检查点回收截止根区中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410231326.5A CN103984609B (zh) | 2014-05-28 | 2014-05-28 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
PCT/CN2014/089458 WO2015180394A1 (zh) | 2014-05-28 | 2014-10-24 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
EP14893559.6A EP3107005B1 (en) | 2014-05-28 | 2014-10-24 | Method and device for recovering checkpoint in copy on write based file system |
US15/291,249 US20170031933A1 (en) | 2014-05-28 | 2016-10-12 | Checkpoint Reclaim Method and Apparatus in Copy-On-Write File System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410231326.5A CN103984609B (zh) | 2014-05-28 | 2014-05-28 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984609A true CN103984609A (zh) | 2014-08-13 |
CN103984609B CN103984609B (zh) | 2017-06-16 |
Family
ID=51276599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410231326.5A Active CN103984609B (zh) | 2014-05-28 | 2014-05-28 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170031933A1 (zh) |
EP (1) | EP3107005B1 (zh) |
CN (1) | CN103984609B (zh) |
WO (1) | WO2015180394A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015180394A1 (zh) * | 2014-05-28 | 2015-12-03 | 华为技术有限公司 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
CN106294357A (zh) * | 2015-05-14 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算系统 |
CN106326039A (zh) * | 2016-08-24 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘中逻辑卷克隆的方法、装置及磁盘 |
CN109213636A (zh) * | 2018-09-25 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种存储快照创建方法、装置、设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452496B2 (en) * | 2017-10-06 | 2019-10-22 | Vmware, Inc. | System and method for managing storage transaction requests |
CN115826878B (zh) * | 2023-02-14 | 2023-05-16 | 浪潮电子信息产业股份有限公司 | 一种写时拷贝方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159007A1 (en) * | 2002-02-15 | 2003-08-21 | International Business Machines Corporation | Deferred copy-on-write of a snapshot |
CN1532707A (zh) * | 2003-03-20 | 2004-09-29 | 中国科学院计算技术研究所 | 虚拟化共享式存储设备及方法 |
CN102968381A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种利用固态硬盘提高快照性能的方法 |
CN103678715A (zh) * | 2013-12-31 | 2014-03-26 | 无锡城市云计算中心有限公司 | 一种分布式文件系统中支持快照的元数据信息管理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769723B2 (en) * | 2006-04-28 | 2010-08-03 | Netapp, Inc. | System and method for providing continuous data protection |
US8533158B1 (en) * | 2006-09-28 | 2013-09-10 | Emc Corporation | Reclaiming data space by rewriting metadata |
US8849876B2 (en) * | 2009-12-28 | 2014-09-30 | Wenguang Wang | Methods and apparatuses to optimize updates in a file system based on birth time |
US8224780B2 (en) * | 2010-06-15 | 2012-07-17 | Microsoft Corporation | Checkpoints for a file system |
CN103984609B (zh) * | 2014-05-28 | 2017-06-16 | 华为技术有限公司 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
-
2014
- 2014-05-28 CN CN201410231326.5A patent/CN103984609B/zh active Active
- 2014-10-24 EP EP14893559.6A patent/EP3107005B1/en active Active
- 2014-10-24 WO PCT/CN2014/089458 patent/WO2015180394A1/zh active Application Filing
-
2016
- 2016-10-12 US US15/291,249 patent/US20170031933A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159007A1 (en) * | 2002-02-15 | 2003-08-21 | International Business Machines Corporation | Deferred copy-on-write of a snapshot |
CN1532707A (zh) * | 2003-03-20 | 2004-09-29 | 中国科学院计算技术研究所 | 虚拟化共享式存储设备及方法 |
CN102968381A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种利用固态硬盘提高快照性能的方法 |
CN103678715A (zh) * | 2013-12-31 | 2014-03-26 | 无锡城市云计算中心有限公司 | 一种分布式文件系统中支持快照的元数据信息管理方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015180394A1 (zh) * | 2014-05-28 | 2015-12-03 | 华为技术有限公司 | 一种基于写时复制的文件系统中回收检查点的方法和装置 |
CN106294357A (zh) * | 2015-05-14 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算系统 |
CN106294357B (zh) * | 2015-05-14 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算系统 |
CN106326039A (zh) * | 2016-08-24 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘中逻辑卷克隆的方法、装置及磁盘 |
CN109213636A (zh) * | 2018-09-25 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种存储快照创建方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103984609B (zh) | 2017-06-16 |
WO2015180394A1 (zh) | 2015-12-03 |
EP3107005B1 (en) | 2018-03-14 |
US20170031933A1 (en) | 2017-02-02 |
EP3107005A1 (en) | 2016-12-21 |
EP3107005A4 (en) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984609A (zh) | 一种基于写时复制的文件系统中回收检查点的方法和装置 | |
US10108543B1 (en) | Efficient physical garbage collection using a perfect hash vector | |
US10795872B2 (en) | Incremental bloom filter rebuild for B+ trees under multi-version concurrency control | |
CN103473277B (zh) | 文件系统的快照方法和装置 | |
US11892979B2 (en) | Storage system garbage collection and defragmentation | |
US20170083549A1 (en) | Tracing garbage collector for search trees under multi-version concurrency control | |
CN108089893A (zh) | 冗余资源的确定方法、装置、终端设备与存储介质 | |
CN105630955A (zh) | 一种高效动态的数据集合成员管理方法 | |
KR101617696B1 (ko) | 데이터 정규표현식의 마이닝 방법 및 장치 | |
CN106484906A (zh) | 一种分布式对象存储系统闪回方法及装置 | |
CN103677674B (zh) | 一种数据处理方法及装置 | |
CN109542875B (zh) | 一种配置文件的生成方法及装置 | |
CN104156407B (zh) | 索引数据的存储方法、装置及存储设备 | |
CN106339324A (zh) | 一种选择垃圾回收块的方法及装置 | |
CN109408589A (zh) | 数据同步方法及装置 | |
CN110110019A (zh) | 一种道路网拓扑数据更新的方法及装置 | |
CN106155838A (zh) | 一种数据库备份数据恢复方法及装置 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN107526746A (zh) | 管理文档索引的方法和设备 | |
CN106528703A (zh) | 一种重复删除的模式切换方法及装置 | |
CN109254962B (zh) | 一种基于t-树的索引优化方法、装置及存储介质 | |
CN105025013A (zh) | 基于优先级Trie树的动态IP匹配模型 | |
CN103645967B (zh) | 一种只读快照回滚方法及装置 | |
CN107301019A (zh) | 一种结合引用引用时间图和容器位表的垃圾回收方法 | |
CN114118944A (zh) | 一种取证实验室分级管理方法、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211223 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |