一种计算机文件系统的快照创建、删除及修改方法技术方案

技术编号:2830697 阅读:250 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种目录级计算机文件系统快照的创建方法,包括:确定需要创建快照的目录;当目录第一次创建快照时,将目录工作版本的根索引节点信息添加到快照集索引表中,更新最近一次创建或者删除快照集的时间点;分配一个新的索引节点作为所要创建的快照版本的根索引节点,并将工作版本的根索引节点的内容复制到新分配的索引节点中;将工作版本的写时拷贝链表复制到新创建快照的根索引节点上,然后清空工作版本的写时拷贝链表内容;将快照版本的根索引节点的快照创建时间设置为计算机系统的当前时间;将快照版本的根索引节点链接到目录的快照链表上。本发明专利技术还提供了目录级计算机文件系统快照的删除方法,以及目录工作版本修改方法。

【技术实现步骤摘要】

本专利技术涉及计算机文件系统的快照方法,特别涉及计算机文件系统的 快照方法。
技术介绍
计算机文件系统快照技术已经获得越来越广泛的关注,并在文件系统的 备份、版本维护等管理需求中得到应用。快照提供了计算机文件系统在过去 某个时间点的一致性印象,通过快照,用户可以实现对文件系统历史版本的 访问、以及将文件系统回滚到历史版本等操作。此外,作为一种普遍的手段, 快照还能够有效地帮助计算机文件系统管理软件完成在线的文件系统备份、 故障后快速恢复等数据保护及管理功能。在本地文件系统中,对快照的支持通常分为文件系统级別与文件级別。如ext3cow、 elephant这两种文件系统均在文件级别快照的基础上提供了文 件系统级别的快照支持,而在ZFS中则只支持文件系统级别/子文件系统级 别快照。在网络存储环境下,现有的分布式文件系统对快照的支持则限于文 件系统级别,如VxFS、 GPFS、 SANFS等。虽然在SANFS中,还支持基于子 文件系统的快照,但是子文件系统基本上可以看作独立的文件系统,所以本 质上仍然是基于文件系统级别的。文件系统级别的快照与对文件级别的快照都存在各自的优缺点。其中, 文件系统级别的快照存在如下缺点1、 影响范围大,在文件系统级别执行快照相关操作(创建/删除/访问) 时,会影响所有用户对正常文件系统的访问,特别在分布式环境下,客户端 和访问进程数量大大加剧了快照相关操作的影响范围。2、 缺乏灵活性,文件系统中并非所有的数据都具有同样的快照需求, 用户无法根据实际需求,对需要备份或保留版本的目录有选择地创建快照。3、 消耗大量的存储资源,对整个文件系统创建快照后,虽然采用C0W (写时拷贝,Copy On Write)技术可以降低创建耗时并避免相同数据的重复存储,但所有对文件系统的修改都进行COW仍然会导致存储资源的大量消 耗。而文件级别的快照则存在如下缺点1、 在文件级别进行快照操作时,快照通常釆用索引节点(inode)的版本 log及目录项中记录文件〈创建时间、删除时间〉的方式组织文件版本。因此 在对快照做删除操作时,需要遍历整个文件系统才能决定哪些资源被共享访 问,哪些资源可以被回收,删除快照的效率4艮低。2、 与文件系统级别的快照相比,文件级别的快照具有最广泛的灵活性, 但与此同时,也会带来由于灵活性所造成的维护成本问题。如在elephant 中允许用户为每个文件定制不同的快照维护策略,但如对整个文件系统中所 有文件进行策略定制,其管理和维护成本是相当高的。例如,管理员通常利 用第三方备份软件进行在线备份工作,需要备份的数据内容通常集中存放于 某些目录下的,如果需要管理员理解快照的策略,并根据备份需要进行配置, 则管理员的工作任务量和复杂度都会大大增加。综上所述,在现有技术中文件系统级别的快照存在快照粒度过大的缺 陷,而文件级别的快照又存在快照粒度过小的缺陷。
技术实现思路
因此,本专利技术的任务是克服现有的快照方法由于快照粒度大小的不适 当而产生的灵活性与资源利用率上的问题,从而给出 一 种可在快照使用中 的灵活性与资源利用率上取得一个较好平衡的快照方法。为了实现上述目的,本专利技术提供了 一种计算机文件系统快照的创建方 法,为计算机文件系统中的指定目录创建快照,将创建快照后的相应目录 称为快照集;所述快照的创建包括以下步骤步骤l-l)、在计算机文件系统中,确定需要创建快照的目录;步骤l-2)、判断所述目录是否创建过快照,若所述目录为第一次创建 快照,则将所述目录的工作版本的根索引节点信息添加到快照集索引表的 信息条目中,更新最近一次创建或者删除快照集的时间点为计算机系统的 当前时间,然后执行下一步,否则,直接执行下一步;步骤1-3)、分配一个新的索引节点作为所要创建的快照版本的根索引 节点,并将所述工作版本的根索引节点的内容复制到新分配的索引节点 中;步骤1-4、将所述工作版本的写时拷贝链表复制到新创建快照的根索 引节点上,然后将工作版本的写时拷贝链表内容清空;步骤1-5)、将所述的快照版本的根索引节点的快照创建时间设置为计 算机系统的当前时间;步骤1-6)、将所述的快照版本的根索引节点链接到所述目录的快照链 表上。上述技术方案中,所述的快照集索引表用于维护计算机文件系统中所 有快照集的索引信息。上述技术方案中,所述的最近一次创建或者删除快照集的时间点为整 个计算机文件系统中维护的 一个全局信息,所述的最近一次创建或者删除 快照集的时间点记录了最近一次快照集总数量发生变化的时间。上述技术方案中,所述的快照版本的根索引节点中包括有以下域值 快照创建时间、最近的一个旧版本索引、最近的一个新版本索引,通过最 近的一个旧版本索引和最近的一个新版本索引,可将对应快照集中所有版 本通过将根索引节点按照时间顺序链接成一个快照链表。本专利技术还提供了 一种计算机文件系统快照的删除方法,为计算机文件 系统中的指定目录删除指定的快照版本,包括以下步骤步骤2-l)、在计算机文件系统中,在指定目录的快照链表中选择要删 除的快照版本;步骤2-2)、查找所要删除的快照版本的相邻新版本,在所述的相邻新 版本上查询写时拷贝链表,得到在相邻新版本以及后续版本中不会被使用 的块或索引节点的信息;所述的信息包括类型,块号或索引节点号,出生 时间;步骤2-3)、查找所要删除快照版本的相邻旧版本,从所述的相邻旧版 本中找到所记录的旧版本快照创建时间,若所要删除的快照版本不存在相 邻旧版本,则所要查找的旧版本快照创建时间为0;步骤2-4 )、将所述的相邻新版本的写时拷贝链表中的块或索引节点的 出生时间逐个与步骤2-3)的查询结果进行比较,若一个块或索引节点的 出生时间大于所述的查询结果,则在写时拷贝链表中删除该块或索引节点 的信息,并回收对应的块或索引节点资源;步骤2-5 )、将待删除快照版本的写时拷贝链表合并到相邻新版本的写 时拷贝链表中;步骤2-6)、将待删除快照版本从快照链表中移出,并将代表相邻新版 本的根索引节点与代表相邻旧版本的根索引节点相连。上迷技术方案中,所述的写时拷贝链表对应一个快照版本,在所述的 写拷贝链表中记录着所对应的快照版本因修改而引发写时拷贝后,在本版本及后续的版本中不会被使用的块或索引节点的信息,所述的各块或各索 引节点信息均分别通过三元组<类型,块号或索引节点号,出生时间>进行 表述。本专利技术又提供了一种计算机文件系统快照的目录工作版本修改方法,包括以下步骤步骤3-1 )、在计算机文件系统中,选取待修改节点所对应的索引节点;步骤3-2 )、根据所述索引节点的时间戳与最近一次创建或者删除快照 集的时间点,对所述索引节点中的快照集指针有效性进行判断,若所述的 快照集指针有效,则执行下一步,否则,执行步骤3-4);步骤3-3 )、比较所述快照集指针所指向的快照集中的最新快照版本的 创建时间,以及待修改节点的出生时间,根据比较结果,决定在结束修改 过程前是否要进行写时拷贝操作;如果不需要,则直接修改待修改节点并 结束修改过程;如果需要进行写时拷贝操作,则执行写时拷贝、修改写时 拷贝出的新节点、扩充写时拷贝链表后,最后还需向上追溯其在元素目录 树中的父节点,重新执行本步骤;步骤3-4)、更新快照集指本文档来自技高网
...

