CN104933133A - 分布式文件***中的元数据快照存储和访问方法 - Google Patents

分布式文件***中的元数据快照存储和访问方法 Download PDF

Info

Publication number
CN104933133A
CN104933133A CN201510325206.6A CN201510325206A CN104933133A CN 104933133 A CN104933133 A CN 104933133A CN 201510325206 A CN201510325206 A CN 201510325206A CN 104933133 A CN104933133 A CN 104933133A
Authority
CN
China
Prior art keywords
snapshot
metadata
snap
file
document
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
Application number
CN201510325206.6A
Other languages
English (en)
Other versions
CN104933133B (zh
Inventor
刘雅琪
邢晶
霍志刚
孙凝晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yinglian Information Technology Co ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201510325206.6A priority Critical patent/CN104933133B/zh
Publication of CN104933133A publication Critical patent/CN104933133A/zh
Application granted granted Critical
Publication of CN104933133B publication Critical patent/CN104933133B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种文件***快照存储方法,文件***包括具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;所述快照存储方法包括:1)创建新快照后,使得所述快照统计文件记录下按照快照时间戳顺序排列的各个快照文件的索引;2)维护各个快照文件,使得每个所述快照文件中记录起始有效时间小于等于其时间戳,且大于前一快照时间戳的所有元数据,并且同一所述快照文件中所记录的元数据按照其结束有效时间排序。本发明还提供了相应的文件***快照访问方法。与传统的增量快照技术相比,本发明在保留存储空间开销较小优势的前提下,显著减小了快照访问的开销,提高了快照访问的效率。

Description

