一种使用快照技术进行在线恢复的方法

文档序号:6600901阅读:203来源:国知局
专利名称:一种使用快照技术进行在线恢复的方法
技术领域
本发明涉及计算机系统及存储领域,具体涉及一种使用快照技术在线恢复的方法的方法。
背景技术
造成存储系统的数据不可用通常有两种主要的情况。一是,由于病毒感染造成数 据中存在病毒或数据被异常修改;另一个原因是数据介质损坏。针对后一种原因造成的数 据不可用有许多种方法,比如创建RAID,保证在一块磁盘损坏时不至于造成数据的丢失,从 而降低数据不可用的机率,或者采用备份的方法将数据备份到其它存储设备,降低数据不 可用的风险。而针对第一种情况,大多应用采用基于时间点的增量或差分备份方式,使得数 据受到病毒破坏后恢复到最近可用的时间点。但是,采用增量或差分备分的方式过行数据保护最大的缺点是,将生产机器上的 数据恢复到正常状态需要相当长的一段时间,而且必须在业务中断的情况下进行。

发明内容
本发明是为COW (copy on write)快照增加在线恢复的能力。一旦出现病毒感染, 便采用快照进行在线恢复方式。本发明的目的是按以下方式实现的,在线恢复所用的软硬件包括应用程序(1), 应用程序开发接口(2),虚拟文件系统(3),文件系统(4),快照源卷(5),快照卷(6),在线恢 复管理程序(7),管理字符设备(8),恢复线程(9),具体步骤如下1)在快照的基础上增加快照在线恢复能力。应用程序(1)是通过文件系统对数据进行操作的程序,通常情况下有两种数据读 写方式,一种是通过调用应用程序开发接口(2)提供的接口,再一种是通过系统调用方式 (B)直接访问虚拟文件系统(3)提供的接口,应用程序开发接口(2)也是通过系统调用方式 (B)来完成数据读写的;虚拟文件系统(3)存在的目的就是屏蔽文件系统(4)的具体实现而对上层提供主 要接口 ;快照源卷(5)和快照卷(6)是虚拟块设备。二者结合实现快照功能。当有写请求 发送到快照源卷(5)时,它首先判断扇区中的旧数据是否已经复制到了快照卷(6),否则通 过Kcopyd方式(C)将数据复制到快照卷(6)然后再完成写操作。这就是所谓的COW (copy on write),快照卷(6)也可以以块设备的形式提供对外的读写;在线恢复管理程序(7)用于协调统一管理快照的在线恢复操作,它与多个模块都 有接口,首先,它能够通知应用程序(1)准备恢复和开始恢复,以便应用程序(1)能够保证 通过一些策略保证数据是可用的,以及处理底层数据的变更,同时,它通过管理字符设备 (8)提供的接口进行数据恢复操作启动以及查看当前恢复的状态;管理字符设备(8)用于提供给用户级进程管理接口,并具体实现数据恢复、状态查看等操作;恢复线程(9)用于后台执行在线恢复功能;2)数据恢复流程,具体如下a.用户通过在线恢复管理程序(7)启动数据恢复;b.在线恢复管理程序(7)通知应用程序(1)准备开始数据恢复,使应用程序(1)有机会做一些保证数据一致性的操作。比如停止当前读写等;c.在线恢复管理程序(7)通知管理字符设备(8)启动数据恢复;d.管理字符设备(8)清空虚拟文件系统(3)或文件系统(4)的缓存,使恢复过程 中的数据不至于造成不一致;e.管理字符设备⑶通知快照源卷(5)将读写流程更改为“恢复过程中的读写” 过程;f.管理字符设备⑶启动恢复线程(9)进行真正的数据恢复;g.这时在线恢复管理程序(7)对(8)的调用返回;h.在线恢复管理程序(7)通知应用程序(1)正在恢复数据,使应用程序(1)有机 会恢复正常业务,包括继续进行读写,事实上,从a-g的操作对应用程序(1)所运行的业务 是完全忽略,认为是完全在线的,不至于导致长时间的离线操作;恢复线程(9)的工作是将快照存在的数据复制到快照源卷中,对快照中所存在的 每个块,包括相同大小的扇区的集合,操作如下a.将块索引加入正在恢复的列表,以便在线读写时查找;b.通过Kcopyd方式(C)将数据复制到原来的扇区;c.恢复完成后,将恢复位图中待恢复块所在的位置置0,恢复位图初始状态为,做 过快照的块置1,其它置0;d.将块索引从正在恢复列表中删除;3)恢复过程中读写流程数据恢复过程中,数据读写是采用特殊的读写流程,主要流程如下a.接收文件系统的块数据读写请求;b.将数据读写请求指定的扇区转换为块trunk ;c.查找正在恢复列表,所要请求的数据是否正在被恢复,如果正在恢复则等待,至 到恢复完成,否则转为函数ioctl方式(d);d.查找恢复位图代表该块的位是否为1e.如果为1,从快照中进行数据读写,否则从源卷中进行读写,恢复位图某个位为 0表示该trunk或者未被备份到快照卷,或者已经完成恢复,二必其1 ;f.将读写完成的结果返回上层。本发明的优异效果是在快照的基础上增加快照恢复的功能,其核心是管理字符设 备(8)、启动恢复线程(9)所提供的功能以及快照源卷(5)和快照卷(6)提供的恢复期快照 读写。快照源卷(5)和快照卷(6)并不依赖于某种特殊的实现。本发明旨在提供一种可通 用的在线恢复方法。


