CN101178677A - 一种计算机文件***的快照方法 - Google Patents
一种计算机文件***的快照方法 Download PDFInfo
- Publication number
- CN101178677A CN101178677A CNA2007101771355A CN200710177135A CN101178677A CN 101178677 A CN101178677 A CN 101178677A CN A2007101771355 A CNA2007101771355 A CN A2007101771355A CN 200710177135 A CN200710177135 A CN 200710177135A CN 101178677 A CN101178677 A CN 101178677A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- version
- node
- file system
- index node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000008569 process Effects 0.000 claims description 45
- 230000004048 modification Effects 0.000 claims description 38
- 238000012986 modification Methods 0.000 claims description 38
- 238000012217 deletion Methods 0.000 claims description 27
- 230000037430 deletion Effects 0.000 claims description 27
- 238000012423 maintenance Methods 0.000 claims description 7
- 230000000052 comparative effect Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000013479 data entry Methods 0.000 claims description 2
- 238000012552 review Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000002950 deficient Effects 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种目录级计算机文件***快照的创建方法,包括:确定需要创建快照的目录;当目录第一次创建快照时,将目录工作版本的根索引节点信息添加到快照集索引表中,更新最近一次创建或者删除快照集的时间点;分配一个新的索引节点作为所要创建的快照版本的根索引节点,并将工作版本的根索引节点的内容复制到新分配的索引节点中;将工作版本的写时拷贝链表复制到新创建快照的根索引节点上,然后清空工作版本的写时拷贝链表内容;将快照版本的根索引节点的快照创建时间设置为计算机***的当前时间;将快照版本的根索引节点链接到目录的快照链表上。本发明还提供了目录级计算机文件***快照的删除方法,以及目录工作版本修改方法。
Description
技术领域
本发明涉及计算机文件***的快照方法,特别涉及计算机文件***的快照方法。
背景技术
计算机文件***快照技术已经获得越来越广泛的关注,并在文件***的备份、版本维护等管理需求中得到应用。快照提供了计算机文件***在过去某个时间点的一致性印象,通过快照,用户可以实现对文件***历史版本的访问、以及将文件***回滚到历史版本等操作。此外,作为一种普遍的手段,快照还能够有效地帮助计算机文件***管理软件完成在线的文件***备份、故障后快速恢复等数据保护及管理功能。
在本地文件***中,对快照的支持通常分为文件***级别与文件级别。如ext3cow、elephant这两种文件***均在文件级别快照的基础上提供了文件***级别的快照支持,而在ZFS中则只支持文件***级别/子文件***级别快照。在网络存储环境下,现有的分布式文件***对快照的支持则限于文件***级别,如VxFS、GPFS、SAN FS等。虽然在SAN FS中,还支持基于子文件***的快照,但是子文件***基本上可以看作独立的文件***,所以本质上仍然是基于文件***级别的。
文件***级别的快照与对文件级别的快照都存在各自的优缺点。其中,文件***级别的快照存在如下缺点:
1、影响范围大,在文件***级别执行快照相关操作(创建/删除/访问)时,会影响所有用户对正常文件***的访问,特别在分布式环境下,客户端和访问进程数量大大加剧了快照相关操作的影响范围。
2、缺乏灵活性,文件***中并非所有的数据都具有同样的快照需求,用户无法根据实际需求,对需要备份或保留版本的目录有选择地创建快照。
3、消耗大量的存储资源,对整个文件***创建快照后,虽然采用COW(写时拷贝,Copy On Write)技术可以降低创建耗时并避免相同数据的重复存储,但所有对文件***的修改都进行COW仍然会导致存储资源的大量消耗。
而文件级别的快照则存在如下缺点:
1、在文件级别进行快照操作时,快照通常采用索引节点(inode)的版本log及目录项中记录文件<创建时间、删除时间>的方式组织文件版本。因此在对快照做删除操作时,需要遍历整个文件***才能决定哪些资源被共享访问,哪些资源可以被回收,删除快照的效率很低。
2、与文件***级别的快照相比,文件级别的快照具有最广泛的灵活性,但与此同时,也会带来由于灵活性所造成的维护成本问题。如在elephant中允许用户为每个文件定制不同的快照维护策略,但如对整个文件***中所有文件进行策略定制,其管理和维护成本是相当高的。例如,管理员通常利用第三方备份软件进行在线备份工作,需要备份的数据内容通常集中存放于某些目录下的,如果需要管理员理解快照的策略,并根据备份需要进行配置,则管理员的工作任务量和复杂度都会大大增加。
综上所述,在现有技术中文件***级别的快照存在快照粒度过大的缺陷,而文件级别的快照又存在快照粒度过小的缺陷。
发明内容
因此,本发明的任务是克服现有的快照方法由于快照粒度大小的不适当而产生的灵活性与资源利用率上的问题,从而给出一种可在快照使用中的灵活性与资源利用率上取得一个较好平衡的快照方法。
为了实现上述目的,本发明提供了一种计算机文件***快照的创建方法,为计算机文件***中的指定目录创建快照,将创建快照后的相应目录称为快照集;所述快照的创建包括以下步骤:
步骤1-1)、在计算机文件***中,确定需要创建快照的目录;
步骤1-2)、判断所述目录是否创建过快照,若所述目录为第一次创建快照,则将所述目录的工作版本的根索引节点信息添加到快照集索引表的信息条目中,更新最近一次创建或者删除快照集的时间点为计算机***的当前时间,然后执行下一步,否则,直接执行下一步;
步骤1-3)、分配一个新的索引节点作为所要创建的快照版本的根索引节点,并将所述工作版本的根索引节点的内容复制到新分配的索引节点中;
步骤1-4、将所述工作版本的写时拷贝链表复制到新创建快照的根索引节点上,然后将工作版本的写时拷贝链表内容清空;
步骤1-5)、将所述的快照版本的根索引节点的快照创建时间设置为计算机***的当前时间;
步骤1-6)、将所述的快照版本的根索引节点链接到所述目录的快照链表上。
上述技术方案中,所述的快照集索引表用于维护计算机文件***中所有快照集的索引信息。
上述技术方案中,所述的最近一次创建或者删除快照集的时间点为整个计算机文件***中维护的一个全局信息,所述的最近一次创建或者删除快照集的时间点记录了最近一次快照集总数量发生变化的时间。
上述技术方案中,所述的快照版本的根索引节点中包括有以下域值:快照创建时间、最近的一个旧版本索引、最近的一个新版本索引,通过最近的一个旧版本索引和最近的一个新版本索引,可将对应快照集中所有版本通过将根索引节点按照时间顺序链接成一个快照链表。
本发明还提供了一种计算机文件***快照的删除方法,为计算机文件***中的指定目录删除指定的快照版本,包括以下步骤:
步骤2-1)、在计算机文件***中,在指定目录的快照链表中选择要删除的快照版本;
步骤2-2)、查找所要删除的快照版本的相邻新版本,在所述的相邻新版本上查询写时拷贝链表,得到在相邻新版本以及后续版本中不会被使用的块或索引节点的信息;所述的信息包括类型,块号或索引节点号,出生时间;
步骤2-3)、查找所要删除快照版本的相邻旧版本,从所述的相邻旧版本中找到所记录的旧版本快照创建时间,若所要删除的快照版本不存在相邻旧版本,则所要查找的旧版本快照创建时间为0;
步骤2-4)、将所述的相邻新版本的写时拷贝链表中的块或索引节点的出生时间逐个与步骤2-3)的查询结果进行比较,若一个块或索引节点的出生时间大于所述的查询结果,则在写时拷贝链表中删除该块或索引节点的信息,并回收对应的块或索引节点资源;
步骤2-5)、将待删除快照版本的写时拷贝链表合并到相邻新版本的写时拷贝链表中;
步骤2-6)、将待删除快照版本从快照链表中移出,并将代表相邻新版本的根索引节点与代表相邻旧版本的根索引节点相连。
上述技术方案中,所述的写时拷贝链表对应一个快照版本,在所述的写拷贝链表中记录着所对应的快照版本因修改而引发写时拷贝后,在本版本及后续的版本中不会被使用的块或索引节点的信息,所述的各块或各索引节点信息均分别通过三元组<类型,块号或索引节点号,出生时间>进行表述。
本发明又提供了一种计算机文件***快照的目录工作版本修改方法,包括以下步骤:
步骤3-1)、在计算机文件***中,选取待修改节点所对应的索引节点;
步骤3-2)、根据所述索引节点的时间戳与最近一次创建或者删除快照集的时间点,对所述索引节点中的快照集指针有效性进行判断,若所述的快照集指针有效,则执行下一步,否则,执行步骤3-4);
步骤3-3)、比较所述快照集指针所指向的快照集中的最新快照版本的创建时间,以及待修改节点的出生时间,根据比较结果,决定在结束修改过程前是否要进行写时拷贝操作;如果不需要,则直接修改待修改节点并结束修改过程;如果需要进行写时拷贝操作,则执行写时拷贝、修改写时拷贝出的新节点、扩充写时拷贝链表后,最后还需向上追溯其在元素目录树中的父节点,重新执行本步骤;
步骤3-4)、更新快照集指针,在所述的更新过程中,通过将所述节点的绝对路径名与快照集索引表中的快照集信息进行前缀匹配,并根据匹配结果更新所述快照集指针和时间戳。若更新后快照集指针为空,则直接修改待修改节点并结束修改过程;若所述快照集指针不为空,则重新执行步骤3-3)。
上述技术方案中,在所述的步骤3-3)中,所述的根据比较结果,决定在结束修改过程前是否要进行写时拷贝操作包括:
a)、若所述的出生时间大于或等于所述的创建时间,则不做写时拷贝操作,直接修改待修改节点并结束修改过程;
b)、若所述的出生时间小于所述的创建时间,对待修改节点做写时拷贝操作并修改所述写时拷贝出的新节点,然后将写时拷贝对应的原节点信息记录到工作版本的写时拷贝链表中,最后还需对所述节点在所述元素目录树中的父节点进行所述的出生时间与所述的创建时间之间的比较判断,若所述父节点的出生时间小于创建时间,则对所述的父节点做写时拷贝操作,并修改所述写时拷贝出的新父节点,将写时拷贝对应的原父节点信息记录到工作版本的写时拷贝链表中,重复上述过程,直至一个祖先节点的出生时间大于或等于创建时间后,结束修改过程。
上述技术方案中,在所述的步骤3-4)中,所述的根据匹配的结果,修改快照集指针包括:若匹配不成功,则将所述的快照集指针设置为空;若匹配成功,则将快照集指针更新为所述快照集索引表中的相应记录中的最新版本的根索引节点号。
上述技术方案中,在所述的步骤3-2)中,在对所述索引节点中的快照集指针有效性进行判断时,若所述索引节点的时间戳大于或等于所述的最近一次创建或者删除快照集的时间点,则所述的快照集指针有效。
上述技术方案中,所述的时间戳用来判断快照集状态是否发生变化。
上述技术方案中,所述的元素目录树是对计算机文件***中包括索引节点、间址块、目录块、数据块在内的4类基本元素进行抽象后得到的,在抽象过程中,将所述的索引节点、间址块、目录块之类的非叶子节点抽象为一种抽象节点,所述的抽象节点包括本节点信息和子节点描述信息。
上述技术方案中,所述的子节点描述信息包括子节点出生时间,子节点描述和子节点指针。
本发明的优点在于:
1、本发明通过提供一种支持计算机文件***目录级快照的方法,可有效满足用户及应用程序在实际应用中,对需要进行数据保护、在线备份或者版本维护的目录及文件,灵活地进行快照创建、访问、删除等操作的需求。相比文件***级的快照支持,本发明通过缩小的快照粒度能够有效地解决快照操作对整个文件***访问的时间、涉及的文件和目录范围等影响,并显著降低存储资源的大量耗用问题。相比文件级的快照支持,本发明通过扩大的快照粒度能够有效地降低文件级快照粒度带来的管理维护成本,并可从技术上解决删除效率的问题。
2、本发明提供的一种支持目录级快照的计算机文件***方法具体包括创建快照、删除快照以及修改目录工作版本。创建快照方法中,仅涉及到内存中的个别数据结构的读写操作,这使得创建快照操作几乎在瞬间完成。删除快照方法中,避免了文件级快照的删除带来的索引节点链表遍历的过程,并且操作的也是内存中的数据结构,所以删除操作也非常迅速。修改目录工作版本方法中,采用COW技术有效的推迟了版本之间的共享树因发生修改而***的过程,不仅节省了拷贝所花费的时间,更节省了存储资源的耗用。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1为本发明的文件***目录级快照组织结构概要图;
图2为非叶子节点对象的抽象示意图;
图3为元素目录树的一个简单示意图;
图4为快照创建过程中的状态变化图;
图5为快照删除过程中的状态变化图;
图6为本发明的计算机文件***快照的创建方法的流程图;
图7为本发明的计算机文件***快照的删除方法的流程图;
图8为本发明的计算机文件***快照的目录工作版本修改方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的说明。
本发明为了克服现有技术快照粒度过大或过小的缺陷,在文件***的目录级别上实现了对快照的支持。与文件***级别快照和文件级别快照相比,目录级快照具有不同的特点,下面首先对目录级快照所涉及到的相关概念进行说明。
1、快照集(snapset):在计算机文件***内,用户可对目录创建相应的快照,为了将已经创建快照的目录和未创建快照的目录相区别,本发明将已经创建快照的目录称为快照集。在快照集中所包含的内容包括目录中所有子目录以及子文件。例如,对于一个目录“/root/usr/dir”创建了快照,那么该目录就是一个快照集,该目录中所包含的所有子目录如“/root/usr/dir/sub_dir1,/root/usr/dir/sub_dir2/grand_dir3”等、子文件如“/root/usr/dir/file1,/root/usr/dir/sub_dir2/file2”等,都属于这个快照集。
2、LMTS:在整个计算机文件***中维护的一个全局变量,该全局变量记录最近一次创建或者删除快照集的时间点(Last Modify Time ofSnapset,LMTS)。
3、版本,工作版本和快照版本:文件***中的任何目录都具有版本。对于从未创建过快照的目录,仅有一个工作版本,所述的工作版本对应着不具备快照功能的传统的文件***访问操作实体。而一个快照集中的每个快照,都分别对应着一个快照版本。版本之间逻辑上不具备依赖性,例如:一个快照集有一个工作版本和一个快照版本,工作版本被删除后,快照版本仍然存在。
4、快照集索引表:快照集索引表用于维护文件***中所有快照集的索引信息。任意一个快照集在索引表中都具备对应的索引信息项:<目录名,最新版本的根索引节点号>。通常最新版本是工作版本,例如,在附图1中,通过快照集索引表1中“/root/usr/dir”对应的索引信息,可定位“文件***树”中对应快照集“/root/usr/dir”工作版本的根索引节点。通过表中另一项“/root/home/a/b”对应的索引信息,则可定位快照集“/root/home/a/b”工作版本的根索引节点。当快照集的工作版本不存在时,比如已经被删除,那么最新版本就指最新的一个快照版本。快照集索引表是本发明与文件***级快照方法或文件级快照方法的区别特征,采用了快照集索引表后,可以知道计算机文件***中哪些目录创建了快照,哪些目录则没有创建快照,并可以实现对创建快照目录的快速查找。
5、版本的根索引节点:任何版本的根索引节点都具有如下特殊域值,快照创建时间(epoch)、最近的一个旧版本索引(prev)、最近的一个新版本索引(next),上述特殊域值在附图4中标出。
通过版本根索引节点中的prev、next等指针,可将对应快照集中所有版本通过将根索引节点按照时间顺序链接成一个快照链表。当仅存在一个版本时,对应的prev、next指针均为空。在附图1中,对目录在创建快照过程中所生成的不同版本进行了举例说明。快照集“/root/usr/dir”拥有三个版本:工作版本、快照版本B和快照版本A。通过三个版本根索引节点中的相应指针,将三个版本的索引节点形成快照链表。
并且,从任何版本的根索引节点开始,通过基本的文件***命名解析过程就可以遍历该版本的内容,即其下所有的子文件、子目录等。一个快照集中的各个版本可以独立地形成一棵树。例如,附图1中的2所示,/root/usr/dir/的工作版本就形成了一棵树,同时这棵树是整个文件***的一棵子树。由于采用COW(copy-on-write,写时拷贝)技术提高访问效率及降低容量占用,所以不同版本的树之间通常存在共享分支。例如,从工作版本的根索引节点向下遍历/root/usr/dir的工作版本树2时,分别可访问COW的新分支21,以及工作版本和快照版本B共享分支22;同样,共享分支3是快照版本B和快照版本A两棵树的共享分支。
6、写时拷贝链表(COW_list):每个版本都具有一个COW_list,该链表中记录着本版本作为工作版本时因修改而引发COW,从而在本版本及后续的版本中不会被使用的资源(块和索引节点)。每项上述资源,在COW_list中都对应着一项三元组:<类型,块号/索引节点号,出生时间>,其中,类型是指该资源为块或者为索引节点,块号/索引节点号则是该资源在文件***中的唯一标识,出生时间是指该资源被分配并使用的时间点,通过与文件***创建时刻之间间隔的秒数来标识。通过三元组中的出生时间,以及COW_list所对应版本的更新根索引节点中的版本创建时间(epoch)就可以确定资源(块和索引节点)的生存周期:该资源在<出生时间,版本创建时间>的时间段内被使用。
非快照集的普通目录工作版本的COW_list为空,因为没有发生过COW。在对一个目录创建快照时,就会将目录工作版本的COW_list转接到新创建的快照版本上,并将工作目录的COW_list清空。在目录是第一次创建快照的情况下,由于之前从未发生过COW所以工作版本的COW_list为空,故在COW_list转接后,新创建的快照版本的COW_list也就为空,也就是说,任何一个目录在第一次创建快照后得到的快照版本的COW_list一定为空。另外,仅工作版本的COW_list中记录的三元组个数才有可能因为发生COW过程而变多,因为快照版本是不能够被修改的所以肯定不会发生COW过程。
在附图5中,对COW_list的形式及内容做了相关的说明:61所示的“相邻新版本”的COW_list中记录着4项在该版本及其后续版本中不会被使用的资源,如其中一项<B,20,120>表示块号为20,出生时间是120的块;62所示的“待删除快照”的COW_list中记录着3项不会被该版本及其后续版本(如“相邻新版本”)中被使用的资源,如其中一项<I,90,60>表示索引节点号为90,出生时间是60的索引节点。
7、文件***元素目录树结构:在计算机文件***中,所有的节点按照类型可以分为4类基本元素,分别为:索引节点、间址块(indirect block)、目录块(dentry block)、数据块。在快照文件***中,上述4类元素也是快照文件***中COW的直接操作实体。在快照文件***中将上述4类基本元素做进一步的抽象,可组织成为文件***元素目录树。
在文件***元素目录树中,节点按类型可分为非叶子节点和叶子节点。非叶子节点包括索引节点,间址块,目录块三类。叶子节点通常情况下是数据块(Data block),但在文件大小为0时的索引节点或空目录中的第一个目录块也可以成为叶子节点。所有3类非叶子节点都可以抽象为一种对象节点,其具有两类信息:本节点信息和子节点描述信息。本节点信息包括节点属性相关信息;子节点描述包括:子节点出生时间,子节点描述和子节点指针。在附图2中对非叶子节点进行了描述。其中,索引节点的节点属性相关信息中包含与快照相关的两类信息。第一类是前述的根索引节点中的快照创建时间(epoch)、最近的一个旧版本索引(prev)、最近的一个新版本索引(next)。对于快照集版本的根索引节点,这三个项有效,而对普通的索引节点,这三个值无效。第二类信息包含一个快照集指针(snapset ptr)和一个时间戳(timestamp),在快照集指针有效的情况下,指向本索引节点所属快照集的最新版本的根索引节点,如果它的值为空,则表示本索引节点不属于一个快照集。而时间戳则是判断快照集指针有效性的一个必要条件,通过比较时间戳与LMTS判断快照集指针是否有效,时间戳大于LMTS则快照集指针有效,否则无效。
通过上述的各类非叶子节点中的子节点描述和指针,可将文件***的某个目录的某个版本组织成为一棵元素目录树,并通过这些元素目录树可组织起整个文件***。通过元素目录树,在处理快照相关操作时,可以逻辑上忽略具体的非叶子节点的类型,而进行统一的描述及处理。例如在后文中提到的“对目录工作版本的修改”的流程中,步骤3-2(二)中存在“上溯判断父节点是否需要COW”的判断,其中“父节点”一定是一个非叶子节点,但无需关注是何种类型的非叶子节点。图3是一个简单的元素目录树的示意图,在该图中,从“/root/usr/dir”的索引节点开始,通过各层节点的子节点指针可以逐级遍历以“/root/usr/dir”为根(可以是该目录的任何一个版本的根)的目录元素树中各层非叶子节点和叶子节点。
在对目录级别快照***所具有的特征做上述说明后,对目录级别快照的创建、删除以及对目录工作版本的修改分别进行说明。
参考图6,并结合实例,对目录级别快照的创建流程做如下说明:
步骤1-1、根据用户的选择,决定文件***中需要创建快照的目录;
步骤1-2、判断所要创建快照的目录是否创建过快照,即是否已经是快照集;如果是第一次创建快照,则在计算机文件***的快照集索引表中添加与所要创建快照的目录相关的索引条目,更新LMTS为计算机***的当前时间,然后执行下一步,如果不是第一次创建快照,则直接执行下一步;
步骤1-3、分配一个新的索引节点作为新创建快照版本的根索引节点,并将工作版本的根索引节点内容拷贝至新创建快照的根索引节点;
步骤1-4、将工作版本的COW_list复制到新创建快照的根索引节点上,并将工作版本的COW_list内容清空;
步骤1-5、将新创建快照版本的根索引节点的快照创建时间(epoch)设置为计算机***的当前时间;
步骤1-6、将新创建快照版本的根索引节点链接到对应目录的快照链表上。新分配的根索引节点在链接时,如果当前目录是第一次创建快照,则目录的快照链表中只有目录工作版本的根索引节点,将新分配的根索引节点直接链接到工作版本的根索引节点即可,在链接过程中,将新分配根索引节点的前向指针指向工作版本的根索引节点,将工作版本的根索引节点的后向指针指向新分配的根索引节点;如果当前目录之前已经创建过快照,则新分配的根索引节点在链接时,将新分配的根索引节点的前向指针指向工作版本的根索引节点,将工作版本的根索引节点的后向指针指向新分配的根索引节点,并且将新分配的根索引节点的后向指针指向相邻旧版本根索引节点,相邻旧版本根索引节点的前向指针指向新分配的根索引节点。
在附图4中,在目录之前已经创建过快照(该目录已经是快照集)的条件下,对新创建快照版本的根索引节点进行链接的过程做了详细说明。在对某一个目录创建新的快照前,已经有一个快照版本A以及该目录自身的工作版本,快照版本A所对应的根索引节点号为80,工作版本curr所对应的根索引节点号为10,工作版本的根索引节点中的旧版本索引指向快照版本A对应的根索引节点,快照版本A的根索引节点的新版本索引指向工作版本的根索引节点。对目录创建快照的新版本后,所创建快照的新版本为快照版本B:首先为快照版本B分配的根索引节点号为100并将索引节点10的内容复制到其中;然后将41所示的写时拷贝链表转接到快照版本B上成为52并将工作版本的写时拷贝链表清空,如51所示;接着,设置快照版本B的创建时间(epoch)为***当前的时间150;最后,设置快照版本B的新版本索引指向工作版本的根索引节点,设置其旧版本索引指向快照版本A的根索引节点,在快照版本A和工作版本的根索引节点中进行相应的修改,从而实现对新创建快照的根索引节点与目录的快照链表间的链接。在本图中,对所有需要新增或修改的内容通过斜纹框进行标示。
用户在创建快照后,根据实际需要可实现对快照的删除,参考图7,并结合实例,对快照的删除流程进行详细说明:
步骤2-1、在某一目录的快照链表中选定所要删除的快照版本;
步骤2-2、查找所要删除快照版本的相邻新版本,从相邻新版本中查询COW_list。在本步骤中,所述的相邻新版本是指与所要删除的快照版本相比更新的且时间间隔最短的一个快照版本或目录的工作版本。若所述目录除了工作版本外只存在所要删除的快照版本或所要删除的快照版本为最新的快照版本,则相邻新版本即为目录的工作版本,若所述目录除了工作版本外,还有其它的快照版本,且在这些版本中存在与所要删除的快照版本相比更新的快照版本,则相邻新版本为与所要删除的快照版本在时间上最为接近的较新版本。
在实际操作中,查找所要删除快照版本的相邻新版本只需在所要删除的快照版本对应的根索引节点上查找前向指针所指向的根索引节点,该根索引节点所代表的版本就是所述的相邻新版本。在前述对COW_list的说明中,已经对COW_list所包含的内容进行了解释,从COW_list可以知道在COW_list所属版本以及后续版本中不被使用的“块”或“索引节点”。这些被记录在COW_list中的“块”或“索引节点”也被称为被该版本“杀死”的“块”或“索引节点”。
步骤2-3、查找所要删除快照版本的相邻旧版本,并查询相邻旧版本所记录的快照创建时间(epoch),若不存在相邻旧版本,则查询结果为0。在查询相邻旧版本时,根据要删除快照版本根索引节点的后向指针即可找到相邻旧版本所对应的根索引节点。相邻旧版本所记录的快照创建时间在其根索引节点的快照创建时间(epoch)项中有相应的记载。如果后向指针为NULL,则证明相邻旧版本不存在,那么创建时间(epoch)则认为是文件***创建的时间点,即0。
步骤2-4、将相邻新版本的COW_list中的块和索引节点的出生时间逐项与步骤2-3查询结果进行比较,若所述的出生时间大于所述的查询结果,则删除COW_list中的相应三元组,并回收对应的块或索引节点资源,使得这些资源重新可用;
步骤2-5、将待删除快照版本的COW_list合并到相邻新版本的COW_list中;
步骤2-6、将待删除快照版本从快照链表中移出,并将代表相邻新版本的根索引节点与代表相邻旧版本的根索引节点相连。
附图5为快照删除的一个具体实例,在该实例中,一个快照链表有三个快照版本,所要删除的快照版本是图中的“待删除快照”。图中的“相邻新版本”的COW_list中有三个被其“杀死”的块,分别是<B,20,120>,<B,21,70>,<B,22,80>和一个被相邻新版本“杀死”的索引节点<I,100,110>。图中“相邻旧版本”的快照创建时间为100。首先,通过COW_list中各项资源的出生时间与“相邻旧版本”的快照时间比较得出:在“相邻新版本”的COW_list中仅有两项符合删除条件的资源,分别为<B,20,120>和<I,100,110>,故删除上述两项并释放块号20和索引节点号100对应的资源。然后,将“待删除快照”的COW_list中的三项资源记录项全部合并到相邻新版本的COW_list中,最后在快照链表中删除“待删除快照”对应的根索引节点,并将剩余两个版本相链接。
除了上述的快照创建和快照删除流程外,本发明还包括对目录工作版本的修改。对目录工作版本的修改是指修改该目录的工作版本对应的树中任何内容,比如,附图1中的2就是/root/usr/dir/的工作版本形成的一棵树,修改树中任何内容都被称为对目录工作版本的修改。
在对目录工作版本的修改过程中,还可能会引发COW的操作。为了便于理解,首先对COW操作的基本思想进行举例说明。
目录a有两个子节点b和c,且a为根节点。假设对a创建快照,在创建过程中复制a成a’,a’即为新创建的快照版本的根节点。此时a指向自己子节点b和c,由于a’是复制的,所以a’也指向子节点b和c,即b和c是被共享的资源。访问工作版本时,通过a、a指向子节点b的指针、a指向子节点c的指针即可以访问到工作版本的所有内容。同理,访问快照版本时,通过a’、a’指向子节点b的指针、a’指向子节点c的指针也都可以访问到快照版本的所有内容。
当工作版本需要修改时,例如b中原来有从1到10共10个值,需要将其中的2修改为20,但是不能直接修改b,因为b被快照a’也引用着,在任何时刻访问快照a’中的b节点内容必须都一样(内容仍然是1到10),如果修改b,那么工作版本的修改成功了,快照版本的内容就被破坏了。所以,此时需要进行一次COW操作:首先复制一个b’(即新分配一个b’,将b的内容拷贝到b’中,b’中有从1到10的10个值),然后将b’的内容进行修改(如将b’中的2修改为20),称b为被COW的源节点,b’为COW出的新节点。在COW后,再将a指向b的子节点指针修改为指向b’。经过上述操作,c还是共享的,但是b和b’就分开了,之后再对b’进行修改,就不需要COW操作,因为此时的b’仅属于工作版本。
在对COW操作的思想进行说明后,下面对修改目录工作版本的流程进行具体的说明。对目录工作版本的修改可能涉及目录元素树中多个节点都需要进行修改,而下面仅描述了修改其中某个节点的流程,因为该节点可以是任何一类非叶子节点或叶子节点。
所有索引节点中都存在一个快照集指针(snapset ptr)和一个时间戳(timestamp),在附图2中存在于索引节点的文件属性中,在该snapset ptr有效的情况下,指向本索引节点所属快照集的最新版本的根索引节点,如果它的值为空,则表示本索引节点不属于一个快照集。而timestamp则是判断snapset ptr有效性的一个必要条件,通过比较timestamp与LMTS判断snapset ptr是否有效,LMTS表示最近新增或删除快照集的时间点,timestamp大于LMTS则snapset ptr有效,否则无效。
参考图8,目录工作版本的修改流程如下:
3-1、获取待修改节点所对应的索引节点,如果待修改节点就是一个索引节点,则获取的索引节点就是其自身;
3-2、若索引节点中的timestamp大于LMTS,且snapset ptr为空,则不需要COW,直接修改待修改节点,修改过程结束;
本步骤中,“timestamp大于LMTS”可证明snapset ptr有效,而在有效的情况下,snapset ptr为空则说明待修改节点不属于一个快照集,那么就不存在快照版本和工作版本共享的问题,也就不需要进行COW操作。即:任何不属于快照集的目录进行修改时,均不需要COW操作。
3-3、若索引节点中的timestamp大于LMTS,且snapset ptr不为空,说明待修改节点属于此snapset ptr指向的快照集,则比较该快照集中最新的快照版本的创建时间(epoch)与待修改节点的出生时间(记录在其父节点中)两者的大小:
(一)出生时间大于或等于epoch,则不需要COW,直接修改待修改节点,修改过程结束。
在这种情况下,说明待修改节点已经进行过COW操作,仅属于工作版本,可直接进行修改,无需再做COW操作。例如:前文COW操作实例中COW出的新节点b’,它的出生时间肯定大于当时最新快照的epoch,则修改b’时不需要COW,直接修改即可。
(二)出生时间小于epoch,则需要COW并修改待修改节点;并且需要上溯判断父节点是否需要COW,如果其父节点的出生时间小于epoch,则父节点也需要COW,进行父节点的修改后还需上溯到祖父节点进行COW判断和修改,直到一个祖先节点的出生时间大于或等于epoch,才停止上溯,修改过程结束。
在这种情况下,说明待修改节点是被工作版本和最新的快照版本共享,因此需要进行COW。并且,在本步骤中需要上溯父节点是因为父目录可能也被共享,如果共享,那么父目录由于需要修改其指向子目录的指针和出生时间,所以也就需要COW。同理一直需要上溯到一个在此之前已经COW过的祖先节点。这一上溯过程有可能会上溯到这个工作版本的根索引节点。
另外,任何进行COW操作的节点,都需要将被COW的原节点的<类型,节点号,出生时间>记录到目录工作版本的COW_list中。
3-4、若索引节点中的timestamp小于LMTS,表示最近发生过快照集的新增或删除,即snapset ptr可能无效,故需要对snapset ptr进行更新。更新过程通过将该节点的绝对路径名与快照集索引表中的快照集信息进行前缀匹配:
(一)若没有匹配,则证明此时待修改节点不属于任何快照集,需要更新索引节点的timestamp且将snapset ptr设置为空,不进行COW操作,直接修改待修改节点,修改过程结束;
(二)若能够匹配,则证明此时待修改节点存在于一个快照集中,所以无论之前的snapset ptr是何内容,都将其更新为索引表中的相应记录中的最新版本的根索引节点号,并更新索引节点的timestamp,而后跳至步骤3-3。
在本步骤中,对索引节点的timestamp的修改不同于普通的对索引节点的修改,不需进行是否COW的判断及父节点上溯等过程。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (13)
1.一种计算机文件***快照的创建方法,为计算机文件***中的指定目录创建快照,将创建快照后的相应目录称为快照集;所述快照的创建包括以下步骤:
步骤1-1)、在计算机文件***中,确定需要创建快照的目录;
步骤1-2)、判断所述目录是否创建过快照,若所述目录为第一次创建快照,则将所述目录的工作版本的根索引节点信息添加到快照集索引表的信息条目中,更新最近一次创建或者删除快照集的时间点为计算机***的当前时间,然后执行下一步,若所述目录并非第一次创建快照,直接执行下一步;
步骤1-3)、分配一个新的索引节点作为所要创建的快照版本的根索引节点,并将所述工作版本的根索引节点的内容复制到新分配的索引节点中;
步骤1-4)、将所述工作版本的写时拷贝链表复制到新创建快照的根索引节点上,然后将工作版本的写时拷贝链表内容清空;
步骤1-5)、将所述的快照版本的根索引节点的快照创建时间设置为计算机***的当前时间;
步骤1-6)、将所述的快照版本的根索引节点链接到所述目录的快照链表上。
2.根据权利要求1所述的计算机文件***快照的创建方法,其特征在于,所述的快照集索引表用于维护计算机文件***中所有快照集的索引信息。
3.根据权利要求1所述的计算机文件***快照的创建方法,其特征在于,所述的最近一次创建或者删除快照集的时间点为整个计算机文件***中维护的一个全局信息,所述的最近一次创建或者删除快照集的时间点记录了最近一次快照集总数量发生变化的时间。
4.根据权利要求1所述的计算机文件***快照的创建方法,其特征在于,所述的快照版本的根索引节点中包括有以下阈值:快照创建时间、最近的一个旧版本索引、最近的一个新版本索引,通过最近的一个旧版本索引和最近的一个新版本索引,可将对应快照集中所有版本通过将根索引节点按照时间顺序链接成一个快照链表。
5.一种计算机文件***快照的删除方法,为计算机文件***中的指定目录删除指定的快照版本,包括以下步骤:
步骤2-1)、在计算机文件***中,在指定目录的快照链表中选择要删除的快照版本;
步骤2-2)、查找所要删除的快照版本的相邻新版本,在所述的相邻新版本上查询写时拷贝链表,得到在相邻新版本以及后续版本中不会被使用的块或索引节点的信息;所述的信息包括类型,块号或索引节点号,出生时间;
步骤2-3)、查找所要删除快照版本的相邻旧版本,从所述的相邻旧版本中找到所记录的旧版本快照创建时间,若所要删除的快照版本不存在相邻旧版本,则所要查找的旧版本快照创建时间为0;
步骤2-4)、将所述的相邻新版本的写时拷贝链表中的块或索引节点的出生时间逐个与步骤2-3)的查询结果进行比较,若一个块或索引节点的出生时间大于所述的查询结果,则在写时拷贝链表中删除该块或索引节点的信息,并回收对应的块或索引节点资源;
步骤2-5)、将待删除快照版本的写时拷贝链表合并到相邻新版本的写时拷贝链表中;
步骤2-6)、将待删除快照版本从快照链表中移出,并将代表相邻新版本的根索引节点与代表相邻旧版本的根索引节点相连。
6.根据权利要求5所述的计算机文件***快照的删除方法,其特征在于,所述的写时拷贝链表对应一个快照版本,在所述的写拷贝链表中记录着所对应的快照版本因修改而引发写时拷贝后,在本版本及后续的版本中不会被使用的块或索引节点的信息,所述的各块或各索引节点信息均分别通过三元组<类型,块号/索引节点号,出生时间>进行表述。
7.一种计算机文件***快照的目录工作版本修改方法,包括以下步骤:
步骤3-1)、在计算机文件***中,选取待修改节点所对应的索引节点;
步骤3-2)、根据所述索引节点的时间戳与最近一次创建或者删除快照集的时间点,对所述索引节点中的快照集指针有效性进行判断,若所述的快照集指针有效,则执行下一步,否则,执行步骤3-4);
步骤3-3)、比较所述快照集指针所指向的快照集中的最新快照版本的创建时间,以及待修改节点的出生时间,根据比较结果,决定在结束修改过程前是否要进行写时拷贝操作;如果不需要,则直接修改待修改节点并结束修改过程;如果需要进行写时拷贝操作,则执行写时拷贝、修改写时拷贝出的新节点、扩充写时拷贝链表后,最后还需向上追溯其在元素目录树中的父节点,重新执行本步骤;
步骤3-4)、更新快照集指针,在所述的更新过程中,通过将所述节点的绝对路径名与快照集索引表中的快照集信息进行前缀匹配,并根据匹配结果更新所述快照集指针和时间戳。若更新后快照集指针为空,则结束更新过程;若所述快照集指针不为空,则重新执行步骤3-3)。
8.根据权利要求7所述的计算机文件***快照的目录工作版本修改方法,其特征在于,在所述的步骤3-3)中,所述的根据比较结果,决定在结束修改过程前是否要进行写时拷贝操作包括:
a)、若所述的出生时间大于或等于所述的创建时间,则不做写时拷贝操作,直接修改待修改节点并结束修改过程;
b)、若所述的出生时间小于所述的创建时间,对待修改节点做写时拷贝操作并修改所述节点,然后将写时拷贝对应的原节点信息记录到工作版本的写时拷贝链表中,最后还需对所述节点在所述元素目录树中的父节点进行所述的出生时间与所述的创建时间之间的比较判断,若所述父节点的出生时间小于创建时间,则对所述的父节点做写时拷贝操作,并修改父节点,将写时拷贝对应的原父节点信息记录到工作版本的写时拷贝链表中,重复上述过程,直至一个祖先节点的出生时间大于或等于创建时间后,结束修改过程。
9.根据权利要求7所述的计算机文件***快照的目录工作版本修改方法,其特征在于,在所述的步骤3-4)中,所述的根据匹配的结果,修改快照集指针包括:若匹配不成功,则将所述的快照集指针设置为空;若匹配成功,则将快照集指针更新为所述快照集索引表中的相应记录中的最新版本的根索引节点号。
10.根据权利要求7或8或9所述的计算机文件***快照的目录工作版本修改方法,其特征在于,在所述的步骤3-2)中,在对所述索引节点中的快照集指针有效性进行判断时,若所述索引节点的时间戳大于或等于所述的最近一次创建或者删除快照集的时间点,则所述的快照集指针有效。
11.根据权利要求7所述的计算机文件***快照的目录工作版本修改方法,其特征在于,所述的时间戳用来判断快照集状态是否发生变化。
12.根据权利要求7所述的计算机文件***快照的目录工作版本修改方法,其特征在于,所述的元素目录树是对计算机文件***中包括索引节点、间址块、目录块、数据块在内的4类基本元素进行抽象后得到的,在抽象过程中,将所述的索引节点、间址块、目录块之类的非叶子节点抽象为一种抽象节点,所述的抽象节点包括本节点信息和子节点描述信息。
13.根据权利要求12所述的计算机文件***快照的目录工作版本修改方法,其特征在于,所述的子节点描述信息包括子节点出生时间,子节点描述和子节点指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101771355A CN100541441C (zh) | 2007-11-09 | 2007-11-09 | 一种计算机文件***的快照创建、删除及修改方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101771355A CN100541441C (zh) | 2007-11-09 | 2007-11-09 | 一种计算机文件***的快照创建、删除及修改方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101178677A true CN101178677A (zh) | 2008-05-14 |
CN100541441C CN100541441C (zh) | 2009-09-16 |
Family
ID=39404938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101771355A Expired - Fee Related CN100541441C (zh) | 2007-11-09 | 2007-11-09 | 一种计算机文件***的快照创建、删除及修改方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100541441C (zh) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299197B (zh) * | 2008-06-30 | 2011-09-28 | 无锡中星微电子有限公司 | 一种增删任务的方法和单元 |
CN102339321A (zh) * | 2011-11-09 | 2012-02-01 | 上海盛霄云计算技术有限公司 | 具有版本控制的网络文件***及方法 |
CN102799607A (zh) * | 2012-05-31 | 2012-11-28 | 新奥特(北京)视频技术有限公司 | 一种快照方式处理数据的方法 |
CN103038767A (zh) * | 2010-07-30 | 2013-04-10 | 国际商业机器公司 | 用于文件克隆的数据共享 |
CN103336828A (zh) * | 2013-07-05 | 2013-10-02 | 深圳市康拓普信息技术有限公司 | 实时数据库读取及写入方法 |
CN103473251A (zh) * | 2012-06-05 | 2013-12-25 | 国际商业机器公司 | 在使用处理器件的计算环境中提供使用选择性元组版本化的文件***快照的方法和*** |
CN103473277A (zh) * | 2013-08-27 | 2013-12-25 | 华为技术有限公司 | 文件***的快照方法和装置 |
CN103473250A (zh) * | 2012-06-05 | 2013-12-25 | 国际商业机器公司 | 用于保存文件***节点的过去状态的方法与*** |
CN103678040A (zh) * | 2013-12-06 | 2014-03-26 | 北京明朝万达科技有限公司 | 一种基于计算机***的快照和回退方法及*** |
CN104714755A (zh) * | 2013-12-13 | 2015-06-17 | 华为技术有限公司 | 一种快照管理方法及装置 |
CN104933133A (zh) * | 2015-06-12 | 2015-09-23 | 中国科学院计算技术研究所 | 分布式文件***中的元数据快照存储和访问方法 |
CN105095015A (zh) * | 2014-05-13 | 2015-11-25 | 北京云巢动脉科技有限公司 | 一种磁盘快照的建立方法及装置 |
CN105095016A (zh) * | 2014-05-16 | 2015-11-25 | 北京云巢动脉科技有限公司 | 一种磁盘快照回滚方法及装置 |
CN105843905A (zh) * | 2010-11-22 | 2016-08-10 | 日立数据***工程英国有限公司 | 用于管理文件***中的文件***对象的设备和方法 |
CN106326040A (zh) * | 2016-08-27 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种快照元数据管理方法和装置 |
CN106547926A (zh) * | 2016-12-14 | 2017-03-29 | 北京华云网际科技有限公司 | 分布式块存储的快照树的根节点的优化方法和装置 |
CN107180092A (zh) * | 2017-05-15 | 2017-09-19 | 中国科学院上海微***与信息技术研究所 | 一种文件***的控制方法、装置及终端 |
CN107277111A (zh) * | 2017-05-19 | 2017-10-20 | 腾讯科技(深圳)有限公司 | 一种集群数据处理方法、主节点、从节点和集群 |
CN107526840A (zh) * | 2017-09-14 | 2017-12-29 | 郑州云海信息技术有限公司 | 文件***快照查询方法、装置及计算机可读存储介质 |
CN108829813A (zh) * | 2018-06-06 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种基于分布式存储***的文件快照方法及*** |
CN109308231A (zh) * | 2017-07-28 | 2019-02-05 | 中国石油化工股份有限公司 | 一种空间数据版本的管理方法 |
CN109358947A (zh) * | 2018-10-08 | 2019-02-19 | 郑州云海信息技术有限公司 | 一种虚拟机快照的实现方法及*** |
CN109445989A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种文件***数据备份方法及装置 |
WO2019091085A1 (zh) * | 2017-11-13 | 2019-05-16 | 华为技术有限公司 | 一种快照比对的方法和装置 |
CN110515543A (zh) * | 2019-08-02 | 2019-11-29 | 星辰天合(北京)数据科技有限公司 | 基于对象存储桶的快照方法、装置和*** |
CN111158860A (zh) * | 2019-12-30 | 2020-05-15 | 咪咕文化科技有限公司 | 数据操作方法、电子设备及存储介质 |
CN111538864A (zh) * | 2020-03-25 | 2020-08-14 | 新华三技术有限公司合肥分公司 | 一种减少Buildrun消耗的方法及装置 |
CN112698956A (zh) * | 2021-01-19 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 一种数据对象处理方法、装置、设备及存储介质 |
CN112860487A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 一种卷影拷贝的方法、***、设备及介质 |
CN113535642A (zh) * | 2021-08-05 | 2021-10-22 | 统信软件技术有限公司 | 一种文件搜索方法及计算设备 |
CN115098447A (zh) * | 2022-07-18 | 2022-09-23 | 重庆紫光华山智安科技有限公司 | 文件恢复方法、装置、电子设备及可读存储介质 |
CN115292248A (zh) * | 2022-09-30 | 2022-11-04 | 中孚安全技术有限公司 | 一种基于多数据版本的数据清理方法、***及设备 |
WO2024078029A1 (zh) * | 2022-10-11 | 2024-04-18 | 华为技术有限公司 | 文件***管理方法、装置和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268270B (zh) * | 2013-05-10 | 2016-04-13 | 曙光信息产业(北京)有限公司 | 快照的管理方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072916B1 (en) * | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US20030093443A1 (en) * | 2001-11-15 | 2003-05-15 | Huxoll Vernon F. | System and method for creating online snapshots |
CN1266609C (zh) * | 2003-06-05 | 2006-07-26 | 联想(北京)有限公司 | 细粒度快照实现方法 |
US7440966B2 (en) * | 2004-02-12 | 2008-10-21 | International Business Machines Corporation | Method and apparatus for file system snapshot persistence |
CN100405310C (zh) * | 2005-07-12 | 2008-07-23 | 中国科学院计算技术研究所 | 一种快照***及方法 |
-
2007
- 2007-11-09 CN CNB2007101771355A patent/CN100541441C/zh not_active Expired - Fee Related
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299197B (zh) * | 2008-06-30 | 2011-09-28 | 无锡中星微电子有限公司 | 一种增删任务的方法和单元 |
CN103038767A (zh) * | 2010-07-30 | 2013-04-10 | 国际商业机器公司 | 用于文件克隆的数据共享 |
CN103038767B (zh) * | 2010-07-30 | 2016-01-27 | 国际商业机器公司 | 用于文件克隆的数据共享的方法和*** |
CN105843905B (zh) * | 2010-11-22 | 2019-06-11 | 日立数据管理有限公司 | 用于管理文件***中的文件***对象的设备和方法 |
CN105843905A (zh) * | 2010-11-22 | 2016-08-10 | 日立数据***工程英国有限公司 | 用于管理文件***中的文件***对象的设备和方法 |
CN102339321A (zh) * | 2011-11-09 | 2012-02-01 | 上海盛霄云计算技术有限公司 | 具有版本控制的网络文件***及方法 |
CN102799607A (zh) * | 2012-05-31 | 2012-11-28 | 新奥特(北京)视频技术有限公司 | 一种快照方式处理数据的方法 |
CN103473250B (zh) * | 2012-06-05 | 2016-08-17 | 国际商业机器公司 | 用于保存文件***节点的过去状态的方法与*** |
US9569458B2 (en) | 2012-06-05 | 2017-02-14 | International Business Machines Corporation | Preserving a state using snapshots with selective tuple versioning |
CN103473251B (zh) * | 2012-06-05 | 2017-03-01 | 国际商业机器公司 | 在使用处理器件的计算环境中提供使用选择性元组版本化的文件***快照的方法和*** |
US9747317B2 (en) | 2012-06-05 | 2017-08-29 | International Business Machines Corporation | Preserving past states of file system nodes |
CN103473251A (zh) * | 2012-06-05 | 2013-12-25 | 国际商业机器公司 | 在使用处理器件的计算环境中提供使用选择性元组版本化的文件***快照的方法和*** |
CN103473250A (zh) * | 2012-06-05 | 2013-12-25 | 国际商业机器公司 | 用于保存文件***节点的过去状态的方法与*** |
CN103336828A (zh) * | 2013-07-05 | 2013-10-02 | 深圳市康拓普信息技术有限公司 | 实时数据库读取及写入方法 |
CN103473277A (zh) * | 2013-08-27 | 2013-12-25 | 华为技术有限公司 | 文件***的快照方法和装置 |
CN103473277B (zh) * | 2013-08-27 | 2017-04-05 | 华为技术有限公司 | 文件***的快照方法和装置 |
CN103678040A (zh) * | 2013-12-06 | 2014-03-26 | 北京明朝万达科技有限公司 | 一种基于计算机***的快照和回退方法及*** |
CN104714755B (zh) * | 2013-12-13 | 2020-01-03 | 华为技术有限公司 | 一种快照管理方法及装置 |
CN104714755A (zh) * | 2013-12-13 | 2015-06-17 | 华为技术有限公司 | 一种快照管理方法及装置 |
CN105095015A (zh) * | 2014-05-13 | 2015-11-25 | 北京云巢动脉科技有限公司 | 一种磁盘快照的建立方法及装置 |
CN105095015B (zh) * | 2014-05-13 | 2018-02-23 | 北京云巢动脉科技有限公司 | 一种磁盘快照的建立方法及装置 |
CN105095016B (zh) * | 2014-05-16 | 2018-05-18 | 北京云巢动脉科技有限公司 | 一种磁盘快照回滚方法及装置 |
CN105095016A (zh) * | 2014-05-16 | 2015-11-25 | 北京云巢动脉科技有限公司 | 一种磁盘快照回滚方法及装置 |
CN104933133B (zh) * | 2015-06-12 | 2018-09-07 | 中国科学院计算技术研究所 | 分布式文件***中的元数据快照存储和访问方法 |
CN104933133A (zh) * | 2015-06-12 | 2015-09-23 | 中国科学院计算技术研究所 | 分布式文件***中的元数据快照存储和访问方法 |
CN106326040A (zh) * | 2016-08-27 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种快照元数据管理方法和装置 |
CN106547926A (zh) * | 2016-12-14 | 2017-03-29 | 北京华云网际科技有限公司 | 分布式块存储的快照树的根节点的优化方法和装置 |
CN107180092A (zh) * | 2017-05-15 | 2017-09-19 | 中国科学院上海微***与信息技术研究所 | 一种文件***的控制方法、装置及终端 |
CN107180092B (zh) * | 2017-05-15 | 2020-10-23 | 中国科学院上海微***与信息技术研究所 | 一种文件***的控制方法、装置及终端 |
CN107277111B (zh) * | 2017-05-19 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 一种集群数据处理方法、主节点、从节点和集群 |
CN107277111A (zh) * | 2017-05-19 | 2017-10-20 | 腾讯科技(深圳)有限公司 | 一种集群数据处理方法、主节点、从节点和集群 |
CN109308231A (zh) * | 2017-07-28 | 2019-02-05 | 中国石油化工股份有限公司 | 一种空间数据版本的管理方法 |
CN107526840A (zh) * | 2017-09-14 | 2017-12-29 | 郑州云海信息技术有限公司 | 文件***快照查询方法、装置及计算机可读存储介质 |
CN110018989B (zh) * | 2017-11-13 | 2021-05-18 | 华为技术有限公司 | 一种快照比对的方法和装置 |
WO2019091085A1 (zh) * | 2017-11-13 | 2019-05-16 | 华为技术有限公司 | 一种快照比对的方法和装置 |
CN110018989A (zh) * | 2017-11-13 | 2019-07-16 | 华为技术有限公司 | 一种快照比对的方法和装置 |
CN108829813A (zh) * | 2018-06-06 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种基于分布式存储***的文件快照方法及*** |
CN109358947A (zh) * | 2018-10-08 | 2019-02-19 | 郑州云海信息技术有限公司 | 一种虚拟机快照的实现方法及*** |
CN109445989A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种文件***数据备份方法及装置 |
CN110515543A (zh) * | 2019-08-02 | 2019-11-29 | 星辰天合(北京)数据科技有限公司 | 基于对象存储桶的快照方法、装置和*** |
CN110515543B (zh) * | 2019-08-02 | 2021-02-19 | 星辰天合(北京)数据科技有限公司 | 基于对象存储桶的快照方法、装置和*** |
CN111158860B (zh) * | 2019-12-30 | 2024-02-23 | 咪咕文化科技有限公司 | 数据操作方法、电子设备及存储介质 |
CN111158860A (zh) * | 2019-12-30 | 2020-05-15 | 咪咕文化科技有限公司 | 数据操作方法、电子设备及存储介质 |
CN111538864A (zh) * | 2020-03-25 | 2020-08-14 | 新华三技术有限公司合肥分公司 | 一种减少Buildrun消耗的方法及装置 |
CN112698956A (zh) * | 2021-01-19 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 一种数据对象处理方法、装置、设备及存储介质 |
CN112698956B (zh) * | 2021-01-19 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 一种数据对象处理方法、装置、设备及存储介质 |
CN112860487A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 一种卷影拷贝的方法、***、设备及介质 |
CN113535642A (zh) * | 2021-08-05 | 2021-10-22 | 统信软件技术有限公司 | 一种文件搜索方法及计算设备 |
CN115098447A (zh) * | 2022-07-18 | 2022-09-23 | 重庆紫光华山智安科技有限公司 | 文件恢复方法、装置、电子设备及可读存储介质 |
CN115292248B (zh) * | 2022-09-30 | 2023-01-03 | 中孚安全技术有限公司 | 一种基于多数据版本的数据清理方法、***及设备 |
CN115292248A (zh) * | 2022-09-30 | 2022-11-04 | 中孚安全技术有限公司 | 一种基于多数据版本的数据清理方法、***及设备 |
WO2024078029A1 (zh) * | 2022-10-11 | 2024-04-18 | 华为技术有限公司 | 文件***管理方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100541441C (zh) | 2009-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100541441C (zh) | 一种计算机文件***的快照创建、删除及修改方法 | |
US10254996B1 (en) | Fast migration of metadata | |
EP1696346B1 (en) | File system represented inside a database | |
US5519855A (en) | Summary catalogs | |
US5812130A (en) | Data management system and method for concurrent engineering | |
US8768977B2 (en) | Data management using writeable snapshots in multi-versioned distributed B-trees | |
CN100399327C (zh) | 管理文件***的逻辑版本的方法和数据存储*** | |
AU2018324425A1 (en) | Restoring a database using a fully hydrated backup | |
US20100146004A1 (en) | Method Of Creating Hierarchical Indices For A Distributed Object System | |
CN100498781C (zh) | 用附着属性存储逻辑文件***元数据的方法 | |
CN110209528B (zh) | 数据备份方法、装置、服务器以及存储介质 | |
CN102663076B (zh) | 文件数据处理方法 | |
KR20110079655A (ko) | 분산형 저장 시스템 내의 데이터의 원자 다중 변경 | |
US20060248128A1 (en) | Efficient mechanism for tracking data changes in a database system | |
US7620668B2 (en) | Authoritative and non-authoritative restore | |
CN111881223B (zh) | 数据管理方法、设备、***及存储介质 | |
CN101866305A (zh) | 支持数据查询和快速恢复的连续数据保护方法及*** | |
CN110209527B (zh) | 数据恢复方法、装置、服务器以及存储介质 | |
US11500817B2 (en) | Asynchronous deletion of large directories | |
US6457011B1 (en) | Method of updating a shared database in a computer network | |
Strauss et al. | Device transparency: a new model for mobile storage | |
Page Jr et al. | Management of Replicated Volume Location Data in the Ficus Replicated File System. | |
JP2006268456A (ja) | ファイル管理装置、ファイル管理方法、及びファイル管理プログラム | |
CN102693174B (zh) | 一种面向对象代理数据库约束的备份方法 | |
ZA200510092B (en) | File system represented inside a database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090916 |