(19)中华人民共和国国家知识产权局
回收站清空的文件怎么恢复
(12)发明专利说明书
(10)申请公布号 CN 106055431 A
(43)申请公布日 2016.10.26
(21)申请号 CN201610368761.1
(22)申请日 2016.05.30
(71)申请人 河海大学
    地址 211100 江苏省南京市江宁区佛城西路8号
(72)发明人 陈飞 陈哲 王慧敏 李臣明 徐立中
(74)专利代理机构 南京苏高专利商标事务所(普通合伙)
    代理人 李玉平
(51)Int.CI
      G06F11/14
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      基于快照在线回滚数据备份与恢复的方法及装置
(57)摘要
      本发明公开了一种基于快照在线回滚的数据备份与恢复的方法及装置,用户创建快照时,将源卷按块级进行划分编址,并分配一个COW元数据集用于记录源卷的COW信息;当接收到快照回滚的指令,先通知快照代理进行刷脏处理,完成后通知快照模块,启动后台数据回滚线程;后台回滚线程根据元数据集的COW信息,将快照卷上的数据拷贝到源卷;当回滚过程中源卷有读写请求时,需要根据读写源卷的数据块编号是否做过COW和当前的回滚进度,进行重定向读取和延迟写入。本发明可以实现源卷某个时间点的数据备份,通过提供的在线回滚技术,不需要中断源卷的数据访问,从而可以使源卷上的数据迅速恢复到可用的快照时间点给主机应用提供服务。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种基于快照在线回滚的数据备份与恢复的方法,其特征在于,具体实现方案如下:创建快照,将源卷按块级进行划分编址,并给创建的快照分配一个COW元数据集,每一个元数据代表源卷的一个数据块,元数据集按源卷数据块编号进行排序;
当接收到快照回滚的指令后,先通知快照代理进行刷脏处理,快照代理刷脏完成后通知快照模块,后台启动回滚线程,即通知用户快照回滚成功,用户即可立即对源卷进行数据访问;
后台回滚线程,先获取快照的COW元数据集,按源卷数据块的顺序读取每一个元数据,对于做过COW的源卷数据块,先判断数据写入时间和快照回滚时间,如果晚于快照回滚时间,则不需要进行数据拷贝;否则按照元数据中保存的快照空间数据块编号,从快照空间读
取数据,并写入元数据中保存的源卷数据块编号对应的源卷空间;执行完当前数据块的数据回写,则从COW元数据集中取出下一个元数据对象,直到遍历完快照COW元数据集的所有元数据对象;每执行完一个数据块的数据回写,则以当前数据块作为快照回滚的进度。
2.如权利要求1所述的基于快照在线回滚的数据备份与恢复的方法,其特征在于,当回滚过程中源卷有读数据请求时,根据读源卷的数据块编号,查快照的COW元数据集,如果对应的数据块未做过COW,或者数据块编号小于回滚进度,则直接从源卷上读取;否则根据元数据中保存的快照空间数据块编号,从快照空间读取数据;如果元数据集中不存在该数据块对应的元数据对象,则表示数据还在源卷上,直接从源卷上读取即可;如果需要读取的数据包含多个数据块,则需要对每个数据块进行判断,等所有数据块从快照空间或源卷读取完成后进行合并;
当回滚过程中源卷有写入数据请求时,根据写入源卷的数据块编号,查快照的COW元数据集,如果对应的数据块已经做过COW,而且待写入的数据块编号小于回滚进度,则数据可以直接写入源卷;否则先对该数据块进行数据回滚,然后再将待写入的数据写入源卷,并更新元数据对象中数据写入时间为系统当前时间;如果待写入源卷的数据块编号未做过CO
W,则直接对该数据块执行快照COW,并生成一条新的COW元数据对象,更新元数据对象中源卷数据块编号和快照空间数据块编号,数据写入的时间为系统当前时间。
3.如权利要求1所述的基于快照在线回滚的数据备份与恢复的方法,其特征在于,当用户创建快照时,将源卷按块级进行划分编址,并给创建的快照分配一个COW元数据集,每一个元数据代表源卷的一个数据块,元数据集按源卷数据块编号进行排序;当第一次对源卷的某个数据块进行写入时,需要对该数据块执行COW操作,即先将源卷上老的数据拷贝到快照空间;源卷上老的数据拷贝到快照空间后,生成一个元数据,由源卷的数据块编号、快照空间的数据块编号和数据写入时间三部分信息构成;后续对源卷的同一个数据块写入时就不需要再执行COW操作;所有做过COW的元数据组成了快照的元数据集。
4.一种基于快照在线回滚的数据备份与恢复的装置,其特征在于,包括:
快照配置处理模块,对快照空间进行分配和管理,处理用户的创建快照、删除快照以及快照信息更改的请求;创建快照时,为快照建立数据区,分配快照唯一标识和记录创建快照时间,建立该快照的COW元数据集,初始为空;删除快照时,如果当前存在快照回滚的任务,则提示用户需要等快照回滚任务完成或者停止快照回滚任务,否则直接清除创建快照时
建立的相关数据区;
快照回滚处理模块,处理用户的快照回滚命令,启动后台数据回写线程,建立回滚数据区,记录回滚的进度、回滚启动时间和结束时间;同时也能处理用户停止、暂停回滚任务的命令;
源卷数据读写处理模块,接收主机对源卷的数据读写请求;对于数据写入需要根据快照的元数据集来判断是否需要执行COW,如果快照正在执行数据回滚,则还需要根据回滚进度来决定是否需要先执行数据回写;对于读源卷请求,如果快照正在执行数据回滚,则还需要根据读源卷的数据块是否做过COW来决定数据是从快照空间读取还是源卷上读取;如果快照未在回滚进程,则数据直接从源卷上读取;
快照读处理模块,接收主机对快照的读数据请求;根据读请求的数据块编号,查快照的COW元数据集,如果对应的数据块已经做过COW,则根据元数据中保存的快照空间数据块编号,从快照空间读取数据;如果元数据集中不存在该数据块对应的元数据对象,则表示数据还在源卷上,直接从源卷上读取;