一种元数据快照回滚的方法技术

技术编号:39511813 阅读:10 留言:0更新日期:2023-11-25 18:48
本发明专利技术提供一种元数据快照回滚的方法

【技术实现步骤摘要】
一种元数据快照回滚的方法、系统、设备和存储介质


[0001]本专利技术涉及分布式文件系统领域,更具体地,特别是指一种元数据快照回滚的方法

系统

设备和存储介质


技术介绍

[0002]目前的快照普遍采用写时拷贝
(COW)
和写时重定向
(ROW)
两种方式,其中常用的为
COW
实现方式,首先对源卷的元数据进行拷贝创建快照,创建快照以后,如果源卷的数据发生了变化,那么快照系统会首先将原始数据拷贝到快照卷上对应的数据块中,然后再对源卷进行改写

整个写入过程执行两次操作,随着对源卷写的不断进行,最终会获取一个完整的复制于源卷的完整副本

文件除了数据信息,还有和
inode(
索引节点
)
相关的元数据信息,如
atime、ctime
等,除此以外,分布式文件系统还拓展了功能,增加了自定义的元数据信息

这些信息依赖于
mds(
元数据服务
)
服务器进行记录,和目标
inode
进行绑定,没有本地缓存,数据形式不定,直接的快照回滚方式没有记录额外的非系统定义的元数据信息,在快照回滚的过程中隐形的丢失了数据


技术实现思路

[0003]有鉴于此,本专利技术实施例的目的在于提出一种元数据快照回滚的方法

系统

子设备及计算机可读存储介质,本专利技术在打快照的过程中,将存储在
mds
服务器中的基于
inode
相关的元数据附加信息逐条追加在生成的
json
文件当中,并通过
sha
算法生成
json
文件摘要,将该文件摘要和快照
id
通过键值对形式存储在
mds
服务器中;在快照回滚过程中,首先进行
json
摘要校验,然后读取
json
内元数据信息,
mds
服务器根据恢复的快照文件重新恢复信息,本专利技术实施例对基于
inode
的文件元数据信息采用了单独的快照存储,保持了对数据的完整性检查,进一步提高了分布式文件系统的可靠性

[0004]基于上述目的,本专利技术实施例的一方面提供了一种元数据快照回滚的方法,包括如下步骤:响应于接收到打快照指令,将目标文件的元数据信息保存为预设文件;根据所述预设文件的内容计算得到第一哈希值,并对所述目标文件进行快照;响应于对所述目标文件的快照进行回滚,对所述预设文件进行计算得到第二哈希值,判断所述第二哈希值与所述第一哈希值是否一致;以及响应于所述第二哈希值与所述第一哈希值一致,逐项读取所述元数据信息

[0005]在一些实施方式中,所述将目标文件的元数据信息保存为预设文件的步骤包括:通过预留的应用程序接口读取在服务器中缓存的目标文件的索引节点的元数据信息,并生成元数据信息快照文件

[0006]在一些实施方式中,所述根据所述预设文件的内容计算得到第一哈希值的步骤包括:采用哈希算法对元数据信息生成第一哈希值,并将所述第一哈希值以键值对的形式存储在服务器中

[0007]在一些实施方式中,所述响应于对所述目标文件的快照进行回滚,对所述预设文
件进行计算得到第二哈希值,判断所述第二哈希值与所述第一哈希值是否一致的步骤包括:对数据块和文件状态进行恢复,并读取元数据信息对应的所述预设文件;以及对所述预设文件进行本地哈希计算以得到第二哈希值,并将所述第二哈希值与服务器中存储的第一哈希值进行比对

[0008]在一些实施方式中,方法还包括:响应于所述第二哈希值与所述第一哈希值不一致,提示数据快照存储异常,并提示选择其他快照文件进行恢复

[0009]在一些实施方式中,所述逐项读取所述元数据信息的步骤包括:依次构建预设文件中保存的元数据信息的键值列表和目标文件现存的键值列表

