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

文档序号:9217274阅读:来源:国知局
述快照统计文件,得到第一个快照时间晚于待更新的元数据的创建时间的快照文件;
[0022]所述步骤22)还包括:将更新前的元数据文件插入步骤212)所得到的快照文件的尾部。
[0023]其中,所述文件系统快照存储方法还包括:在步骤22)执行步骤:
[0024]23)执行元数据更新操作。
[0025]根据本发明的另一方面,提供了一种文件系统快照访问方法,所述文件系统包括:具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;其中所述快照统计文件记录了按照快照时间戳顺序排列的各个快照文件的索引;所述快照文件中记录起始有效时间小于等其快照时间戳,且大于前一快照时间戳的所有元数据,并且对于同一所述快照文件,其中元数据按照其结束有效时间进行排序;
[0026]所述文件系统快照访问方法包括下列步骤:
[0027]a)接收快照访问命令,获得待访问快照的目录树及时间戳;
[0028]b)遍历待访问快照的目录树对应的快照统计文件,查找其中快照时间戳不晚于待访问快照时间戳的所有快照文件的索引;
[0029]c)根据步骤b)所得的每条快照文件的索引访问相应的快照文件,找出其中结束有效时间晚于待访问快照时间戳的元数据记录项,将这些元数据记录项加入待访问快照元数据集中;
[0030]d)根据待访问快照元数据集恢复出待访问快照。
[0031]其中,所述步骤b)包括下列子步骤:
[0032]bl)访问所述目录树对应的快照统计文件,顺序遍历各个快照文件的索引;
[0033]b2)判断当前的作为快照文件索引的时间戳是否小于所要访问快照的时间戳,如果是,则认为当前的快照文件的索引命中,进入步骤c),否则跳转至步骤d)。
[0034]其中,对于同一所述快照文件,其中元数据按照其结束有效时间倒序排列;
[0035]所述步骤c)包括下列子步骤:
[0036]Cl)根据命中的快照文件索引的访问快照文件,从末尾开始遍历该快照文件中的元数据记录项;
[0037]c2)判断该当前元数据的结束有效时间是否晚于待访问快照时间戳,如果是,将该当前元数据加入待访问快照文件集,继续遍历下一个元数据,否则,停止本次遍历,返回步骤 bl)。
[0038]其中,所述步骤d)还包括:遍历所述待访问快照的目录树下的现存的各个元数据文件,将其中创建于待访问快照时间戳之前的元数据文件添加到所述待访问快照元数据集中,然后再根据新的待访问快照元数据集恢复出待访问快照。
[0039]与现有技术相比,本发明具有下列技术效果:
[0040]与传统的增量快照技术相比,本发明在保留存储空间开销较小优势的前提下,显著减小了快照访问的开销,提高了快照访问的效率。
【附图说明】
[0041]以下,结合附图来详细说明本发明的实施例,其中:
[0042]图1示出了传统增量快照存储结构的一个典型示例的示意图;
[0043]图2示出了本发明一个实施例中的实现快照功能的目录树存储结构示意图;
[0044]图3示出了图2实施例中的快照组织管理结构示意图;
[0045]图4示出了基于图3的快照组织管理结构的快照元数据添加的示意图;
[0046]图5示出了根据本发明的一个实施例提供的快照存储方法的流程图;
[0047]图6示出了根据本发明的一个实施例提供的快照访问方法的流程图;
[0048]图7示出了本发明一个实施例的存储结构的典型示例。
【具体实施方式】
[0049]图2示出了本发明一个实施例中的实现快照功能的目录树存储结构示意图。如图2所示,目录a (director a)存储了文件b,文件e,并且目录a下存在子目录c (directorc),子目录c存储了文件d。为了实现目录a的快照功能,目录a下还具有各个时刻的快照文件snap_tl_file和snap_t2_file,以及用于存储各个时刻快照文件索引的快照索引文件snap_statistics_file。相应地,子目录c下也具有各个时刻的快照文件snap_tl_file和snap_t2_file,以及用于存储各个时刻快照文件索引的快照索引文件snap_statistics_file。每个快照文件都用于存储所在目录下的相应快照时间戳的快照元数据。
[0050]发明人总结了快照元数据存在两个时间属性:起始有效时间starttime和结束有效时间endtime。目录中的任何一个元数据被更新时,该更新可以看作:修改前的元数据被删除,以及修改后的元数据被创建两个步骤,而这个元数据更新的时刻就是修改前的元数据的结束有效时间endtime,同时也是修改后的元数据的起始有效时间starttime。假设快照时间戳为snaptime,那么访问快照的本质即为获取所存储的元数据文件集中的符合快照访问条件的元数据文件,快照访问条件可以被总结为:starttime〈snaptime,即当前元数据文件在快照时间戳的时刻已经被创建,且endtime>snaptime,即当前元数据文件在快照时间戳的时刻尚未被删除。
[0051 ] 本实施例中,每个快照文件(也可称为快照目录文件或快照目录)内所存储的快照元数据(也可称为快照数据)的起始有效时间starttime均小于等该快照时刻,且均大于前一1决照时刻,也就是说,每个快照文件存储起始有效时间starttime在前一1决照时刻到当前快照时刻之间的快照元数据。
[0052]图3示出了图2实施例中基于时间顺序的快照存储结构示例。如图3所示,快照索引文件(用.snap表示)记录了多个快照文件的索引,其中快照文件用起始有效时间start_timel, start_time2, start_time3代表。而每个快照文件中,又按照快照元数据的结束有效时间对快照元数据cmetal,cmeta2,cmeta3等进行排序。这样,在快照存储结构中,快照元数据按照两个时间维度进行排序。相应地,为了实现正确的快照访问,快照元数据的添加也维护该顺序。
[0053]图4示出了图3实施例的快照文件中添加快照元数据的示例。对指定目录树创建快照后,该目录树中元数据的更新会触发快照元数据的保存,以保证相应时刻的快照可被恢复。参考图4,本实施例中,在保存快照元数据cmeta4时,首先根据快照元数据cmeta4的起始有效时间starttime找到对应的快照目录(即快照文件,图4中用写有start_time2的方框表示),然后将该快照元数据cmeta4直接添加到该目录的尾部。这样就能够在添加快照数据时保持上述基于时间顺序的快照存储结构。
[0054]图5示出了根据本发明的一个实施例提供的快照存储方法的流程图,包括下列步骤:
[0055]步骤101:服务器收到创建快照命令:.snap create pathwalko
[0056]步骤102:获得快照目录树pathwalk和快照时间戳snaptime,对pathwalk目录进行快照标记。在快照统计文件(即快照索引文件)中增加新快照时间戳snaptime这一记录,即将本次快照文件的索引加入快照统计文件中,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1