一种快照管理方法和装置制造方法及图纸

技术编号:9667820 阅读:143 留言:0更新日期:2014-02-14 06:10
本发明专利技术的实施例提供一种快照管理方法和装置,涉及计算机领域,能够对目录快照和文件系统快照进行统一管理,并解决了目录快照回滚难以实现以及目录快照删除复杂度高、效率低的问题。其方法为:获取快照管理命令,并根据快照管理命令,协同目录快照映射表,在快照管理链表上对类型包括文件系统快照、目录快照在内的快照及与快照对应的块修改日志链表执行相应的快照管理操作。本发明专利技术实施例用于文件系统快照与目录快照的管理。

【技术实现步骤摘要】
一种快照管理方法和装置
本专利技术涉及计算机领域,尤其涉及一种快照管理方法和装置。
技术介绍
快照(SnapShot)是某个数据集在某一特定时刻的镜像,也称为即时拷贝,它是这个数据集的一个完整可用的副本。对于文件系统来说,文件系统快照是文件系统的一个即时拷贝,它包含了文件系统在快照生成时刻所有的信息,本身也是一个完整可用的副本。为了方便文件系统快照的实现,有很多成熟的方法,其中的一种方法是采用ROW(RedirectonWrite,写时重定向)技术。在这种方法中,当数据被重写时,将会为更新过的数据选择一个新的位置;同时,指向该数据的指针也将被重新映射,指向更新后的数据。目录快照是一类特殊的快照,它是文件系统中某指定目录在某一时刻的镜像或副本,包含了该目录在快照时刻所有的信息。目录快照在备份和远程复制中有重要的作用。ROW型文件系统在文件系统级快照的生成和管理上很方便,但一些ROW型文件系统本身不支持目录快照,而有些即使支持目录快照,但在目录级快照的实现上还存在很多缺点和不足之处。现有技术中对ROW型文件系统中目录进行快照,主要有以下两种方法。第一种是将目录快照当做是文件系统中的一个特殊文件,以文件的方式和快照私有的方式配合来对目录快照进行管理。第二种是利用基于块级的快照生成方法,将目录对应的所有数据块拷贝到快照卷中进行管理。但是上述现有方法是将目录快照做为一个单独的对象来进行管理,与文件系统快照之间没有必然联系和有效融合,这样目录快照和文件系统快照就必须用两种不同的管理方法,增加了管理的复杂度;且现有方法都只能满足目录快照创建和删除的基本需求,在目录快照回滚时由于文件系统下文件及目录之间相互的影响,实现困难且代价大;同时,因为在进行目录快照的删除时需要遍历数据,算法复杂,效率低。
技术实现思路
本专利技术的实施例提供一种目录快照的方法和装置,能够对目录快照和文件系统快照进行统一管理,并解决了目录快照回滚难以实现以及目录快照删除复杂度高、效率低的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供一种快照管理方法,所述方法包括:获取快照管理命令,所述快照管理命令包括创建命令、删除命令和回滚命令;根据所述快照管理命令在快照管理链表上执行与所述快照管理命令对应的快照管理操作,所述快照管理链表上包括至少一个快照项,每个快照项包括一个快照和与所述快照对应的块修改日志链表,所述快照的类型包括文件系统快照或目录快照。结合第一方面,在第一种可能的实现方式中,当所述快照管理命令为所述创建命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作包括:在所述快照管理链表上添加快照项,所述快照项包括目录快照和与所述目录快照对应的块修改日志链表;在目录快照映射表中添加所述目录快照所属目录对应的键值对或修改所述键值对;所述键值对包括所述目录快照所属目录的目录号、目录名以及快照数。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述在目录快照映射表中添加所述目录快照所属目录对应的键值对或修改所述键值对包括:若所述键值对不存在,则在所述目录快照映射表中添加所述键值对;若所述键值对已存在,则将所述键值对中的快照数加1。结合第一方面,在第三种可能的实现方式中,当所述快照管理命令为所述删除命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作包括:获取所述删除命令指定的目录快照的块修改日志链表;遍历所述块修改日志链表中的所有键值对,将满足数据释放条件的键值对所对应的数据块释放,并将所述满足数据释放条件的键值对删除。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,当所述快照管理命令为所述删除命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作还包括:若所述块修改日志链表中的所有键值对都已被删除,则判断所述删除命令指定的目录快照是否为所述目录快照所属目录的最后一个快照;若所述删除命令指定的目录快照为所述目录快照所属目录的最后一个快照,则将所述目录快照所属目录在目录快照映射表中对应的键值对删除,所述键值对包括所述目录快照所属目录的目录号、目录名以及快照数;若所述删除命令指定的目录快照不是所述目录快照所属目录的最后一个快照,则将所述目录快照所属目录在目录快照映射表中对应的键值对中的快照数减1。结合第一方面,在第五种可能的实现方式中,所述快照管理命令为所述回滚命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作包括:获取所述回滚命令指定的第一索引节点,所述第一索引节点为所述回滚命令指定的目录快照的索引节点;遍历所述第一索引节点的条目项,并对每个条目项进行回填处理;所述对每个条目项进行回填处理包括:判断条目项对应的索引节点号是否已被当前系统使用;若所述条目项对应的索引节点号已被当前系统使用,则为所述条目项重新分配索引节点号,并根据重新分配的索引节点号重构所述条目项,而后将重构后的条目项回填至所述目录快照所属目录的索引节点;若所述条目项对应的索引节点号未被当前系统使用,则直接将所述条目项回填到所述目录快照所属目录的索引节点中,并判断所述条目项的类型;若所述条目项为目录类型条目项,则对所述目录类型条目项的索引节点递归执行与所述第一索引节点相同的上述回滚操作;若所述条目项不为目录类型条目项,则判断所述条目项是否为所述第一索引节点中的最后一个条目项,若所述条目项不是所述第一索引节点中的最后一个条目项,则对所述条目项的下一个条目项进行所述回填处理;若所述条目项是所述第一索引节点中的最后一个条目项,则对所述目录快照所属目录在所述目录快照映射表中的键值对进行修改。结合第一方面,在第六种可能的实现方式中,所述块修改日志链表包括写时重定向(RedirectOnWrite,ROW)型日志链表、删除型日志链表和截断型日志链表;所述ROW型日志链表中的键值对包括事务号、块起始地址、块大小和块对应的目录快照所属目录的目录号;所述删除型日志链表中的键值对包括删除的文件号、事务号和删除的文件对应的目录快照所属目录的目录号;所述截断型日志链表中的键值对包括截断的文件号、事务号和截断的文件对应的目录快照所属目录的目录号。结合第一方面,在第七种可能的实现方式中,所述文件系统快照还包括:内部快照,所述内部快照为根据预设策略生成的所述文件系统快照;所述预设策略包括执行预设门限次数的事务后生成,或在预设时间点生成。第二方面,提供一种快照管理装置,所述装置包括:命令获取单元,用于获取快照管理命令,所述快照管理命令包括创建命令、删除命令和回滚命令;快照管理单元,用于根据所述快照管理命令在快照管理链表上执行与所述快照管理命令对应的快照管理操作,所述快照管理链表上包括至少一个快照项,每个快照项包括一个快照和与所述快照对应的块修改日志链表,所述快照的类型包括文件系统快照或目录快照。结合第二方面,在第一种可能的实现方式中,所述快照管理单元包括创建单元,所述创建单元具体用于:在所述快照管理链表上添加快照项,所述快照项包括目录快照和与所述目录快照对应的块修改日志链表;在目录快照映射表中添加所述目录快照所属目录对应的键值对或修改所述键值对;所述键值对包括所述目录快照所属目录的目录号、目录名以及快照数。结合第本文档来自技高网
...
一种快照管理方法和装置

