分布式文件系统中的元数据快照存储和访问方法

文档序号:9217274阅读:463来源:国知局
分布式文件系统中的元数据快照存储和访问方法
【技术领域】
[0001]本发明涉及分布式文件系统技术领域,具体地说,本发明涉及一种分布式文件系统中的元数据快照存储方法和快照访问方法。
【背景技术】
[0002]二十一世纪以来,随着信息全球化的发展和电子商务、社交网络等新兴网络应用的普及,从社交娱乐到医疗交通等各领域都出现了数据爆炸的现象。报告显示,目前全球网民总数已达24亿,Facebook每天处理25亿条内容,超过500TB数据,而twitter每天产生2亿条信息。数据的爆炸式增长使得分布式文件系统逐渐代替本地文件系统成为企业的基本数据存储方式,同时也对存储系统的数据安全性提出了更高的要求。越来越多的企业将其业务数据进行数字化存储,数据信息成为了企业的重要资源和核心竞争力,数据的丢失或破坏必然会给企业造成巨大的损失。特别是元数据,作为文件系统的重要组成部分,其操作在系统整体1操作中超过50%,其安全保护是系统数据保护中非常重要的一部分。
[0003]快照技术可以实现在线数据备份和恢复,在存储系统中具有广泛的应用前景。快照存储结构主要有以下三种。第一种是目录树结构,对快照建立独立的目录树,不同的快照由唯一的根节点确定,这种结构的优点在于快照间不存在依赖关系,快照的访问开销等同于系统服务数据的访问开销。然而该结构中叶子节点的更新导致上层链路所有数据的拷贝,导致空间开销极大。
[0004]第二种是多版本B树结构,多版本B树是B树的变形,在传统B树的基础上对每项数据添加描述数据有效期的起始时间属性in_vers1n和终止时间属性del_vers1n,通过将时间属性添加到key值中保证不同版本的数据具有唯一的键值,以此实现同一颗树中多版本数据的存储。多版本B树的快照存储结构空间开销低、快照访问效率高,然而该方案中将所有数据共同存储,当系统数据量增多时,正常查找、遍历操作效率变低。同时该结构要求下层文件系统使用多版本B树进行元数据的存储,然而目前基于B树的文件系统并不主流,导致该方案的可移植性较差。
[0005]第三种是日志结构,使用日志记录元数据信息,通过将日志回滚到特定时刻获得快照。目前,基于日志结构的快照技术的实现方法主要为增量快照,它通过快照间共享数据减少了空间开销。然而增量快照间具有数据共享关系,要获得所指定快照对应的元数据集合,需要遍历多个快照分别确定所遍历的所有文件是否属于所指定快照,所以访问开销较大。特别是分布式系统往往比本地系统支持更长时间的运行,具有数据共享关系的快照数量也会更多,这往往会导致访问开销过大,严重影响数据丢失时的恢复效率。
[0006]为便于理解,图1示出了传统增量快照存储结构的一个典型示例的示意图。该典型示例中,时间轴由时刻tl向t4推进,在tl,t2,t3时刻,分别创建一次快照,分别是snap_tl、snap_t2、snap_t3。假设文件系统中的初始元数据文件有fl、f2、f3,在tl和t2之间发生第一次元数据操作,f3被删除,f4, f5被创建,在t2和t3之间发生第二次元数据操作,f2, f5被删除,f6被创建,在t3和t4之间发生第三次元数据操作,Π,f6被删除,f7被创建。基于传统的增量快照存储方案,在时刻tl创建快照snap_tl,此时创建相应的snap_tl目录,该目录初始为空。此后,当元数据文件要被删除或修改时,触发该元数据文件存储到snap_tl目录,在图1的示例中,发生第一次元数据操作时f3被存储到snap_tl目录。时刻t2创建快照snap_t2,此时创建相应的snap_t2目录,该目录也是初始为空,此后,元数据的更新操作触发所要删除的元数据文件存储到snap_t2目录,图1的示例中,发生第二次元数据操作时,f2、f5被存储到snap_t2目录。时刻t3创建快照snap_t3,此时创建相应的snap_t3目录,该目录也是初始为空,此后,元数据在被更新之前,会被存储到snap_t3目录,如图1所示,发生第三次元数据操作时,fl、f6被存储到snap_t3目录。最后,在时刻t4时,系统中所实际存储的数据为f4,f7。
[0007]访问快照的过程实际上就是得到快照时刻的数据集合的过程。仍然通过图1的示例来介绍访问快照的过程。在访问快照snap_tl时,找到snap_tl目录,tl时刻之后所有快照的相应目录(即snap_t2目录和snap_t3目录),以及当前的系统服务数据(即snap_t4时刻下的目录树)作为待查找目录,然后分别遍历待查找目录(即snap_tl目录、snap_t2目录、snap_t3目录以及snap_t4时刻下的元数据文件集合)中的所有元数据文件,判断所遍历元数据文件的创建时间是否早于快照时间tl,如果是,则其属于tl时刻的快照,否则,不属于tl时刻的快照。这样就能得到tl时刻的数据集合,即fl,f2, f3o类似地,可以通过遍历所有快照时刻之后的目录,恢复出t2时刻和t3时刻的快照,此处不再赘述。
[0008]从上述典型示例中可以看出,传统的增量快照方案不需要在每次快照中存储快照时刻的所有数据,因此能够减少存储空间的开销,然而快照间具有数据共享关系,为了获得单次快照对应的数据集合需要遍历多个快照以确定所遍历的元数据文件是否属于本次快照,导致访问开销较大。特别是分布式系统往往比本地系统支持更长时间的运行,快照的数量也会更多,访问开销大的问题就变得更加严重,影响数据丢失时的恢复效率。

【发明内容】

[0009]因此,本发明的任务是提供一种能够克服现有技术上述缺陷的元数据快照解决方案。
[0010]根据本发明的一个方面,提供了一种文件系统快照存储方法,所述文件系统包括具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;
[0011]所述文件系统快照存储方法包括下列步骤:
[0012]I)创建新快照后,维护所述快照统计文件,使得所述快照统计文件记录下按照快照时间戳顺序排列的各个快照文件的索引;
[0013]2)维护各个快照文件,使得每个所述快照文件中记录起始有效时间小于等于其时间戳,且大于前一快照时间戳的所有元数据,并且同一所述快照文件中所记录的元数据按照其结束有效时间排序。
[0014]其中,所述步骤I)还包括:接收指定目录树和时间戳的创建快照命令,在所指定目录树的快照统计文件末尾增加本次快照时间戳的记录,并将该记录作为本次快照对应的快照文件的索引。
[0015]其中,所述步骤2)还包括:在具有快照标记的目录树中,任意元数据更新时,将更新前的元数据保存到它所对应的快照文件中。
[0016]其中,所述步骤2)包括下列子步骤:
[0017]21)在具有快照标记的目录树中,任意元数据更新时,根据将更新前的元数据的起始有效时间找到该元数据所对应的快照文件;
[0018]22)根据当前时刻确定所述更新前的元数据的结束有效时间,并将所述更新前的元数据插入到步骤21)所找到的快照文件中。
[0019]其中,所述步骤21)包括下列子步骤:
[0020]211)在具有快照标记的目录树中,任意元数据更新时,访问该目录树所对应的快照统计文件;
[0021]212)依序遍历所
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1