分布式文件***中的元数据快照存储和访问方法
技术领域
本发明涉及分布式文件***技术领域,具体地说,本发明涉及一种分布式文件***中的元数据快照存储方法和快照访问方法。
背景技术
二十一世纪以来,随着信息全球化的发展和电子商务、社交网络等新兴网络应用的普及,从社交娱乐到医疗交通等各领域都出现了数据***的现象。报告显示,目前全球网民总数已达24亿,Facebook每天处理25亿条内容,超过500TB数据,而twitter每天产生2亿条信息。数据的***式增长使得分布式文件***逐渐代替本地文件***成为企业的基本数据存储方式,同时也对存储***的数据安全性提出了更高的要求。越来越多的企业将其业务数据进行数字化存储,数据信息成为了企业的重要资源和核心竞争力,数据的丢失或破坏必然会给企业造成巨大的损失。特别是元数据,作为文件***的重要组成部分,其操作在***整体IO操作中超过50%,其安全保护是***数据保护中非常重要的一部分。
快照技术可以实现在线数据备份和恢复,在存储***中具有广泛的应用前景。快照存储结构主要有以下三种。第一种是目录树结构,对快照建立独立的目录树,不同的快照由唯一的根节点确定,这种结构的优点在于快照间不存在依赖关系,快照的访问开销等同于***服务数据的访问开销。然而该结构中叶子节点的更新导致上层链路所有数据的拷贝,导致空间开销极大。
第二种是多版本B树结构,多版本B树是B树的变形,在传统B树的基础上对每项数据添加描述数据有效期的起始时间属性in_version和终止时间属性del_version,通过将时间属性添加到key值中保证不同版本的数据具有唯一的键值,以此实现同一颗树中多版本数据的存储。多版本B树的快照存储结构空间开销低、快照访问效率高,然而该方案中将所有数据共同存储,当***数据量增多时,正常查找、遍历操作效率变低。同时该结构要求下层文件***使用多版本B树进行元数据的存储,然而目前基于B树的文件***并不主流,导致该方案的可移植性较差。
第三种是日志结构,使用日志记录元数据信息,通过将日志回滚到特定时刻获得快照。目前,基于日志结构的快照技术的实现方法主要为增量快照,它通过快照间共享数据减少了空间开销。然而增量快照间具有数据共享关系,要获得所指定快照对应的元数据集合,需要遍历多个快照分别确定所遍历的所有文件是否属于所指定快照,所以访问开销较大。特别是分布式***往往比本地***支持更长时间的运行,具有数据共享关系的快照数量也会更多,这往往会导致访问开销过大,严重影响数据丢失时的恢复效率。
为便于理解,图1示出了传统增量快照存储结构的一个典型示例的示意图。该典型示例中,时间轴由时刻t1向t4推进,在t1,t2,t3时刻,分别创建一次快照,分别是snap_t1、snap_t2、snap_t3。假设文件***中的初始元数据文件有f1、f2、f3,在t1和t2之间发生第一次元数据操作,f3被删除,f4,f5被创建,在t2和t3之间发生第二次元数据操作,f2,f5被删除,f6被创建,在t3和t4之间发生第三次元数据操作,f1,f6被删除,f7被创建。基于传统的增量快照存储方案,在时刻t1创建快照snap_t1,此时创建相应的snap_t1目录,该目录初始为空。此后,当元数据文件要被删除或修改时,触发该元数据文件存储到snap_t1目录,在图1的示例中,发生第一次元数据操作时f3被存储到snap_t1目录。时刻t2创建快照snap_t2,此时创建相应的snap_t2目录,该目录也是初始为空,此后,元数据的更新操作触发所要删除的元数据文件存储到snap_t2目录,图1的示例中,发生第二次元数据操作时,f2、f5被存储到snap_t2目录。时刻t3创建快照snap_t3,此时创建相应的snap_t3目录,该目录也是初始为空,此后,元数据在被更新之前,会被存储到snap_t3目录,如图1所示,发生第三次元数据操作时,f1、f6被存储到snap_t3目录。最后,在时刻t4时,***中所实际存储的数据为f4,f7。
访问快照的过程实际上就是得到快照时刻的数据集合的过程。仍然通过图1的示例来介绍访问快照的过程。在访问快照snap_t1时,找到snap_t1目录,t1时刻之后所有快照的相应目录(即snap_t2目录和snap_t3目录),以及当前的***服务数据(即snap_t4时刻下的目录树)作为待查找目录,然后分别遍历待查找目录(即snap_t1目录、snap_t2目录、snap_t3目录以及snap_t4时刻下的元数据文件集合)中的所有元数据文件,判断所遍历元数据文件的创建时间是否早于快照时间t1,如果是,则其属于t1时刻的快照,否则,不属于t1时刻的快照。这样就能得到t1时刻的数据集合,即f1,f2,f3。类似地,可以通过遍历所有快照时刻之后的目录,恢复出t2时刻和t3时刻的快照,此处不再赘述。
从上述典型示例中可以看出,传统的增量快照方案不需要在每次快照中存储快照时刻的所有数据,因此能够减少存储空间的开销,然而快照间具有数据共享关系,为了获得单次快照对应的数据集合需要遍历多个快照以确定所遍历的元数据文件是否属于本次快照,导致访问开销较大。特别是分布式***往往比本地***支持更长时间的运行,快照的数量也会更多,访问开销大的问题就变得更加严重,影响数据丢失时的恢复效率。
发明内容
因此,本发明的任务是提供一种能够克服现有技术上述缺陷的元数据快照解决方案。
根据本发明的一个方面,提供了一种文件***快照存储方法,所述文件***包括具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;
所述文件***快照存储方法包括下列步骤:
1)创建新快照后,维护所述快照统计文件,使得所述快照统计文件记录下按照快照时间戳顺序排列的各个快照文件的索引;
2)维护各个快照文件,使得每个所述快照文件中记录起始有效时间小于等于其时间戳,且大于前一快照时间戳的所有元数据,并且同一所述快照文件中所记录的元数据按照其结束有效时间排序。
其中,所述步骤1)还包括:接收指定目录树和时间戳的创建快照命令,在所指定目录树的快照统计文件末尾增加本次快照时间戳的记录,并将该记录作为本次快照对应的快照文件的索引。
其中,所述步骤2)还包括:在具有快照标记的目录树中,任意元数据更新时,将更新前的元数据保存到它所对应的快照文件中。
其中,所述步骤2)包括下列子步骤:
21)在具有快照标记的目录树中,任意元数据更新时,根据将更新前的元数据的起始有效时间找到该元数据所对应的快照文件;
22)根据当前时刻确定所述更新前的元数据的结束有效时间,并将所述更新前的元数据***到步骤21)所找到的快照文件中。
其中,所述步骤21)包括下列子步骤:
211)在具有快照标记的目录树中,任意元数据更新时,访问该目录树所对应的快照统计文件;
212)依序遍历所述快照统计文件,得到第一个快照时间晚于待更新的元数据的创建时间的快照文件;
所述步骤22)还包括:将更新前的元数据文件***步骤212)所得到的快照文件的尾部。
其中,所述文件***快照存储方法还包括:在步骤22)执行步骤:
23)执行元数据更新操作。
根据本发明的另一方面,提供了一种文件***快照访问方法,所述文件***包括:具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;其中所述快照统计文件记录了按照快照时间戳顺序排列的各个快照文件的索引;所述快照文件中记录起始有效时间小于等其快照时间戳,且大于前一快照时间戳的所有元数据,并且对于同一所述快照文件,其中元数据按照其结束有效时间进行排序;
所述文件***快照访问方法包括下列步骤:
a)接收快照访问命令,获得待访问快照的目录树及时间戳;
b)遍历待访问快照的目录树对应的快照统计文件,查找其中快照时间戳不晚于待访问快照时间戳的所有快照文件的索引;
c)根据步骤b)所得的每条快照文件的索引访问相应的快照文件,找出其中结束有效时间晚于待访问快照时间戳的元数据记录项,将这些元数据记录项加入待访问快照元数据集中;
d)根据待访问快照元数据集恢复出待访问快照。
其中,所述步骤b)包括下列子步骤:
b1)访问所述目录树对应的快照统计文件,顺序遍历各个快照文件的索引;
b2)判断当前的作为快照文件索引的时间戳是否小于所要访问快照的时间戳,如果是,则认为当前的快照文件的索引命中,进入步骤c),否则跳转至步骤d)。
其中,对于同一所述快照文件,其中元数据按照其结束有效时间倒序排列;
所述步骤c)包括下列子步骤:
c1)根据命中的快照文件索引的访问快照文件,从末尾开始遍历该快照文件中的元数据记录项;
c2)判断该当前元数据的结束有效时间是否晚于待访问快照时间戳,如果是,将该当前元数据加入待访问快照文件集,继续遍历下一个元数据,否则,停止本次遍历,返回步骤b1)。
其中,所述步骤d)还包括:遍历所述待访问快照的目录树下的现存的各个元数据文件,将其中创建于待访问快照时间戳之前的元数据文件添加到所述待访问快照元数据集中,然后再根据新的待访问快照元数据集恢复出待访问快照。
与现有技术相比,本发明具有下列技术效果:
与传统的增量快照技术相比,本发明在保留存储空间开销较小优势的前提下,显著减小了快照访问的开销,提高了快照访问的效率。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1示出了传统增量快照存储结构的一个典型示例的示意图;
图2示出了本发明一个实施例中的实现快照功能的目录树存储结构示意图;
图3示出了图2实施例中的快照组织管理结构示意图;
图4示出了基于图3的快照组织管理结构的快照元数据添加的示意图;
图5示出了根据本发明的一个实施例提供的快照存储方法的流程图;
图6示出了根据本发明的一个实施例提供的快照访问方法的流程图;
图7示出了本发明一个实施例的存储结构的典型示例。
具体实施方式
图2示出了本发明一个实施例中的实现快照功能的目录树存储结构示意图。如图2所示,目录a(director a)存储了文件b,文件e,并且目录a下存在子目录c(director c),子目录c存储了文件d。为了实现目录a的快照功能,目录a下还具有各个时刻的快照文件snap_t1_file和snap_t2_file,以及用于存储各个时刻快照文件索引的快照索引文件snap_statistics_file。相应地,子目录c下也具有各个时刻的快照文件snap_t1_file和snap_t2_file,以及用于存储各个时刻快照文件索引的快照索引文件snap_statistics_file。每个快照文件都用于存储所在目录下的相应快照时间戳的快照元数据。
发明人总结了快照元数据存在两个时间属性:起始有效时间starttime和结束有效时间endtime。目录中的任何一个元数据被更新时,该更新可以看作:修改前的元数据被删除,以及修改后的元数据被创建两个步骤,而这个元数据更新的时刻就是修改前的元数据的结束有效时间endtime,同时也是修改后的元数据的起始有效时间starttime。假设快照时间戳为snaptime,那么访问快照的本质即为获取所存储的元数据文件集中的符合快照访问条件的元数据文件,快照访问条件可以被总结为:starttime<snaptime,即当前元数据文件在快照时间戳的时刻已经被创建,且endtime>snaptime,即当前元数据文件在快照时间戳的时刻尚未被删除。
本实施例中,每个快照文件(也可称为快照目录文件或快照目录)内所存储的快照元数据(也可称为快照数据)的起始有效时间starttime均小于等该快照时刻,且均大于前一快照时刻,也就是说,每个快照文件存储起始有效时间starttime在前一快照时刻到当前快照时刻之间的快照元数据。
图3示出了图2实施例中基于时间顺序的快照存储结构示例。如图3所示,快照索引文件(用.snap表示)记录了多个快照文件的索引,其中快照文件用起始有效时间start_time1,start_time2,start_time3代表。而每个快照文件中,又按照快照元数据的结束有效时间对快照元数据cmeta1,cmeta2,cmeta3等进行排序。这样,在快照存储结构中,快照元数据按照两个时间维度进行排序。相应地,为了实现正确的快照访问,快照元数据的添加也维护该顺序。
图4示出了图3实施例的快照文件中添加快照元数据的示例。对指定目录树创建快照后,该目录树中元数据的更新会触发快照元数据的保存,以保证相应时刻的快照可被恢复。参考图4,本实施例中,在保存快照元数据cmeta4时,首先根据快照元数据cmeta4的起始有效时间starttime找到对应的快照目录(即快照文件,图4中用写有start_time2的方框表示),然后将该快照元数据cmeta4直接添加到该目录的尾部。这样就能够在添加快照数据时保持上述基于时间顺序的快照存储结构。
图5示出了根据本发明的一个实施例提供的快照存储方法的流程图,包括下列步骤:
步骤101:服务器收到创建快照命令:.snap create pathwalk。
步骤102:获得快照目录树pathwalk和快照时间戳snaptime,对pathwalk目录进行快照标记。在快照统计文件(即快照索引文件)中增加新快照时间戳snaptime这一记录,即将本次快照文件的索引加入快照统计文件中,同时在pathwalk目录下创建新快照对应的快照文件。
步骤103:服务器收到对pathwalk目录的元数据更新操作命令。
步骤104:遍历pathwalk目录下对应的快照统计文件的快照文件索引时间戳。本实施例中,以快照时间戳作为快照文件的文件名,该文件名也是其在快照统计文件中的索引。如前文所述,快照统计文件按顺序记录了快照文件的索引,本实施例中以快照时间戳作为快照文件索引,所以快照统计文件中所记录的项目又称为快照文件索引时间戳。每个快照文件则记录起始有效时间starttime小于等于本快照时刻(即本快照文件的时间戳),且大于前一快照时刻(即时间上相邻的前一快照文件的时间戳)的所有快照元数据。
步骤105:判断当前快照文件索引时间戳是否小于待更新元数据的创建时间,如果是,返回步骤104,继续遍历快照统计文件中的下一个快照文件索引时间戳,如果否,则执行步骤106。
步骤106:访问当前快照文件索引时间戳对应的快照文件,将待更新元数据作为快照元数据***该快照文件的末尾。
步骤107:执行元数据更新操作。
按照上述步骤101至107,目录树中任意元数据更新时,对应的快照元数据被***到满足条件的快照文件尾部。所满足的条件是:该快照文件的时间戳晚于快照元数据的创建时间,且上一个快照文件的时间戳早于快照元数据的创建时间(即快照元数据的创建时间在两个快照文件的时间差段内)。这种存储机制下,同一快照文件中元数据组成一个队列,每次存储元数据后,该文件中元数据记录队列队尾的必然是最晚被修改的,即队尾的必然是结束有效时间最晚的元数据,这样,同一快照文件所存储的元数据队列以结束有效时间从早到晚的原则有序地排列。这种存储结构将十分便于快照的访问,且节省存储空间。
进一步地,本发明另一实施例提供了基于上述快照存储方法的快照访问方法,图6示出了该实施例的快照访问方法的流程图,包括下列步骤:
步骤201:接收快照访问命令:.snap Is pathwalk timestamp。
步骤202:访问对应的快照统计文件,遍历快照文件索引。如前文所述,快照统计文件中的每条记录都对应一个快照时间戳,即快照文件索引时间戳。
步骤203:判断当前的快照文件索引时间戳是否小于所要访问快照的时间戳timestamp,如果是,进入步骤204,否则跳转至步骤208。
步骤204:访问当前快照文件索引时间戳所对应的快照文件。
步骤205:从步骤204所访问的快照文件末尾开始向前遍历元数据记录。
步骤206:判断当前元数据的结束有效时间是否小于所要访问的快照时间戳timestamp,如果是,则回到步骤202,继续遍历快照统计文件,获得下一条记录的快照时间戳,如果否,则进入步骤207。本步骤中,如果快照文件的时间戳大于带访问快照时间戳,则表示该文件中的元数据项必然满足:元数据创建时间大于快照时间戳,因此不属于本次快照,所以此时直接返回步骤202,继续遍历快照统计文件。
步骤207:将当前元数据加入快照元数据集,快照元数据集就是属于当前所要访问快照的元数据的集合。步骤207完成后回到步骤205,继续遍历当前所访问快照文件,获得其中下一个元数据记录。
步骤208:遍历pathwalk目录,依次获取其中的元数据文件。
步骤209:判断pathwalk目录下的各个元数据文件创建时间是否小于所要访问的快照时间戳timestamp,如果是,则进入步骤210。
步骤210:将所有在步骤209中判断为是的元数据文件加入快照元数据集。完成之后,就可以根据最终的快照元数据集恢复出所要访问的快照。
步骤208至210是为了把快照时刻存在,且以后一直未更新的元数据文件也加入到快照元数据集中,从而恢复出完整的快照。
上述实施例能够显著地提高快照的访问效率。如前文所述,发明人对快照的访问进行抽象总结发现,快照元数据存在两个时间属性:起始有效时间starttime和结束有效时间endtime,假设快照时间戳为snaptime,那么访问快照的本质即为获取所存储的元数据文件集中的符合快照访问条件的元数据文件,快照访问条件可以被总结为:starttime<snaptime,即当前元数据文件在快照时间戳的时刻已经被创建,且endtime>snaptime,即当前元数据文件在快照时间戳的时刻尚未被删除。如果将同一快照的元数据存储在相邻的位置,则在访问快照时不需要对整个数据集合进行查找遍历,而是直接通过顺序访问得到该快照所有的元数据,在这种情况下快照访问效率达到最高。为了在不引起空间开销的情况下提高快照访问效率,本发明提出基于时间顺序的快照存储方法。其基本原理是对快照数据按照starttime和endtime两个维度排序,首先根据起始有效时间starttime将快照数据放置在不同的集合中,而在单个数据集中快照数据按照结束有效时间endtime顺序排列,在这种存储结构下,快照的访问只需要查找starttime小于快照时间戳的元数据文件集合;在特定starttime时间段对应的数据集中,数据按照endtime顺序排列,因此属于同一快照的数据必然存储在相邻位置。也就是说,单次快照的数据存储于相邻的多个快照文件中,并且在快照文件内部同一快照的数据也处于相邻位置。这种基于时间顺序的快照存储结构使得快照的访问需要遍历与本次快照相关的数据,而不需要对无关数据进行遍历和判断,大大提高了快照的访问效率。
图7示出了本发明一个实施例的存储结构的典型示例。在该示例中,文件***中作为快照对象的目录中所存的初始数据有f1、f2、f3,在时刻t1和t2之间该目录中发生第一次数据操作,f3被删除,f4,f5被创建,在t2和t3之间该目录中发生第二次数据操作,f2,f5被删除,f6被创建,在t3和t4之间该目录中发生第三次数据操作,f1,f6被删除,f7被创建。在t1,t2,t3,t4时刻,分别对该目录创建一次快照。
在时刻t1对目录创建快照snap_t1,此时创建一个相应的snap_t1文件,并将该文件索引记录在快照统计文件中。此后,当该目录中有元数据更新时,基于前述步骤2,所要更新元数据被存储到snap_t1文件,可以看出,发生第一次元数据更新操作时,f3被存储到snap_t1文件。时刻t2再对目录进行一次快照snap_t2,当数据更新时根据数据的创建时间将快照元数据存储到对应的快照文件中。f2被删除时,由于f2创建时间早于snap_t1,因此f2被存储至snap_t1文件并置于元数据队列的队尾(图5中左端为队尾,右端为队首);f5被删除时,由于f5创建时间晚于snap_t1,早于snap_t2,因此f5被存储到snap_t2文件。时刻t3执行快照snap_t3,此时创建相应的snap_t3文件,同理按照步骤2进行存储。可以看出,发生第三次数据操作时,f1被删除,由于f1早于snap_t1,因此f1被存储到snap_t1文件的队尾,f6被删除,由于f6晚于snap_t2,早于snap_t3,因此f6被存储到snap_t3文件。最后,在时刻t4时创建快照snap_t4,则根据步骤2的条件,f4会被存入snap_t2文件中队列的对尾,f7被存入snap_t4文件。
仍然参考图7的示例,在访问快照snap_t1时,根据步骤3至7,找到snap_t1文件,遍历后即可恢复出t1时刻快照的数据集,即f1,f2,f3。在访问快照snap_t2时,找到snap_t1文件,遍历后可得到f1,f2,然后找到snap_t2文件,遍历后可得到f4,f5,这样就可恢复出t2时刻的快照数据集,即f1,f2,f4,f5。类似地,可方便地恢复出t3时刻和t4时刻的快照。本发明中属于同一快照的元数据在两个时间维度上存储在相邻的位置,在单个快照文件内部,遇到第一个不属于待访问快照的元数据时即停止该快照文件的遍历;而在访问快照统计文件时,遇到第一个时间戳大于快照时间的快照文件,停止对快照统计文件的访问。可以看出,本发明的方案不需要完整地遍历每一个相关联的快照文件,因此在不增加存储空间开销的前提下,提高了快照的访问效率。
另外,需要说明的是,在前述实施例中,快照文件中的快照元数据均按结束有效时间的倒序排列。而本发明中,快照文件中的元数据按照其结束有效时间进行排序,使其可以依照结束有效时间从大到小(即从晚至早)的遍历即可。例如在变形的实施例中,快照文件中,快照元数据按结束有效时间顺序排列。在该变形的实施例中,在存储快照时,步骤106中将待更新元数据作为快照元数据***该快照文件的头部,其余步骤不变,即可实现快照元数据按结束有效时间顺序排列。而在访问快照时,步骤205中从快照文件头部开始向后遍历元数据记录,其余步骤不变,即可正确且快速地恢复快照。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。