[0010]在一些实施方式中,所述逐项读取所述元数据信息的步骤包括:响应于目标文件被删除,根据元数据信息的键值列表依次复制属性以根据快照文件重新写入数据;响应于目标文件名存在且目标文件的索引节点号不一致,删除目标文件且重复上一步骤;响应于目标文件名存在且目标文件的索引节点号一致,依次列举目标文件现存的键值列表中的第一键值并判断所述第一键值是否存在于元数据信息的键值列表;响应于所述第一键值存在于元数据信息的键值列表,按照所述元数据信息的键值列表对对应的第一键值重新赋值;响应于所述第一键值不存在于元数据信息的键值列表,删除所述第一键值;响应于目标文件现存的键值列表中的键值列举完成,依次列举元数据信息的键值列表中的第二键值并判断所述第二键值是否存在于目标文件现存的键值列表;以及将存在于元数据信息的键值列表中且不存在于目标文件现存的键值列表中的属性进行创建并赋值

[0011]本专利技术实施例的另一方面,提供了一种元数据快照回滚的系统,包括:保存模块,用于响应于接收到打快照指令,将目标文件的元数据信息保存为预设文件;快照模块,用于根据所述预设文件的内容计算得到第一哈希值,并对所述目标文件进行快照;判断模块,用于响应于对所述目标文件的快照进行回滚,对所述预设文件进行计算得到第二哈希值,判断所述第二哈希值与所述第一哈希值是否一致;以及执行模块,用于响应于所述第二哈希值与所述第一哈希值一致,逐项读取所述元数据信息

[0012]本专利技术实施例的又一方面,还提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤

[0013]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序

[0014]本专利技术具有以下有益技术效果:在打快照的过程中,将存储在
mds
服务器中的基于
inode
相关的元数据附加信息逐条追加在生成的
json
文件当中,并通过
sha
算法生成
json
文件摘要,将该文件摘要和快照
id
通过键值对形式存储在
mds
服务器中;在快照回滚过程中,首先进行
json
摘要校验,然后读取
json
内元数据信息,
mds
服务器根据恢复的快照文件重新恢复信息,本专利技术实施例对基于
inode
的文件元数据信息采用了单独的快照存储,保持了对数据的完整性检查,进一步提高了分布式文件系统的可靠性

附图说明
[0015]为了更清楚地说明本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种元数据快照回滚的方法,其特征在于,包括如下步骤:响应于接收到打快照指令,将目标文件的元数据信息保存为预设文件;根据所述预设文件的内容计算得到第一哈希值,并对所述目标文件进行快照;响应于对所述目标文件的快照进行回滚,对所述预设文件进行计算得到第二哈希值,判断所述第二哈希值与所述第一哈希值是否一致;以及响应于所述第二哈希值与所述第一哈希值一致,逐项读取所述元数据信息
。2.
根据权利要求1所述的元数据快照回滚的方法,其特征在于,所述将目标文件的元数据信息保存为预设文件的步骤包括:通过预留的应用程序接口读取在服务器中缓存的目标文件的索引节点的元数据信息,并生成元数据信息快照文件
。3.
根据权利要求1所述的元数据快照回滚的方法,其特征在于,所述根据所述预设文件的内容计算得到第一哈希值的步骤包括:采用哈希算法对元数据信息生成第一哈希值,并将所述第一哈希值以键值对的形式存储在服务器中
。4.
根据权利要求1所述的元数据快照回滚的方法,其特征在于,所述响应于对所述目标文件的快照进行回滚,对所述预设文件进行计算得到第二哈希值,判断所述第二哈希值与所述第一哈希值是否一致的步骤包括:对数据块和文件状态进行恢复,并读取元数据信息对应的所述预设文件;以及对所述预设文件进行本地哈希计算以得到第二哈希值,并将所述第二哈希值与服务器中存储的第一哈希值进行比对
。5.
根据权利要求1所述的元数据快照回滚的方法,其特征在于,方法还包括:响应于所述第二哈希值与所述第一哈希值不一致,提示数据快照存储异常,并提示选择其他快照文件进行恢复
。6.
根据权利要求1所述的元数据快照回滚的方法,其特征在于,所述逐项读取所述元数据信息的步骤包括:依次构建预设文件中保存的元数据信息的键值列表和目标文件现存的键值列表
。7.
根...

【专利技术属性】
技术研发人员:王葳
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1