附图1在线快照恢复模块图;附图2数据恢复流程;附图3恢复过程中读写流程。
具体实施例方式参照附图对本发明的方法作以下详细的说明。1)在快照的基础上增加快照在线恢复能力。如附图1所示,应用程序(1)是通过文件系统对数据进行操作的程序。通常情况下有两种数据读写方式,一种是通过调用应用程序开发接口(2)提供的接口,再一种是通过 系统调用方式(B)直接访问(3)提供的接口。事实上应用程序开发接口(2)也是通过(B) 来完成数据读写的。虚拟文件系统(3)存在的目的就是屏蔽文件系统(4)的具体实现而对上层提供主
要接口。快照源卷(5)和快照卷(6)是虚拟块设备。二者结合实现快照功能。当有写请求 发送到(5)时,它首先判断扇区中的旧数据是否已经复制到了快照卷(6),否则通过Kcopyd 方式(C)将数据复制到快照卷(6)然后再完成写操作。这就是所谓的C0W(copy on write)。 快照卷(6)也可以以块设备的形式提供对外的读写。在线恢复管理程序(7)用于协调统一管理快照的在线恢复操作,它与多个模块都 有接口。首先,它能够通知(1)准备恢复和开始恢复,以便应用程序(1)能够保证通过一些 策略保证数据是可用的,以及处理底层数据的变更(可选的)。同时,它通过管理字符设备 (8)提供的接口进行数据恢复操作启动以及查看当前恢复的状态。管理字符设备(8)用于提供给用户级进程管理接口,并具体实现数据恢复、状态 查看等操作。恢复线程(9)用于后台执行在线恢复功能。2)数据恢复流程数据恢复流程可参考图2,具体如下a.用户通过在线恢复管理程序(7)启动数据恢复b.在线恢复管理程序(7)通知应用程序(1)准备开始数据恢复,使应用程序(1) 有机会做一些保证数据一致性的操作。比如停止当前读写等。c.在线恢复管理程序(7)通知⑶启动数据恢复d.管理字符设备(8)清空虚拟文件系统(3)(有的实现中也可能是文件系统(4)) 的缓存,使恢复过程中的数据不至于造成不一致。e.管理字符设备⑶通知快照源卷(5)将读写流程更改为“恢复过程中的读写” 过程f.管理字符设备⑶启动(9)进行真正的数据恢复g.这时在线恢复管理程序(7)对管理字符设备⑶的调用返回h.在线恢复管理程序(7)通知应用程序(1)正在恢复数据,使应用程序(1)有机 会恢复正常业务,比如继续进行读写。事实上,从a-g的操作对应用程序(1)所运行的业务是完全可以忽略,认为是完全在线的。不至于导致长时间的离线操作。恢复线程(9)的工作主要是将快照存在的数据复制到快照源卷中。对快照中所存在的每个块(相同大小的扇区的集合)操作如下a.将块索引加入正在恢复的列表,以便在线读写时查找b.通过Kcopyd方式(C)将数据复制到原来的扇区c.恢复完成后,将恢复位图中待恢复块所在的位置置O。恢复位图初始状态为,做 过快照的块置1,其它置O。d.将块索引从正在恢复列表中删除3)恢复过程中读写流程数据恢复过程中,数据读写是采用特殊的读写流程,主要流程如下a.接收文件系统的块数据读写请求b.将数据读写请求指定的扇区转换为块(trunk)c.查找正在恢复列表,所要请求的数据是否正在被恢复。如果正在恢复则等待,至 到恢复完成,否则转为函数ioctl(d)方式;d.查找恢复位图代表该块的位是否为1 ;e.如果为1,从快照中进行数据读写,否则从源卷中进行读写(恢复位图某个位为 0表示该trunk或者未被备份到快照卷,或者已经完成恢复,二必其一;f.将读写完成的结果返回上层。
权利要求
一种使用快照技术进行在线恢复的方法,其特征在于在线恢复所用的软硬件及步骤包括应用程序(1),应用程序开发接口(2),虚拟文件系统(3),文件系统(4),快照源卷(5),快照卷(6),在线恢复管理程序(7),管理字符设备(8),恢复线程(9),具体步骤如下1)在快照的基础上增加快照在线恢复能力应用程序(1)是通过文件系统对数据进行操作的程序,通常情况下有两种数据读写方式,一种是通过调用应用程序开发接口(2)提供的接口,再一种是通过系统调用方式(B)直接访问虚拟文件系统(3)提供的接口,应用程序开发接口(2)也是通过系统调用方式(B)来完成数据读写的;虚拟文件系统(3)存在的目的就是屏蔽文件系统(4)的具体实现而对上层提供主要接口;快照源卷(5)和快照卷(6)是虚拟块设备,二者结合实现快照功能。当有写请求发送到快照源卷(5)时,它首先判断扇区中的旧数据是否已经复制到了快照卷(6),否则通过Kcopyd方式(C)将数据复制到快照卷(6)然后再完成写操作,这就是所谓的COW,快照卷(6)也可以以块设备的形式提供对外的读写;在线恢复管理程序(7)用于协调统一管理快照的在线恢复操作,它与多个模块都有接口,首先,它能够通知应用程序(1)准备恢复和开始恢复,以便应用程序(1)能够保证通过一些策略保证数据是可用的,以及处理底层数据的变更,同时,它通过管理字符设备(8)提供的接口进行数据恢复操作启动以及查看当前恢复的状态;管理字符设备(8)用于提供给用户级进程管理接口,并具体实现数据恢复、状态查看等操作;恢复线程(9)用于后台执行在线恢复功能;2)数据恢复流程,具体如下a.用户通过在线恢复管理程序(7)启动数据恢复;b.在线恢复管理程序(7)通知应用程序(1)准备开始数据恢复,使应用程序(1)有机会做一些保证数据一致性的操作。比如停止当前读写等;c.在线恢复管理程序(7)通知管理字符设备(8)启动数据恢复;d.管理字符设备(8)清空虚拟文件系统(3)或文件系统(4)的缓存,使恢复过程中的数据不至于造成不一致;e.管理字符设备(8)通知快照源卷(5)将读写流程更改为“恢复过程中的读写”过程;f.管理字符设备(8)启动恢复线程(9)进行真正的数据恢复;g.这时(7)对(8)的调用返回;h.在线恢复管理程序(7)通知应用程序(1)正在恢复数据,使应用程序(1)有机会恢复正常业务,包括继续进行读写,事实上,从a-g的操作对应用程序(1)所运行的业务是完全忽略,认为是完全在线的,不至于导致长时间的离线操作;恢复线程(9)的工作是将快照存在的数据复制到快照源卷中,对快照中所存在的每个块,包括相同大小的扇区的集合,操作如下a.将块索引加入正在恢复的列表,以便在线读写时查找;b.通过Kcopyd方式(C)将数据复制到原来的扇区;c.恢复完成后,将恢复位图中待恢复块所在的位置置0,恢复位图初始状态为,做过快照的块置1,其它置0;d.将块索引从正在恢复列表中删除;3)恢复过程中读写流程数据恢复过程中,数据读写是采用特殊的读写流程,主要流程如下a.接收文件系统的块数据读写请求;b.将数据读写请求指定的扇区转换为块trunk;c.查找正在恢复列表,所要请求的数据是否正在被恢复,如果正在恢复则等待,至到恢复完成,否则转为函数ioctl方式(d);d.查找恢复位图代表该块的位是否为1e.如果为1,从快照中进行数据读写,否则从源卷中进行读写(恢复位图某个位为0表示该trunk或者未被备份到快照卷,或者已经完成恢复,二必其一;f.将读写完成的结果返回上层。
全文摘要
本发明提供一种使用快照技术进行在线恢复的方法,应用程序(1)是通过文件系统对数据进行操作的程序,通常情况下有两种数据读写方式,一种是通过调用应用程序开发接口(2)提供的接口,再一种是通过系统调用方式(B)直接访问虚拟文件系统(3)提供的接口,应用程序开发接口(2)也是通过系统调用方式(B)来完成数据读写的;虚拟文件系统(3)存在的目的就是屏蔽文件系统(4)的具体实现而对上层提供主要接口;快照源卷(5)和快照卷(6)是虚拟块设备。二者结合实现快照功能。当有写请求发送到快照源卷(5)时,它首先判断扇区中的旧数据是否已经复制到了快照卷(6),否则通过Kcopyd方式(C)将数据复制到快照卷(6)然后再完成写操作。这就是所谓的COW,快照卷(6)也可以以块设备的形式提供对外的读写。
文档编号G06F17/30GK101814043SQ20101014953
公开日2010年8月25日 申请日期2010年4月19日 优先权日2010年4月19日
发明者吴庆民 申请人:山东高效能服务器和存储研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1