Claims (10)

1.一种文件***快照存储方法,所述文件***包括具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;
所述文件***快照存储方法包括下列步骤:
1)创建新快照后,维护所述快照统计文件,使得所述快照统计文件记录下按照快照时间戳顺序排列的各个快照文件的索引;
2)维护各个快照文件,使得每个所述快照文件中记录起始有效时间小于等于其时间戳,且大于前一快照时间戳的所有元数据,并且同一所述快照文件中所记录的元数据按照其结束有效时间排序。
2.根据权利要求1所述的文件***快照存储方法,其特征在于,所述步骤1)还包括:接收指定目录树和时间戳的创建快照命令,在所指定目录树的快照统计文件末尾增加本次快照时间戳的记录,并将该记录作为本次快照对应的快照文件的索引。
3.根据权利要求1所述的文件***快照存储方法,其特征在于,所述步骤2)还包括:在具有快照标记的目录树中,任意元数据更新时,将更新前的元数据保存到它所对应的快照文件中。
4.根据权利要求3所述的文件***快照存储方法,其特征在于,所述步骤2)包括下列子步骤:
21)在具有快照标记的目录树中,任意元数据更新时,根据将更新前的元数据的起始有效时间找到该元数据所对应的快照文件;
22)根据当前时刻确定所述更新前的元数据的结束有效时间,并将所述更新前的元数据***到步骤21)所找到的快照文件中。
5.根据权利要求4所述的文件***快照存储方法,其特征在于,所述步骤21)包括下列子步骤:
211)在具有快照标记的目录树中,任意元数据更新时,访问该目录树所对应的快照统计文件;
212)依序遍历所述快照统计文件,得到第一个快照时间晚于待更新的元数据的创建时间的快照文件;
所述步骤22)还包括:将更新前的元数据文件***步骤212)所得到的快照文件的尾部。
6.根据权利要求4所述的文件***快照存储方法,其特征在于,所述文件***快照存储方法还包括:在步骤22)执行步骤:
23)执行元数据更新操作。
7.一种文件***快照访问方法,所述文件***包括:具有快照标记的目录树,与该目录树相对应的快照统计文件,以及与该目录树的各个快照时间戳相对应的快照文件;其中所述快照统计文件记录了按照快照时间戳顺序排列的各个快照文件的索引;所述快照文件中记录起始有效时间小于等其快照时间戳,且大于前一快照时间戳的所有元数据,并且对于同一所述快照文件,其中元数据按照其结束有效时间进行排序;
所述文件***快照访问方法包括下列步骤:
a)接收快照访问命令,获得待访问快照的目录树及时间戳;
b)遍历待访问快照的目录树对应的快照统计文件,查找其中快照时间戳不晚于待访问快照时间戳的所有快照文件的索引;
c)根据步骤b)所得的每条快照文件的索引访问相应的快照文件,找出其中结束有效时间晚于待访问快照时间戳的元数据记录项,将这些元数据记录项加入待访问快照元数据集中;
d)根据待访问快照元数据集恢复出待访问快照。
8.根据权利要求7所述的文件***快照访问方法,其特征在于,所述步骤b)包括下列子步骤:
b1)访问所述目录树对应的快照统计文件,顺序遍历各个快照文件的索引;
b2)判断当前的作为快照文件索引的时间戳是否小于所要访问快照的时间戳,如果是,则认为当前的快照文件的索引命中,进入步骤c),否则跳转至步骤d)。
9.根据权利要求8所述的文件***快照访问方法,其特征在于,对于同一所述快照文件,其中元数据按照其结束有效时间倒序排列;
所述步骤c)包括下列子步骤:
c1)根据命中的快照文件索引的访问快照文件,从末尾开始遍历该快照文件中的元数据记录项;
c2)判断该当前元数据的结束有效时间是否晚于待访问快照时间戳,如果是,将该当前元数据加入待访问快照文件集,继续遍历下一个元数据,否则,停止本次遍历,返回步骤b1)。
10.根据权利要求9所述的文件***快照访问方法,其特征在于,所述步骤d)还包括:遍历所述待访问快照的目录树下的现存的各个元数据文件,将其中创建于待访问快照时间戳之前的元数据文件添加到所述待访问快照元数据集中,然后再根据新的待访问快照元数据集恢复出待访问快照。
CN201510325206.6A 2015-06-12 2015-06-12 分布式文件***中的元数据快照存储和访问方法 Expired - Fee Related CN104933133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510325206.6A CN104933133B (zh) 2015-06-12 2015-06-12 分布式文件***中的元数据快照存储和访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510325206.6A CN104933133B (zh) 2015-06-12 2015-06-12 分布式文件***中的元数据快照存储和访问方法