【技术保护点】
一种计算机文件系统快照的创建方法,为计算机文件系统中的指定目录创建快照,将创建快照后的相应目录称为快照集;所述快照的创建包括以下步骤:步骤1-1)、在计算机文件系统中,确定需要创建快照的目录;步骤1-2)、判断所述目录是否创 建过快照,若所述目录为第一次创建快照,则将所述目录的工作版本的根索引节点信息添加到快照集索引表的信息条目中,更新最近一次创建或者删除快照集的时间点为计算机系统的当前时间,然后执行下一步,若所述目录并非第一次创建快照,直接执行下一步; 步骤1-3)、分配一个新的索引节点作为所要创建的快照版本的根索引节点,并将所述工作版本的根索引节点的内容复制到新分配的索引节点中;步骤1-4)、将所述工作版本的写时拷贝链表复制到新创建快照的根索引节点上,然后将工作版本的写时拷贝链表 内容清空;步骤1-5)、将所述的快照版本的根索引节点的快照创建时间设置为计算机系统的当前时间;步骤1-6)、将所述的快照版本的根索引节点链接到所述目录的快照链表上。

【技术特征摘要】
1、一种计算机文件系统快照的创建方法,为计算机文件系统中的指定目录创建快照,将创建快照后的相应目录称为快照集;所述快照的创建包括以下步骤步骤1-1)、在计算机文件系统中,确定需要创建快照的目录;步骤1-2)、判断所述目录是否创建过快照,若所述目录为第一次创建快照,则将所述目录的工作版本的根索引节点信息添加到快照集索引表的信息条目中,更新最近一次创建或者删除快照集的时间点为计算机系统的当前时间,然后执行下一步,若所述目录并非第一次创建快照,直接执行下一步;步骤1-3)、分配一个新的索引节点作为所要创建的快照版本的根索引节点,并将所述工作版本的根索引节点的内容复制到新分配的索引节点中;步骤1-4)、将所述工作版本的写时拷贝链表复制到新创建快照的根索引节点上,然后将工作版本的写时拷贝链表内容清空;步骤1-5)、将所述的快照版本的根索引节点的快照创建时间设置为计算机系统的当前时间;步骤1-6)、将所述的快照版本的根索引节点链接到所述目录的快照链表上。2、 根据权利要求1所述的计算机文件系统快照的创建方法,其特征 在于,所述的快照集索引表用于维护计算机文件系统中所有快照集的索引<吕息。3、 根据权利要求1所述的计算机文件系统快照的创建方法,其特征 在于,所述的最近一次创建或者删除快照集的时间点为整个计算机文件系 统中维护的一个全局信息,所述的最近一次创建或者删除快照集的时间点 记录了最近一次快照集总数量发生变化的时间。4、 根据权利要求1所述的计算机文件系统快照的创建方法,其特征 在于,所述的快照版本的根索引节点中包括有以下阈值快照创建时间、 最近的一个旧版本索引、最近的一个新版本索引,通过最近的一个旧版本 索引和最近的一个新版本索引,可将对应快照集中所有版本通过将根索引 节点按照时间顺序链接成一个快照链表。5、 一种计算机文件系统快照的删除方法,为计算机文件系统中的指定目录删除指定的快照版本,包括以下步骤步骤2-l)、在计算机文件系统中,在指定目录的快照链表中选择要删 除的快照版本;步骤2-2)、查找所要删除的快照版本的相邻新版本,在所述的相邻新 版本上查询写时拷贝链表,得到在相邻新版本以及后续版本中不会被使用 的块或索引节点的信息;所述的信息包括类型,块号或索引节点号,出生 时间;步骤2-3)、查找所要删除快照版本的相邻旧版本,从所述的相邻旧版 本中找到所记录的旧版本快照创建时间,若所要删除的快照版本不存在相 邻旧版本,则所要查找的旧版本快照创建时间为0;步骤2-4 )、将所述的相邻新版本的写时拷贝链表中的块或索引节点的 出生时间逐个与步骤2-3)的查询结果进行比较,若一个块或索引节点的 出生时间大于所述的查询结果,则在写时拷贝链表中删除该块或索引节点 的信息,并回收对应的块或索引节点资源;步骤2-5 )、将待删除快照版本的写时拷贝链表合并到相邻新版本的写 时拷贝链表中;步骤2-6)、将待删除快照版本从快照链表中移出,并将代表相邻新版 本的根索引节点与代表相邻旧版本的根索引节点相连。6、 根据权利要求5所述的计算机文件系统快照的删除方法,其特征 在于,所述的写时拷贝链表对应一个快照版本,在所述的写拷贝链表中记 录着所对应的快照版本因修改而引发写时拷贝后,在本版本及后续的版本 中不会被使用的块或索引节点的信息,所述的各块或各索引节点信息均分 别通过三元组<类型,块号/索引节点号,出生时间>...

【专利技术属性】
技术研发人员:董欢庆刘浏张敬亮张军伟张建刚
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1