【技术保护点】
一种快照管理方法,其特征在于,所述方法包括:获取快照管理命令,所述快照管理命令包括创建命令、删除命令和回滚命令;根据所述快照管理命令在快照管理链表上执行与所述快照管理命令对应的快照管理操作,所述快照管理链表上包括至少一个快照项,每个快照项包括一个快照和与所述快照对应的块修改日志链表,所述快照的类型包括文件系统快照或目录快照。

【技术特征摘要】
1.一种快照管理方法,其特征在于,所述方法包括:获取快照管理命令,所述快照管理命令包括创建命令、删除命令和回滚命令;根据所述快照管理命令在快照管理链表上执行与所述快照管理命令对应的快照管理操作,所述快照管理链表上包括至少一个快照项,每个快照项包括一个快照和与所述快照对应的块修改日志链表,所述快照的类型包括文件系统快照或目录快照,所述目录快照是文件系统中某指定目录在某一时刻的镜像或副本;当所述快照管理命令为所述回滚命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作包括:获取所述回滚命令指定的第一索引节点,所述第一索引节点为所述回滚命令指定的目录快照的索引节点;遍历所述第一索引节点的条目项,并对每个条目项进行回填处理;所述对每个条目项进行回填处理包括:判断条目项对应的索引节点号是否已被当前系统使用;若所述条目项对应的索引节点号已被当前系统使用,则为所述条目项重新分配索引节点号,并根据重新分配的索引节点号重构所述条目项,而后将重构后的条目项回填至所述目录快照所属目录的索引节点;若所述条目项对应的索引节点号未被当前系统使用,则直接将所述条目项回填到所述目录快照所属目录的索引节点中,并判断所述条目项的类型;若所述条目项为目录类型条目项,则对所述目录类型条目项的索引节点递归执行与所述第一索引节点相同的上述回滚操作;若所述条目项不为目录类型条目项,则判断所述条目项是否为所述第一索引节点中的最后一个条目项,若所述条目项不是所述第一索引节点中的最后一个条目项,则对所述条目项的下一个条目项进行所述回填处理;若所述条目项是所述第一索引节点中的最后一个条目项,则对所述目录快照所属目录在所述目录快照映射表中的键值对进行修改。2.根据权利要求1所述的方法,其特征在于,当所述快照管理命令为所述创建命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作包括:在所述快照管理链表上添加快照项,所述快照项包括目录快照和与所述目录快照对应的块修改日志链表;在目录快照映射表中添加所述目录快照所属目录对应的键值对或修改所述键值对;所述键值对包括所述目录快照所属目录的目录号、目录名以及快照数。3.根据权利要求2所述的方法,其特征在于,所述在目录快照映射表中添加所述目录快照所属目录对应的键值对或修改所述键值对包括:若所述键值对不存在,则在所述目录快照映射表中添加所述键值对;若所述键值对已存在,则将所述键值对中的快照数加1。4.根据权利要求1所述的方法,其特征在于,当所述快照管理命令为所述删除命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作包括:获取所述删除命令指定的目录快照的块修改日志链表;遍历所述块修改日志链表中的所有键值对,将满足数据释放条件的键值对所对应的数据块释放,并将所述满足数据释放条件的键值对删除。5.根据权利要求4所述的方法,其特征在于,当所述快照管理命令为所述删除命令时,所述在快照管理链表上执行与所述快照管理命令对应的快照管理操作还包括:若所述块修改日志链表中的所有键值对都已被删除,则判断所述删除命令指定的目录快照是否为所述目录快照所属目录的最后一个快照;若所述删除命令指定的目录快照为所述目录快照所属目录的最后一个快照,则将所述目录快照所属目录在目录快照映射表中对应的键值对删除,所述键值对包括所述目录快照所属目录的目录号、目录名以及快照数;若所述删除命令指定的目录快照不是所述目录快照所属目录的最后一个快照,则将所述目录快照所属目录在目录快照映射表中对应的键值对中的快照数减1。6.根据权利要求1所述的方法,其特征在于,所述块修改日志链表包括写时重定向ROW型日志链表、删除型日志链表和截断型日志链表;所述ROW型日志链表中的键值对包括事务号、块起始地址、块大小和块对应的目录快照所属目录的目录号;所述删除型日志链表中的键值对包括删除的文件号、事务号和删除的文件对应的目录快照所属目录的目录号;所述截断型日志链表中的键值对包括截断的文件号、事务号和截断的文件对应的目录快照所属目录的目录号。7.根据权利要求1所述的方法,其特征在于,所述文件系统快照还包括:内部快照,所...

【专利技术属性】
技术研发人员:张森
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1