Publications (2)

Publication Number Publication Date
CN104933133A true CN104933133A (zh) 2015-09-23
CN104933133B CN104933133B (zh) 2018-09-07

Family

ID=54120300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510325206.6A Expired - Fee Related CN104933133B (zh) 2015-06-12 2015-06-12 分布式文件***中的元数据快照存储和访问方法

Country Status (1)

Country Link
CN (1) CN104933133B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302922A (zh) * 2015-11-24 2016-02-03 无锡江南计算技术研究所 一种分布式文件***快照实现方法
CN107122140A (zh) * 2017-05-02 2017-09-01 郑州云海信息技术有限公司 一种基于元数据信息的文件智能存储方法
CN108255638A (zh) * 2017-06-29 2018-07-06 新华三技术有限公司 一种快照回滚方法及装置
CN108470039A (zh) * 2018-02-09 2018-08-31 北京欧链科技有限公司 区块链中的数据处理方法和装置
CN108509149A (zh) * 2018-02-09 2018-09-07 北京欧链科技有限公司 区块链中的数据处理方法和装置
CN108920522A (zh) * 2018-06-04 2018-11-30 上海点融信息科技有限责任公司 用于数据库的数据处理方法、***及计算机可读存储介质
CN109189480A (zh) * 2018-07-02 2019-01-11 新华三技术有限公司成都分公司 文件***启动方法及装置
CN109271367A (zh) * 2018-12-07 2019-01-25 浪潮(北京)电子信息产业有限公司 分布式文件***多节点快照回滚方法及***
CN109491827A (zh) * 2018-12-03 2019-03-19 浪潮电子信息产业股份有限公司 应用软件的日志数据存储方法、装置、设备及存储介质
CN109542681A (zh) * 2018-11-15 2019-03-29 郑州云海信息技术有限公司 一种基于文件备份的时间导航***、可视化数据恢复方法及装置
CN109933570A (zh) * 2019-03-15 2019-06-25 中山大学 一种元数据管理方法、***及介质
CN110062925A (zh) * 2016-10-28 2019-07-26 Netapp股份有限公司 用于云集成的快照元数据布置
CN111506253A (zh) * 2019-01-31 2020-08-07 阿里巴巴集团控股有限公司 一种分布式存储***及其存储方法
CN112650723A (zh) * 2020-12-28 2021-04-13 北京浪潮数据技术有限公司 一种文件共享方法、装置、设备及计算机可读存储介质
CN113032704A (zh) * 2021-02-24 2021-06-25 广州虎牙科技有限公司 数据处理方法、装置、电子设备及介质
CN113342741A (zh) * 2021-07-30 2021-09-03 联想凌拓科技有限公司 快照实现方法及装置、电子设备及计算机可读存储介质
CN113868273A (zh) * 2021-09-23 2021-12-31 北京百度网讯科技有限公司 元数据的快照方法及其装置
CN114064982A (zh) * 2021-11-18 2022-02-18 福州大学 基于快照相似性的大规模时变图存储方法及***
CN114356844A (zh) * 2021-11-19 2022-04-15 苏州浪潮智能科技有限公司 一种基于目录树轮询对比文件快照的方法和装置
CN115878563A (zh) * 2023-02-17 2023-03-31 北京大道云行科技有限公司 一种分布式文件***目录级快照的实现方法及电子设备
US12007944B2 (en) 2016-10-28 2024-06-11 Netapp, Inc. Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017453A (zh) * 2006-02-07 2007-08-15 国际商业机器公司 用于管理备份集中的删除的方法和***
CN101162469A (zh) * 2007-11-09 2008-04-16 清华大学 基于快照的细粒度文件与目录版本管理方法
CN101178677A (zh) * 2007-11-09 2008-05-14 中国科学院计算技术研究所 一种计算机文件***的快照方法
US20080183973A1 (en) * 2007-01-31 2008-07-31 Aguilera Marcos K Snapshots in distributed storage systems
CN103049539A (zh) * 2012-12-25 2013-04-17 华为技术有限公司 一种文件***中文件数据的存储方法及其装置
CN103221924A (zh) * 2010-11-22 2013-07-24 蓝弧英国有限公司 数据存储***中的文件克隆和去克隆
US20130339301A1 (en) * 2012-06-04 2013-12-19 Google Inc. Efficient snapshot read of a database in a distributed storage system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017453A (zh) * 2006-02-07 2007-08-15 国际商业机器公司 用于管理备份集中的删除的方法和***
US20080183973A1 (en) * 2007-01-31 2008-07-31 Aguilera Marcos K Snapshots in distributed storage systems
CN101162469A (zh) * 2007-11-09 2008-04-16 清华大学 基于快照的细粒度文件与目录版本管理方法
CN101178677A (zh) * 2007-11-09 2008-05-14 中国科学院计算技术研究所 一种计算机文件***的快照方法
CN103221924A (zh) * 2010-11-22 2013-07-24 蓝弧英国有限公司 数据存储***中的文件克隆和去克隆
US20130339301A1 (en) * 2012-06-04 2013-12-19 Google Inc. Efficient snapshot read of a database in a distributed storage system
CN103049539A (zh) * 2012-12-25 2013-04-17 华为技术有限公司 一种文件***中文件数据的存储方法及其装置

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302922B (zh) * 2015-11-24 2018-07-06 无锡江南计算技术研究所 一种分布式文件***快照实现方法
CN105302922A (zh) * 2015-11-24 2016-02-03 无锡江南计算技术研究所 一种分布式文件***快照实现方法
CN110062925A (zh) * 2016-10-28 2019-07-26 Netapp股份有限公司 用于云集成的快照元数据布置
US11768803B2 (en) 2016-10-28 2023-09-26 Netapp, Inc. Snapshot metadata arrangement for efficient cloud integrated data management
CN110062925B (zh) * 2016-10-28 2023-02-21 Netapp股份有限公司 用于云集成的快照元数据布置
US12007944B2 (en) 2016-10-28 2024-06-11 Netapp, Inc. Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh
CN107122140A (zh) * 2017-05-02 2017-09-01 郑州云海信息技术有限公司 一种基于元数据信息的文件智能存储方法
CN108255638A (zh) * 2017-06-29 2018-07-06 新华三技术有限公司 一种快照回滚方法及装置
CN108255638B (zh) * 2017-06-29 2021-05-28 新华三技术有限公司 一种快照回滚方法及装置
CN108509149A (zh) * 2018-02-09 2018-09-07 北京欧链科技有限公司 区块链中的数据处理方法和装置
CN108470039A (zh) * 2018-02-09 2018-08-31 北京欧链科技有限公司 区块链中的数据处理方法和装置
CN108920522A (zh) * 2018-06-04 2018-11-30 上海点融信息科技有限责任公司 用于数据库的数据处理方法、***及计算机可读存储介质
CN109189480B (zh) * 2018-07-02 2021-11-09 新华三技术有限公司成都分公司 文件***启动方法及装置
CN109189480A (zh) * 2018-07-02 2019-01-11 新华三技术有限公司成都分公司 文件***启动方法及装置
CN109542681A (zh) * 2018-11-15 2019-03-29 郑州云海信息技术有限公司 一种基于文件备份的时间导航***、可视化数据恢复方法及装置
CN109542681B (zh) * 2018-11-15 2021-11-26 郑州云海信息技术有限公司 一种基于文件备份的时间导航***、可视化数据恢复方法及装置
CN109491827A (zh) * 2018-12-03 2019-03-19 浪潮电子信息产业股份有限公司 应用软件的日志数据存储方法、装置、设备及存储介质
CN109271367A (zh) * 2018-12-07 2019-01-25 浪潮(北京)电子信息产业有限公司 分布式文件***多节点快照回滚方法及***
CN111506253A (zh) * 2019-01-31 2020-08-07 阿里巴巴集团控股有限公司 一种分布式存储***及其存储方法
CN111506253B (zh) * 2019-01-31 2023-06-20 阿里巴巴集团控股有限公司 一种分布式存储***及其存储方法
CN109933570A (zh) * 2019-03-15 2019-06-25 中山大学 一种元数据管理方法、***及介质
CN112650723A (zh) * 2020-12-28 2021-04-13 北京浪潮数据技术有限公司 一种文件共享方法、装置、设备及计算机可读存储介质
CN112650723B (zh) * 2020-12-28 2024-06-11 郑州浪潮数据技术有限公司 一种文件共享方法、装置、设备及计算机可读存储介质
CN113032704A (zh) * 2021-02-24 2021-06-25 广州虎牙科技有限公司 数据处理方法、装置、电子设备及介质
WO2023005688A1 (zh) * 2021-07-30 2023-02-02 联想凌拓科技有限公司 快照实现方法及装置、电子设备及计算机可读存储介质
CN113342741B (zh) * 2021-07-30 2021-10-12 联想凌拓科技有限公司 快照实现方法及装置、电子设备及计算机可读存储介质
CN113342741A (zh) * 2021-07-30 2021-09-03 联想凌拓科技有限公司 快照实现方法及装置、电子设备及计算机可读存储介质
CN113868273B (zh) * 2021-09-23 2022-10-04 北京百度网讯科技有限公司 元数据的快照方法及其装置
CN113868273A (zh) * 2021-09-23 2021-12-31 北京百度网讯科技有限公司 元数据的快照方法及其装置
CN114064982A (zh) * 2021-11-18 2022-02-18 福州大学 基于快照相似性的大规模时变图存储方法及***
CN114356844A (zh) * 2021-11-19 2022-04-15 苏州浪潮智能科技有限公司 一种基于目录树轮询对比文件快照的方法和装置
CN114356844B (zh) * 2021-11-19 2023-11-21 苏州浪潮智能科技有限公司 一种基于目录树轮询对比文件快照的方法和装置
CN115878563A (zh) * 2023-02-17 2023-03-31 北京大道云行科技有限公司 一种分布式文件***目录级快照的实现方法及电子设备
CN115878563B (zh) * 2023-02-17 2023-06-02 北京大道云行科技有限公司 一种分布式文件***目录级快照的实现方法及电子设备

Also Published As

Publication number Publication date
CN104933133B (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN104933133A (zh) 分布式文件***中的元数据快照存储和访问方法
CN110879813B (zh) 一种基于二进制日志解析的MySQL数据库增量同步实现方法
US8626717B2 (en) Database backup and restore with integrated index reorganization
CN104714755B (zh) 一种快照管理方法及装置
CN103605805B (zh) 一种海量时序数据的存储方法
CN103229173B (zh) 元数据管理方法及***
CN106484906B (zh) 一种分布式对象存储***闪回方法及装置
US20150220578A1 (en) Content based organization of file systems
CN105956123A (zh) 基于局部更新软件的数据处理方法及装置
US7716262B2 (en) Index processing
US10108690B1 (en) Rolling subpartition management
US20120259948A1 (en) Asynchronous distributed object uploading for replicated content addressable storage clusters
US20170249216A1 (en) Native snapshots in distributed file sytems
CN102713901A (zh) 存储复制***和方法
CN105912675B (zh) 一种针对小文件合并的批量删除/查询方法与装置
CN104077423A (zh) 一种基于一致性散列的结构化数据存储、查询和迁移方法
CN103561133A (zh) 一种ip地址归属信息索引方法及快速查询方法
CN109284273B (zh) 一种采用后缀数组索引的海量小文件查询方法及***
CN104598517A (zh) 基于普通数据库的树型结构表的存储与查询技术
CN102508913A (zh) 一种带有数据立方存储索引结构的云计算***
CN104978330A (zh) 一种数据存储的方法及装置
CN105183391B (zh) 一种分布式数据平台下数据存储的方法和装置
CN102306168A (zh) 日志操作方法、装置及文件***
CN103377210A (zh) 建立增量型导航数据库的方法和对数据库进行更新的方法
CN105447168A (zh) Mp4格式的碎片文件恢复与重组的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190203

Address after: Room 1103, Building B2, 700 Yishan Road, Xuhui District, Shanghai, 2003

Patentee after: SHANGHAI YINGLIAN INFORMATION TECHNOLOGY CO.,LTD.

Address before: 100190 South Road, Zhongguancun Science Academy, Haidian District, Beijing 6

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180907

CF01 Termination of patent right due to non-payment of annual fee