生成快照的方法、利用快照进行数据恢复的方法及装置.pdf

上传人:54 文档编号:4219040 上传时间:2018-09-07 格式:PDF 页数:23 大小:3.06MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210200341.4

申请日:

2012.06.18

公开号:

CN102779080A

公开日:

2012.11.14

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 11/14变更事项:专利权人变更前:上海爱数软件有限公司变更后:上海爱数信息技术股份有限公司变更事项:地址变更前:200072 上海市闸北区洛川中路840号3幢101室变更后:201112 上海市闵行区联航路1188号8幢第2层A-1单元|||授权|||著录事项变更IPC(主分类):G06F 11/14变更事项:申请人变更前:上海爱数软件有限公司变更后:上海爱数软件有限公司变更事项:地址变更前:201315 上海市南汇区康桥镇康土路25号204室变更后:200072 上海市闸北区洛川中路840号3幢101室|||实质审查的生效IPC(主分类):G06F 11/14申请日:20120618|||公开

IPC分类号:

G06F11/14

主分类号:

G06F11/14

申请人:

上海爱数软件有限公司

发明人:

叶佑群

地址:

201315 上海市南汇区康桥镇康土路25号204室

优先权:

专利代理机构:

北京德琦知识产权代理有限公司 11018

代理人:

王一斌;王琦

PDF下载: PDF下载
内容摘要

本发明提供了一种生成快照的方法,包括:A、监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在与源介质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否则根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中生成一个新的影射页,并更新当前快照子数据区保存的映射表及暂存的影射表;B、判断是否满足生成快照的触发条件,如果是,执行步骤C,否则执行步骤A;C、更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表。本发明还提供了一种生成快照的装置。采用本发明的方法及装置,能够减少对存储介质的IO读写次数,降低生成快照所耗费的时间,提高系统性能。

权利要求书

1.一种生成快照的方法,其特征在于,该方法包括:
A、监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在
与源介质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源
介质,否则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子
数据区中生成一个新的影射页,并更新当前快照子数据区保存的映射表及暂存的影射
表;
B、判断是否满足生成快照的触发条件,如果是,执行步骤C,否则执行步骤A;
C、更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表。
2.根据权利要求1所述的方法,其特征在于,所述步骤A之前进一步包括:
判断是否存在与源介质绑定的快照介质,如果存在,则确定当前快照子数据区,
否则,选择一个作为快照介质的存储介质与源介质进行绑定,对快照介质进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述快照介质包含元数据区及快照
数据区;
所述元数据区用以保存元数据;所述元数据至少包含快照数量、预设的影射页数
量的最大值、当前快照子数据区的状态信息、快照数据区的起止地址及当前快照子数
据区的起止地址;
所述快照数据区包含多个快照子数据区;所述快照子数据区用以保存影射表及影
射页;所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述
快照子数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数
据。
4.根据权利要求1所述的方法,其特征在于,步骤A所述判断快照介质包含的
当前快照子数据区中是否存在与源介质的写操作携带的写数据地址匹配的影射页包
括:
根据源介质的写操作携带的写数据地址,确定源介质的影射页;
判断暂存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则确
定快照介质包含的当前快照子数据区中存在与源介质的写操作携带的写地址匹配的影
射页,如果不存在,则确定快照介质包含的当前快照子数据区中不存在与源介质的写
操作携带的写地址匹配的影射页。
5.根据权利要求1所述的方法,其特征在于,步骤A所述在当前快照子数据区
中生成一个新的影射页,并更新当前快照子数据区保存的影射表及暂存的影射表包括:
对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后的数据
写入当前快照子数据区中的一个空影射页中,将写入拷贝后的数据的影射页作为生成
的新的影射页;
将源介质的写操作携带的写数据地址对应的源介质的影射页,与当前快照子数据
区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保存的影射
表及暂存的影射表。
6.根据权利要求1所述的方法,其特征在于,所述生成快照的触发条件为:当前
快照子数据区包含的影射页的数量达到预设的影射页数量的最大值,或者接收到由快
照生成周期触发生成的快照生成指令。
7.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信息标
注为已完成。
8.根据权利要求2所述的方法,其特征在于,所述确定当前快照子数据区包括:
读取快照介质的元数据区中包含的元数据,在元数据中的当前快照子数据区的状
态信息为已完成时,根据元数据中的当前快照子数据区的起止地址确定下一个快照子
数据区的起止地址,在下一个快照子数据区中建立一个空的影射表,并更新元数据区
保存的元数据;
在元数据中的当前快照子数据区的状态信息为未完成时,保持当前快照子数据区
不变。
9.根据权利要求2所述的方法,其特征在于,所述对快照介质进行初始化包括:
将快照介质划分为元数据区及快照数据区;
根据快照数据区的起止地址及预设的快照子数据区的大小,确定当前快照子数据
区的起止地址,将当前快照子数据区的状态标注为未完成;
将快照数量、预设的影射页数量的最大值、快照数据区的起止地址、当前快照子
数据区的状态及当前快照子数据区的起止地址的作为元数据写入元数据区;
根据当前快照子数据区的起止地址,在快照数据区包含的当前快照子数据区建立
一个空的影射表,并暂存一个空的影射表;
根据预设的影射页数量的最大值及预设的影射页大小,将当前快照子数据区中除
保存影射表之外的存储空间划分为多个空的影射页。
10.一种生成快照的装置,其特征在于,该装置包含:
源介质,用以保存源数据;
快照介质,用以保存由源数据生成的快照数据;所述快照介质包含用以保存元数
据的元数据区及快照数据区;所述快照数据区包含多个用以保存影射表及影射页的快
照子数据区;
存储控制器,监控对源介质的写操作,判断当前快照子数据区中是否存在与源介
质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,
否则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区
中生成一个新的影射页,并更新当前快照子数据区保存的影射表及其暂存的影射表;
所述存储控制器判断是否满足生成快照的触发条件,如果是,更新元数据区保存
的元数据,否则继续监控对源介质的写操作。
11.根据权利要求10所述的装置,其特征在于,所述存储控制器还判断是否存在
与源介质绑定的快照介质,如果存在,则确定当前快照子数据区,否则,选择一个作
为快照介质的存储介质与源介质进行绑定,对快照介质进行初始化。
12.根据权利要求10所述的装置,其特征在于,所述元数据至少包含快照数量、
预设的影射页数量的最大值、当前快照子数据区的状态信息、快照数据区的起止地址
及当前快照子数据区的起止地址;
所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述快
照子数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数
据。
13.根据权利要求10所述的装置,其特征在于,所述存储控制器包含:
操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源
介质,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据
快照生成模块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,
继续监控对源介质的操作;
快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂
存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发
至操作监控模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷
贝,将拷贝后的数据写入当前快照子数据区中的一个空的影射页中,生成新的影射页;
所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页,
与当前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子
数据区保存的影射表及其暂存的影射表中;
所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的影
射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,
如果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信
息标注为已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块。
14.根据权利要求11所述的装置,其特征在于,所述存储控制器包含:
初始化模块,启动后判断是否存在与源介质绑定的快照介质,如果存在,则根据
元数据中的当前快照子数据区的状态信息,确定当前快照子数据区,否则,选择一个
作为快照介质的存储介质与源介质进行绑定,将快照介质划分为元数据区及快照数据
区,将元数据写入元数据区,将快照数据区划分为多个包含空的影射页及空的影射表
的快照子数据区;
操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源
介质,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据
快照生成模块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,
继续监控对源介质的操作;
快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂
存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发
至操作监控模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷
贝,将拷贝后的数据写入当前快照子数据区中的一个空的影射页中,生成新的影射页;
所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页,
与当前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子
数据区保存的影射表及其暂存的影射表中;
所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的影
射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,
如果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信
息标注为已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块。
15.一种利用生成的快照进行数据恢复的方法,其特征在于,该方法包括:
根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照子数据区;
生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照子数据区
的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中;
根据快照子数据区对应的时间点,更新恢复影射表;
利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数据区至当前
快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有映射关
系的源介质的影射页中;
清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照子数据区中保
存的影射表及影射页,删除恢复影射表,更新元数据区。
16.根据权利要求15所述的方法,其特征在于,所述确定进行数据恢复的快照子
数据区包括:
根据接收到的数据恢复指令,结束生成快照;
根据快照的时间点、快照生成周期及元数据区保存的元数据,由生成快照时的当
前快照子数据区,确定进行数据恢复的快照子数据区。
17.根据权利要求15所述的方法,其特征在于,所述根据快照子数据区对应的时
间点,更新恢复影射表包括:
比较包含了相同源介质的影射页的映射关系所属的快照子数据区对应的时间点,
保留所属的快照子数据区所对应的生成快照的时间点最早的一条映射关系,删除其余
的包含了相同源介质的影射页的映射关系,获得更新后的恢复映射表。
18.根据权利要求15所述的方法,其特征在于,所述更新元数据区包含:
将元数据区保存的元数据中的快照数量更新为进行数据恢复的快照子数据区生成
之前的快照数量;
将元数据区保存的元数据中的当前快照子数据区的状态信息更新为已完成;
将元数据区保存的元数据中当前快照子数据区的起止地址更新为进行数据恢复的
快照子数据区之前生成的一个快照子数据区的起止地址。
19.一种利用生成的快照进行数据恢复的装置,其特征在于,该装置包含前述权
利要求10至权利要求14任一所述的生成快照的装置及恢复控制器;
所述恢复控制器根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快
照子数据区,生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照
子数据区的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中,根
据快照子数据区对应的时间点,更新恢复影射表;
所述恢复控制器利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照
子数据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写
入与其有映射关系的源介质的影射页中;
所述恢复控制器清空进行数据恢复的快照子数据区至当前快照子数据区的多个快
照子数据区中保存的影射表及影射页,删除恢复影射表,更新元数据区。
20.根据权利要求19所述的装置,其特征在于,所述恢复控制器包含:
快照恢复模块,根据接收到的数据恢复指令,结束生成快照,根据快照的时间点、
快照生成周期及元数据区保存的元数据,由生成快照时的当前快照子数据区,确定进
行数据恢复的快照子数据区;
所述快照恢复模块生成一个空的恢复影射表,将进行数据恢复的快照子数据区至
当前快照子数据区的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射
表中;
所述快照恢复模块比较包含了相同源介质的影射页的映射关系所属的快照子数据
区对应的时间点,保留所属的快照子数据区所对应的生成快照的时间点最早的一条映
射关系,删除其余的包含了相同源介质的影射页的映射关系,获得更新后的恢复映射
表,输出更新后的恢复影射表至更新模块,并删除更新后的恢复映射表;
更新模块,利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数
据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与
其有映射关系的源介质的影射页中;
所述更新模块清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照
子数据区中保存的影射表及影射页,删除恢复影射表,将元数据区保存的元数据中的
快照数量更新为进行数据恢复的快照子数据区生成之前的快照数量,将元数据区保存
的元数据中的当前快照子数据区的状态信息更新为已完成,将元数据区保存的元数据
中当前快照子数据区的起止地址更新为进行数据恢复的快照子数据区之前生成的一个
快照子数据区的起止地址。

说明书

生成快照的方法、利用快照进行数据恢复的方法及装置

技术领域

本发明涉及快照生成技术,特别涉及一种生成快照的方法、一种生成快照的装置、
一种利用生成的快照进行数据恢复的方法、及一种利用生成的快照进行数据恢复的装
置。

背景技术

随着计算机及网络的发展,社会进入了一个信息爆炸的时代;在网络环境下,一
个月内产生的数据量可能是过去几个月产生的数据量的总和。企业的生产以及个人的
生活都越来越依赖于计算机以及存放在装置上的数据。因此,数据的丢失与损坏将会
给人们的生产生活带来不可估量的损失。

随着存储技术的进步,为了预防数据丢失,通常采用备份、归档、远程复制等技
术对数据进行保护,而备份、归档、远程复制都属于实现数据备份的方法。为了避免
对系统的性能影响,需要在装置空闲时进行数据备份,这就导致两次备份间隔的时间
较长,在需要根据备份的数据对已损坏的数据进行恢复的过程中,处于两次备份间隔
的时间内的数据不可恢复;而提高数据备份频率就会影响系统的正常工作。

为了实现数据的持续性保护及数据可恢复性,快照(Snapshot)技术产生了。快照方
法就是对某一数据集进行即时拷贝产生对于数据集的一个完整副本的方法;其中,数
据集为源数据,数据集的副本为快照数据。现有的快照方法生成的是一个数据集的完
整副本,每生成一次快照数据,就需要根据数据集生成一完整副本,需要占用较大的
存储空间,耗费较多的时间生成快照。为了减少占用的存储空间,基于I/O重定向的
快照生成方法只针对变化的数据进行保存。

图1为现有的生成快照的装置的结构示意图。现结合图1,对现有的生成快照的
装置进行说明,具体如下:

图1所示的装置采用的是基于I/O重定向的快照生成方法。现有的生成快照的装
置包含存储控制器10和存储器11;其中,存储器11中包含用以保存源数据的源介质
111和用以保存快照数据的快照介质112。存储控制器10在生成快照的相邻两次间隔
时间内,将对于源介质111中的源数据的修改数据重定向至快照介质112中,写入与
源地址对应的重定向地址中。源数据的修改数据为重定向数据;重定向地址为用以保
存重定向数据的地址。存储控制器10根据快照生成指令,中断对存储器11的源介质
111的所有读写操作;根据源地址从源介质111中读取源数据,对源数据即时拷贝生
成快照数据;将快照数据写入快照介质112中的快照地址上;读取重定向地址中的数
据;将从快照介质112的重定向地址中读取的数据写入源介质111的源地址,以完成
本次生成快照的操作。

现有的基于快照的装置能够为用户提供特定时刻产生的快照数据,但在快照生成
期间,每完成一次快照需要执行一次从源介质读源数据、执行一次向快照介质写快照
数据、执行一次快照介质中读重定向数据、及执行一次向源介质写重定向数据的操作,
且在将源介质中的数据发生改变时,都需要将改变的数据作为重定向数据写入快照介
质中的重定向地址中,这样,频繁地对存储介质的读写操作会降低存储介质的IO性能,
提高了生成快照所耗费的时间,降低了生成快照的装置的系统性能。

发明内容

有鉴于此,本发明的目的在于提供一种生成快照的方法,该方法能够减少对存储
介质的IO读写次数,降低生成快照所耗费的时间,提高系统性能。

本发明的目的在于提供一种生成快照的装置,该装置能够减少对存储介质的IO读
写次数,降低生成快照所耗费的时间,提高系统性能。

本发明的目的在于提供一种利用生成的快照进行数据恢复的方法,该方法能够减
少对存储介质的IO读写次数,提高系统性能。

本发明的目的在于提供一种利用生成的快照进行数据恢复的方法,该方法能够减
少对存储介质的IO读写次数,提高系统性能。

一种生成快照的方法,该方法包括:

A、监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在
与源介质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源
介质,否则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子
数据区中生成一个新的影射页,并更新当前快照子数据区保存的映射表及暂存的影射
表;

B、判断是否满足生成快照的触发条件,如果是,执行步骤C,否则执行步骤A;

C、更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表。

较佳地,所述步骤A之前进一步包括:

判断是否存在与源介质绑定的快照介质,如果存在,则确定当前快照子数据区,
否则,选择一个作为快照介质的存储介质与源介质进行绑定,对快照介质进行初始化。

上述方法中,所述快照介质包含元数据区及快照数据区;

所述元数据区用以保存元数据;所述元数据至少包含快照数量、预设的影射页数
量的最大值、当前快照子数据区的状态信息、快照数据区的起止地址及当前快照子数
据区的起止地址;

所述快照数据区包含多个快照子数据区;所述快照子数据区用以保存影射表及影
射页;所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述
快照子数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数
据。

上述方法中,步骤A所述判断快照介质包含的当前快照子数据区中是否存在与源
介质的写操作携带的写数据地址匹配的影射页包括:

根据源介质的写操作携带的写数据地址,确定源介质的影射页;

判断暂存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则确
定快照介质包含的当前快照子数据区中存在与源介质的写操作携带的写地址匹配的影
射页,如果不存在,则确定快照介质包含的当前快照子数据区中不存在与源介质的写
操作携带的写地址匹配的影射页。

上述方法中,步骤A所述在当前快照子数据区中生成一个新的影射页,并更新当
前快照子数据区保存的影射表及暂存的影射表包括:

对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后的数据
写入当前快照子数据区中的一个空影射页中,将写入拷贝后的数据的影射页作为生成
的新的影射页;

将源介质的写操作携带的写数据地址对应的源介质的影射页,与当前快照子数据
区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保存的影射
表及暂存的影射表。

上述方法中,所述生成快照的触发条件为:当前快照子数据区包含的影射页的数
量达到预设的影射页数量的最大值,或者接收到由快照生成周期触发生成的快照生成
指令。

上述方法中,所述步骤C包括:将元数据包含的快照数量增1,将元数据包含的
当前快照子数据区的状态信息标注为已完成。

上述方法中,所述确定当前快照子数据区包括:

读取快照介质的元数据区中包含的元数据,在元数据中的当前快照子数据区的状
态信息为已完成时,根据元数据中的当前快照子数据区的起止地址确定下一个快照子
数据区的起止地址,在下一个快照子数据区中建立一个空的影射表,并更新元数据区
保存的元数据;

在元数据中的当前快照子数据区的状态信息为未完成时,保持当前快照子数据区
不变。

上述方法中,所述对快照介质进行初始化包括:

将快照介质划分为元数据区及快照数据区;

根据快照数据区的起止地址及预设的快照子数据区的大小,确定当前快照子数据
区的起止地址,将当前快照子数据区的状态标注为未完成;

将快照数量、预设的影射页数量的最大值、快照数据区的起止地址、当前快照子
数据区的状态及当前快照子数据区的起止地址的作为元数据写入元数据区;

根据当前快照子数据区的起止地址,在快照数据区包含的当前快照子数据区建立
一个空的影射表,并暂存一个空的影射表;

根据预设的影射页数量的最大值及预设的影射页大小,将当前快照子数据区中除
保存影射表之外的存储空间划分为多个空的影射页。

一种生成快照的装置,该装置包含:

源介质,用以保存源数据;

快照介质,用以保存由源数据生成的快照数据;所述快照介质包含用以保存元数
据的元数据区及快照数据区;所述快照数据区包含多个用以保存影射表及影射页的快
照子数据区;

存储控制器,监控对源介质的写操作,判断当前快照子数据区中是否存在与源介
质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,
否则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区
中生成一个新的影射页,并更新当前快照子数据区保存的影射表及其暂存的影射表;

所述存储控制器判断是否满足生成快照的触发条件,如果是,更新元数据区保存
的元数据,否则继续监控对源介质的写操作。

较佳地,所述存储控制器还判断是否存在与源介质绑定的快照介质,如果存在,
则确定当前快照子数据区,否则,选择一个作为快照介质的存储介质与源介质进行绑
定,对快照介质进行初始化。

上述装置中,所述元数据至少包含快照数量、预设的影射页数量的最大值、当前
快照子数据区的状态信息、快照数据区的起止地址及当前快照子数据区的起止地址;

所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述快
照子数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数
据。

上述装置中,所述存储控制器包含:

操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源
介质,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据
快照生成模块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,
继续监控对源介质的操作;

快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂
存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发
至操作监控模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷
贝,将拷贝后的数据写入当前快照子数据区中的一个空的影射页中,生成新的影射页;

所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页,
与当前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子
数据区保存的影射表及其暂存的影射表中;

所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的影
射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,
如果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信
息标注为已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块。

上述装置中,所述存储控制器包含:

初始化模块,启动后判断是否存在与源介质绑定的快照介质,如果存在,则根据
元数据中的当前快照子数据区的状态信息,确定当前快照子数据区,否则,选择一个
作为快照介质的存储介质与源介质进行绑定,将快照介质划分为元数据区及快照数据
区,将元数据写入元数据区,将快照数据区划分为多个包含空的影射页及空的影射表
的快照子数据区;

操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源
介质,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据
快照生成模块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,
继续监控对源介质的操作;

快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂
存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发
至操作监控模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷
贝,将拷贝后的数据写入当前快照子数据区中的一个空的影射页中,生成新的影射页;

所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页,
与当前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子
数据区保存的影射表及其暂存的影射表中;

所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的影
射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,
如果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信
息标注为已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块。

一种利用生成的快照进行数据恢复的方法,该方法包括:

根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照子数据区;

生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照子数据区
的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中;

根据快照子数据区对应的时间点,更新恢复影射表;

利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数据区至当前
快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有映射关
系的源介质的影射页中;

清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照子数据区中保
存的影射表及影射页,删除恢复影射表,更新元数据区。

上述方法中,所述确定进行数据恢复的快照子数据区包括:

根据接收到的数据恢复指令,结束生成快照;

根据快照的时间点、快照生成周期及元数据区保存的元数据,由生成快照时的当
前快照子数据区,确定进行数据恢复的快照子数据区。

上述方法中,所述根据快照子数据区对应的时间点,更新恢复影射表包括:

比较包含了相同源介质的影射页的映射关系所属的快照子数据区对应的时间点,
保留所属的快照子数据区所对应的生成快照的时间点最早的一条映射关系,删除其余
的包含了相同源介质的影射页的映射关系,获得更新后的恢复映射表。

上述方法中,所述更新元数据区包含:

将元数据区保存的元数据中的快照数量更新为进行数据恢复的快照子数据区生成
之前的快照数量;

将元数据区保存的元数据中的当前快照子数据区的状态信息更新为已完成;

将元数据区保存的元数据中当前快照子数据区的起止地址更新为进行数据恢复的
快照子数据区之前生成的一个快照子数据区的起止地址。

一种利用生成的快照进行数据恢复的装置,该装置包含前述任一所述的生成快照
的装置及恢复控制器;

所述恢复控制器根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快
照子数据区,生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照
子数据区的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中,根
据快照子数据区对应的时间点,更新恢复影射表;

所述恢复控制器利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照
子数据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写
入与其有映射关系的源介质的影射页中;

所述恢复控制器清空进行数据恢复的快照子数据区至当前快照子数据区的多个快
照子数据区中保存的影射表及影射页,删除恢复影射表,更新元数据区。

上述装置中,所述恢复控制器包含:

快照恢复模块,根据接收到的数据恢复指令,结束生成快照,根据快照的时间点、
快照生成周期及元数据区保存的元数据,由生成快照时的当前快照子数据区,确定进
行数据恢复的快照子数据区;

所述快照恢复模块生成一个空的恢复影射表,将进行数据恢复的快照子数据区至
当前快照子数据区的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射
表中;

所述快照恢复模块比较包含了相同源介质的影射页的映射关系所属的快照子数据
区对应的时间点,保留所属的快照子数据区所对应的生成快照的时间点最早的一条映
射关系,删除其余的包含了相同源介质的影射页的映射关系,获得更新后的恢复映射
表,输出更新后的恢复影射表至更新模块,并删除更新后的恢复映射表;

更新模块,利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数
据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与
其有映射关系的源介质的影射页中;

所述更新模块清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照
子数据区中保存的影射表及影射页,删除恢复影射表,将元数据区保存的元数据中的
快照数量更新为进行数据恢复的快照子数据区生成之前的快照数量,将元数据区保存
的元数据中的当前快照子数据区的状态信息更新为已完成,将元数据区保存的元数据
中当前快照子数据区的起止地址更新为进行数据恢复的快照子数据区之前生成的一个
快照子数据区的起止地址。

由上述的技术方案可见,本发明提供了一种生成快照的方法及装置,在该方法中,
监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在与源介质
的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否
则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中
生成一个新的影射页,并更新当前快照子数据区保存的映射表及暂存的影射表,判断
是否满足生成快照的触发条件,如果是,则更新快照介质包含的元数据区中保存的元
数据,清空暂存的影射表,否则继续监控对源介质的写操作。本发明还提供了一种利
用生成的快照进行数据恢复的方法及装置,在该方法中,根据快照子数据区中保存的
影射表对源介质进行数据恢复,相较于现有的利用快照进行数据恢复的方法,本发明
利用生成的快照进行数据恢复时,减少了对存储介质的IO读写次数。采用本发明的方
法及装置,能够极大地减少了对存储介质的IO读写次数,降低生成快照所耗费的时间,
提高系统性能。

附图说明

图1为现有的生成快照的装置的结构示意图。

图2为本发明生成快照的方法流程图。

图3为本发明利用生成的快照进行数据恢复的方法流程图。

图4为本发明生成快照的装置的结构示意图。

图5为本发明利用生成的快照进行数据恢复的装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实
施例,对本发明进一步详细说明。

本发明提供了一种生成快照的方法及装置,在该方法中,监控对源介质的写
操作,判断快照介质包含的当前快照子数据区中是否存在与源介质的写操作携带
的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否则,根据
源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中生成
一个新的影射页,并更新当前快照子数据区中的影射表;根据生成快照的触发条
件,更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表。其中,
本发明提及的暂存的影射表是暂存于生成快照的装置所装设的系统的内存中的影
射表,其保持与当前快照子数据区的影射表同步,作用是为了加快影射页的查找
效率。

本发明还提供了一种利用生成的快照进行数据恢复的方法及装置,该方法中,
利用生成快照期间保存于快照子数据区中的影射表,对需要进行数据恢复的源介
质中的影射页进行定位,将快照子数据区中的影射页中保存的快照数据写入源介
质中与其有映射关系的影射页中,节省了查找定位源介质中需要进行数据恢复的
存储空间所耗费的时间,提高了系统性能,由于在生成快照的过程中减少了对存
储介质的IO读写次数,相较于现有的利用生成快照进行数据恢复的方法,减少了
对存储介质的IO读写次数。当配置的影射页越大,则减少的IO读写次数则越多,
效率的提升也就越大。

为了表述清楚,现对本发明提及的一些名词进行说明,具体如下:本发明的
快照介质为用以保存源介质中的源数据的快照数据的存储介质;快照介质可被划
分为元数据区及快照数据区;元数据区用以保存与生成快照相关的元数据;快照
数据区用以保存源介质中的源数据的快照数据。其中,元数据至少包含快照数量、
预设的影射页数量的最大值、当前快照子数据区的状态信息、快照数据区的起止
位置及当前快照子数据区的起止位置;快照数据区可被划分为多个快照子数据区,
每一个快照子数据区用以保存一个快照生成周期内生成的源数据的快照数据;每
一个快照子数据区可被划分为用以保存影射表的影射表区和用以保存多个影射页
的影射数据区。

本发明提及的影射页即为依据生成快照时对系统性能的要求,在源介质上和
快照介质的快照子数据区中划分的一定大小的存储空间,影射页的大小可为2的
幂次方,最小为16KB,最大可达到2048KB;源介质的影射页的大小与绑定的快
照介质包含的快照子数据区中的影射页的大小相同。本发明的源介质根据其大小
及设置的影射页的大小,能够确定源介质包含的影射页的数量,源介质中的影射
页可以为依次编码;本发明的快照介质中的每一个快照子数据区根据其大小及设
置的影射页的大小,能够确定每一个快照子数据区包含的影射页的数量,每一个
快照子数据区中影射页是独立编码的,且在一个快照子数据区中影射页按照其地
址依次编码。

本发明提及的源介质的影射页与快照介质的影射页之间的映射关系为一种指
向关系,即源介质的影射页中保存的源数据的拷贝数据被写入到一个快照子数据
区中的某一个影射页中,则由源介质的影射页指向该快照子数据区的该影射页的
指向关系,就代表了一个映射关系,在影射表中可以用一个影射项进行表示。比
如:比如:一个源介质有128个数据块,编号为块0到块127,每个数据块的大小
为16KB,预设的影射页的大小为32KB,则这个源介质在逻辑上被分成64个影射
页,影射页依次编号为影射页0到影射页63;若对源介质的一个写操作中携带的
写数据地址包含于块3的存储空间内,则这个写操作会落入到影射页1中;若影
射页1保存的源数据的快照数据被写入到当前快照子数据区中的影射页8中,则
在影射表中会生成一条由源介质的影射页1指向当前快照子数据区的影射页8的
映射关系。

图2为本发明生成快照的方法流程图。现结合图2,对本发明生成快照的方法
进行说明,具体如下:

步骤201:监控对源介质的操作的类型,如果是写操作,则执行步骤203,如
果是读操作,执行步骤202;

该步骤可通过拦截对源介质的所有操作,通过对操作的类型的识别,对源介
质的操作的类型进行监控。其中,可通过标识符,对操作的类型进行识别,比如:
读操作的标识符为READ,写操作的标识符为WRITE。

步骤202:允许对源介质的读操作,之后执行步骤201;

该步骤可通过放行对源介质的读操作来实现。

步骤203:判断当前快照子数据区中是否存在与写操作的写数据地址匹配的影
射页,如果是,执行步骤204,否则执行步骤205;

该步骤包括:步骤2031,冻结对源介质的所有读操作或写操作;步骤2032,
根据源介质的写操作中携带的写数据地址,确定进行本次写操作的源介质的影射
页;步骤2033,根据暂存的影射表,判断影射表中是否存在包含源介质的影射页
的映射关系,如果是,执行步骤204,否则执行步骤205。

步骤2032,可根据影射页的大小、源介质的起止地址及写数据地址,确定写
数据地址所属的影射页的存储空间,进而确定进行本次写操作的影射页。

由于本发明的快照生成方法中,每当当前快照子数据区中生成了一个新的影
射页时,就会对暂存的影射表及当前快照子数据区保存的影射表进行更新,因此,
暂存的影射表能够与当前快照子数据区保存的影射表保持同步。其中,快照子数
据区中保存的影射表可在利用生成的快照进行数据恢复时定位源介质中的影射
页,而暂存的影射页是为了避免频繁地对快照子数据区中的影射表进行读取和查
找,这样可以提高系统的性能。

步骤204:允许对源介质的写操作,之后执行步骤201;

该步骤可通过放行对源介质的写操作来实现。

步骤205:在当前快照子数据区中生成新的影射页,更新当前快照子数据区保
存的影射表及暂存的影射表;

该步骤包括:步骤2051,对源介质的写操作携带的写数据地址中记载的源数
据进行拷贝;步骤2052,将拷贝后的数据写入当前快照子数据区中的一个空影射
页中,将写入拷贝后的数据的影射页作为生成的新的影射页;步骤2053,将源介
质的写操作携带的写数据地址对应的源介质的影射页,与当前快照子数据区中写
入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保存的影射表
及暂存的影射表中。

步骤2052中提及的拷贝后的数据即为此刻生成的写数据地址中记载的源数据
的快照数据;步骤2052中提及的当前快照子数据区中的影射页可为按照预设的影
射页大小划分的存储空间,在写入拷贝后的数据时,可根据预设的影射页大小及
当前快照子数据区的起止地址,将拷贝后的数据写入已保存了快照数据的影射页
的下一个空的影射页的存储空间中。

步骤206:判断是否满足生成快照的触发条件,如果是,执行步骤207,否则
执行步骤201;

该步骤中判断是否满足生成快照的触发条件可为判断当前快照子数据区中的
影射页的数量是否达到元数据中包含的预设的影射页数量的最大值,或者为判断
是否接收到由快照生成周期触发生成的快照生成指令,如果是,执行步骤207,否
则执行步骤201,仍然执行本次快照生成周期。

可根据影射表中的映射关系的数量确定当前快照子数据区中的影射页的数
量。

步骤207:更新元数据区中保存的元数据,清空暂存的影射表,之后结束操作;

该步骤包括:步骤2071,将元数据包含的快照数量增1;步骤2072,将元数
据包含的当前快照子数据区的状态信息标注为已完成;步骤2073,清空暂存的影
射表。

由步骤201执行至步骤207完成了一个快照数据的生成过程,步骤207之后
可结束该快照生成周期,进入下一个快照生成周期,或者结束快照生成流程。若
进入下一个快照生成周期,可执行步骤201。

优选地,在步骤201之前进一步包括:

步骤200:判断是否存在与源介质绑定的快照介质,如果是,则确定当前快照
子数据区,否则,选择一个作为快照介质的存储介质与源介质进行绑定,对快照
介质进行初始化。

步骤200中,可根据一个用以记载源介质与快照介质的绑定关系的配置文件,
来判断是否存在与源介质绑定的快照介质。

步骤200中确定当前快照子数据区的方法包括:读取快照介质的元数据区中
的元数据,在元数据中的当前快照子数据区的状态信息为已完成时,根据元数据
中当前快照子数据区的起止地址,确定下一个快照子数据区的起止地址,在下一
个快照子数据区中建立一个空的影射表,并更新元数据区保存的元数据;在元数
据中的当前快照子数据区的状态信息为未完成时,保持当前快照子数据区不变。

其中,上述方法中提及的更新元数据区保存的元数据包括:将下一个快照子
数据区的起止地址作为元数据中当前快照子数据区的起止地址,将当前快照子数
据区的状态信息更新为未完成。

步骤200中对快照介质进行初始化包括:将快照介质划分为元数据区及快照
数据区;根据快照数据区的起止地址及预设的快照子数据区的大小,确定当前快
照子数据区的起止地址,将当前快照子数据区的状态标注为未完成;将快照数量、
预设的影射页数量的最大值、快照数据区的起止地址、当前快照子数据区的状态
及当前快照子数据区的起止地址的作为元数据写入元数据区;根据当前快照子数
据区的起止地址,在快照数据区包含的当前快照子数据区建立一个空的影射表,
并暂存一个空的影射表;根据预设的影射页数量的最大值及预设的影射页大小,
将当前快照子数据区中除保存影射表之外的存储空间划分为多个空的影射页。

图3为本发明利用生成的快照进行数据恢复的方法流程图。现结合图3,对本
发明利用生成的快照进行数据恢复的方法进行说明,具体如下:

本发明的数据恢复方法是利用图2的方法所生成的快照数据来进行数据保护
和恢复。

步骤301:根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照
子数据区;

该步骤包括:步骤3011,根据接收到的数据恢复指令,结束生成快照;步骤
3012,根据快照的时间点、快照生成周期及元数据,由生成快照时的当前快照子
数据区,确定进行数据恢复的快照子数据区。

步骤3012中提及的进行数据恢复的快照子数据区可为当前快照子数据区,或
当前快照子数据区之前已经保存了快照数据的快照子数据区,可根据快照的时间
点及快照的生成周期,推算所要进行数据恢复的快照子数据区与当前快照子数据
区间生成的快照的个数,进而确定进行数据恢复的快照子数据区。

步骤302:生成一个恢复影射表;

该步骤包括:步骤3021,冻结对源介质的读操作及写操作;步骤3022,生成
一个空的恢复影射表;步骤3023,将进行数据恢复的快照子数据区至当前快照子
数据区的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中。

比如:进行数据恢复的快照子数据区为快照子数据区3,当前的快照子数据区
为快照子数据区6,则快照子数据区3、快照子数据区4、快照子数据区5及快照
子数据区6中保存的影射表中的映射关系被写入生成的恢复影射表中。

步骤303:更新恢复影射表;

该步骤包括:比较包含了相同源介质的影射页的映射关系所属的快照子数据
区对应的时间点,保留所属的快照子数据区所对应的生成快照的时间点最早的一
条映射关系,删除其余的包含了相同源介质的影射页的映射关系,获得更新后的
恢复映射表。

比如:快照子数据区3中包含了由源介质的影射页1至快照子数据区3中影
射页4的映射关系,快照子数据区5中包含了由源介质的影射页1至快照子数据
区5中影射页9的映射关系,则在更新恢复影射表时,由于快照子数据区3的生
成时间点早于快照子数据区5的生成时间点,则保留快照子数据区3中有关源介
质的影射页1的映射关系,而删除快照子数据区5中有关源介质的影射页1的映
射关系。

步骤304:利用更新后的恢复影射表对源介质进行数据恢复;

该步骤包括:利用更新后的恢复映射表中的映射关系,将进行数据恢复的快
照子数据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数
据,写入与其有映射关系的源介质的影射页中。

步骤305:清空多个快照子数据区,并更新元数据区;

该步骤包括:步骤3051,清空进行数据恢复的快照子数据区至当前快照子数
据区的多个快照子数据区中保存的影射表及影射页;步骤3052,删除恢复影射表;
步骤3053,将元数据区保存的元数据中的快照数量更新为进行数据恢复的快照子
数据区生成之前的快照数量,将元数据区保存的元数据中的当前快照子数据区的
状态信息更新为已完成,将元数据区保存的元数据中当前快照子数据区的起止地
址更新为进行数据恢复的快照子数据区之前生成的一个快照子数据区的起止地
址。

步骤306:结束数据恢复。

经该步骤后,可跳回至步骤201执行生成快照流程,也可结束对快照介质的
所有流程。

图4为本发明生成快照的装置的结构示意图。现结合图4,对本发明生成快照
的装置的结构进行说明,具体如下:

本发明生成快照的装置包含:源介质40、快照介质41及存储控制器42。

源介质40用以保存源数据。

快照介质41用以保存由源数据生成的快照数据。其中,快照介质41包含用以保
存元数据的元数据区411及快照数据区;快照数据区包含多个用以保存影射表及影射
页的快照子数据区412;快照子数据区412可进一步包含用以保存影射表的影射表区
及用以保存多个影射页的影射数据区。

其中,元数据至少包含快照数量、预设的影射页数量的最大值、当前快照子数据
区的状态信息、快照数据区的起止地址及当前快照子数据区的起止地址;影射表为源
介质的影射页与快照子数据区的影射页之间的映射关系;快照子数据区的影射页用以
保存与其有映射关系的源介质的影射页中的数据的快照数据。

存储控制器42监控对源介质40的写操作,判断当前快照子数据区412中是否存
在与源介质40的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送
至源介质40,否则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前
快照子数据区412中生成一个新的影射页,并更新当前快照子数据区412保存的影射
表及其暂存的影射表。

存储控制器42判断是否满足生成快照的触发条件,如果是,更新元数据区411保
存的元数据,否则继续监控对源介质40的写操作。

另外,存储控制器42还可在启动之初,对源介质40及快照介质41进行初始化,
具体地,存储控制器42判断是否存在与源介质40绑定的快照介质41,如果存在,则
确定当前快照子数据区,否则,选择一个作为快照介质41的存储介质与源介质40进
行绑定,对快照介质41进行初始化。

其中,存储控制器42包含:操作监控模块421及快照生成模块422。

操作监控模块421监控对源介质40的操作,如果判定为读操作,则将读操作发送
至源介质40,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块
422,根据快照生成模块422的第一触发,将写操作发送至源介质40,根据快照生成
模块422的第二触发,继续监控对源介质40的操作。

快照生成模块422根据写操作携带的写数据地址,确定源介质40的影射页,判断
其暂存的影射表中是否存在包含源介质40的影射页的映射关系,如果存在,则输出第
一触发至操作监控模块421,否则,对源介质40的写操作携带的写数据地址中记载的
源数据进行拷贝,将拷贝后的数据写入当前快照子数据区412中的一个空的影射页中,
生成新的影射页。

快照生成模块422将源介质40的写操作携带的写数据地址对应的源介质40的影
射页,与当前快照子数据区412中写入拷贝后的数据的影射页之间的映射关系,写入
当前快照子数据区412保存的影射表及其暂存的影射表。

快照生成模块422判断当前快照子数据区412包含的影射页的数量是否达到预设
的影射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指
令,如果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状
态信息标注为已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块421。

在存储控制器42能够进一步对源介质40及快照介质41进行初始化时,存储控制
器42进一步包含:初始化模块420。其中,初始化模块420在启动后,判断是否存在
与源介质40绑定的快照介质41,如果存在,则根据元数据中的当前快照子数据区的
状态信息,确定当前快照子数据区412,否则,选择一个作为快照介质41的存储介质
与源介质40进行绑定,将快照介质41划分为元数据区411及快照数据区,将元数据
写入元数据区411,将快照数据区划分为多个包含空的影射页及空的影射表的快照子
数据区412。

图5为本发明利用生成的快照进行数据恢复的装置的结构示意图。现结合图
5,对本发明利用生成的快照进行数据恢复的装置的结构进行说明,具体如下:

本发明利用生成的快照进行数据恢复的装置除了包含图4所示的生成快照的
装置之外,还包含一恢复控制器53。

恢复控制器53根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照
子数据区412,生成一个空的恢复影射表,将进行数据恢复的快照子数据区412至当
前快照子数据区412的多个快照子数据区412中保存的影射表包含的映射关系写入恢
复影射表中,根据快照子数据区对应的时间点,更新恢复影射表。

恢复控制器53利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子
数据区412至当前快照子数据区412的多个快照子数据区412中包含的影射页所保存
的数据,写入与其有映射关系的源介质40的影射页中。

恢复控制器53清空进行数据恢复的快照子数据区412至当前快照子数据区的多个
快照子数据区412中保存的影射表及影射页,删除恢复影射表,更新元数据区。

其中,恢复控制器53包含:快照恢复模块531及更新模块532。

快照恢复模块531根据接收到的数据恢复指令,结束生成快照,根据快照的时间
点、快照生成周期及元数据区保存的元数据,由生成快照时的当前快照子数据区412,
确定进行数据恢复的快照子数据区412。

快照恢复模块531生成一个空的恢复影射表,将进行数据恢复的快照子数据区412
至当前快照子数据区412的多个快照子数据区412中保存的影射表包含的映射关系写
入恢复影射表中。

快照恢复模块531比较包含了相同源介质40的影射页的映射关系所属的快照子数
据区412对应的时间点,保留所属的快照子数据区412所对应的生成快照的时间点最
早的一条映射关系,删除其余的包含了相同源介质的影射页的映射关系,获得更新后
的恢复映射表,输出更新后的恢复影射表至更新模块532,并删除更新后的恢复映射
表。

更新模块532利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子
数据区412至当前快照子数据区412的多个快照子数据区412中包含的影射页所保存
的数据,写入与其有映射关系的源介质40的影射页中。

更新模块532清空进行数据恢复的快照子数据区412至当前快照子数据区412的
多个快照子数据区412中保存的影射表及影射页,删除恢复影射表,将元数据区411
保存的元数据中的快照数量更新为进行数据恢复的快照子数据区生成之前的快照数
量,将元数据区411保存的元数据中的当前快照子数据区的状态信息更新为已完成,
将元数据区411保存的元数据中当前快照子数据区的起止地址更新为进行数据恢复的
快照子数据区之前生成的一个快照子数据区的起止地址。

本发明的上述较佳实施例中,在向快照子数据区中写入影射表及拷贝的数据时,
如果当前快照子数据区为快照数据区中的最后一个快照子数据区,则当前快照子数据
区的下一个快照子数据区为快照数据区的起始位置处的快照子数据区,以此类推,快
照数据区包含的多个快照子数据区可在生成快照的过程中被循环利用,以对生成的影
射表及生成的影射页进行保存。

本发明的上述较佳实施例中,在生成快照的方法中,采用了COFW方式生成快照;
在逻辑上将需要快照保护的源介质分成相同等份的存储空间,即多个影射页,在源介
质中的源数据第一次被改变时,就将这个写操作所落入源介质的影射页的数据整个读
取并写入到相应的快照子数据区中的影射页中,当下一个写操作的位置仍落入这个源
介质的影射页时,就无需再次读取这个源介质的源数据并写入到快照子数据区中的影
射页中,减少了IO操作的次数;由于数据局部性原理的存在,本发明的生成快照的方
法通过这种方式可以极大地减少利用COFW方式产生的IO次数;另外,通过配置影
射页的大小,能够降低生成快照所耗费的时间,提高系统的性能,使系统的快照性能
达到最优。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明
的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保
护的范围之内。

生成快照的方法、利用快照进行数据恢复的方法及装置.pdf_第1页
第1页 / 共23页
生成快照的方法、利用快照进行数据恢复的方法及装置.pdf_第2页
第2页 / 共23页
生成快照的方法、利用快照进行数据恢复的方法及装置.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《生成快照的方法、利用快照进行数据恢复的方法及装置.pdf》由会员分享,可在线阅读,更多相关《生成快照的方法、利用快照进行数据恢复的方法及装置.pdf(23页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102779080 A (43)申请公布日 2012.11.14 C N 1 0 2 7 7 9 0 8 0 A *CN102779080A* (21)申请号 201210200341.4 (22)申请日 2012.06.18 G06F 11/14(2006.01) (71)申请人上海爱数软件有限公司 地址 201315 上海市南汇区康桥镇康土路 25号204室 (72)发明人叶佑群 (74)专利代理机构北京德琦知识产权代理有限 公司 11018 代理人王一斌 王琦 (54) 发明名称 生成快照的方法、利用快照进行数据恢复的 方法及装置 (57) 摘要 本发明提供了一。

2、种生成快照的方法,包括:A、 监控对源介质的写操作,判断快照介质包含的当 前快照子数据区中是否存在与源介质的写操作携 带的写数据地址匹配的影射页,如果存在,则将写 操作发送至源介质,否则根据源介质的写操作携 带的写数据地址中记载的源数据,在当前快照子 数据区中生成一个新的影射页,并更新当前快照 子数据区保存的映射表及暂存的影射表;B、判断 是否满足生成快照的触发条件,如果是,执行步骤 C,否则执行步骤A;C、更新快照介质包含的元数 据区中保存的元数据,清空暂存的影射表。本发明 还提供了一种生成快照的装置。采用本发明的方 法及装置,能够减少对存储介质的IO读写次数, 降低生成快照所耗费的时间,提。

3、高系统性能。 (51)Int.Cl. 权利要求书5页 说明书13页 附图4页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 5 页 说明书 13 页 附图 4 页 1/5页 2 1.一种生成快照的方法,其特征在于,该方法包括: A、监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在与源介 质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否则, 根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中生成一个 新的影射页,并更新当前快照子数据区保存的映射表及暂存的影射表; B、判断是否满足生成快照的触发条件,如果是。

4、,执行步骤C,否则执行步骤A; C、更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表。 2.根据权利要求1所述的方法,其特征在于,所述步骤A之前进一步包括: 判断是否存在与源介质绑定的快照介质,如果存在,则确定当前快照子数据区,否则, 选择一个作为快照介质的存储介质与源介质进行绑定,对快照介质进行初始化。 3.根据权利要求1所述的方法,其特征在于,所述快照介质包含元数据区及快照数据 区; 所述元数据区用以保存元数据;所述元数据至少包含快照数量、预设的影射页数量的 最大值、当前快照子数据区的状态信息、快照数据区的起止地址及当前快照子数据区的起 止地址; 所述快照数据区包含多个快照子数据。

5、区;所述快照子数据区用以保存影射表及影射 页;所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述快照子 数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数据。 4.根据权利要求1所述的方法,其特征在于,步骤A所述判断快照介质包含的当前快照 子数据区中是否存在与源介质的写操作携带的写数据地址匹配的影射页包括: 根据源介质的写操作携带的写数据地址,确定源介质的影射页; 判断暂存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则确定快 照介质包含的当前快照子数据区中存在与源介质的写操作携带的写地址匹配的影射页,如 果不存在,则确定快照介质包含的当前快照子。

6、数据区中不存在与源介质的写操作携带的写 地址匹配的影射页。 5.根据权利要求1所述的方法,其特征在于,步骤A所述在当前快照子数据区中生成一 个新的影射页,并更新当前快照子数据区保存的影射表及暂存的影射表包括: 对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后的数据写入 当前快照子数据区中的一个空影射页中,将写入拷贝后的数据的影射页作为生成的新的影 射页; 将源介质的写操作携带的写数据地址对应的源介质的影射页,与当前快照子数据区中 写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保存的影射表及暂存 的影射表。 6.根据权利要求1所述的方法,其特征在于,所述生成快照的触。

7、发条件为:当前快照子 数据区包含的影射页的数量达到预设的影射页数量的最大值,或者接收到由快照生成周期 触发生成的快照生成指令。 7.根据权利要求1所述的方法,其特征在于,所述步骤C包括: 将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信息标注为 已完成。 权 利 要 求 书CN 102779080 A 2/5页 3 8.根据权利要求2所述的方法,其特征在于,所述确定当前快照子数据区包括: 读取快照介质的元数据区中包含的元数据,在元数据中的当前快照子数据区的状态 信息为已完成时,根据元数据中的当前快照子数据区的起止地址确定下一个快照子数据区 的起止地址,在下一个快照子数据区中建。

8、立一个空的影射表,并更新元数据区保存的元数 据; 在元数据中的当前快照子数据区的状态信息为未完成时,保持当前快照子数据区不 变。 9.根据权利要求2所述的方法,其特征在于,所述对快照介质进行初始化包括: 将快照介质划分为元数据区及快照数据区; 根据快照数据区的起止地址及预设的快照子数据区的大小,确定当前快照子数据区的 起止地址,将当前快照子数据区的状态标注为未完成; 将快照数量、预设的影射页数量的最大值、快照数据区的起止地址、当前快照子数据区 的状态及当前快照子数据区的起止地址的作为元数据写入元数据区; 根据当前快照子数据区的起止地址,在快照数据区包含的当前快照子数据区建立一个 空的影射表,并。

9、暂存一个空的影射表; 根据预设的影射页数量的最大值及预设的影射页大小,将当前快照子数据区中除保存 影射表之外的存储空间划分为多个空的影射页。 10.一种生成快照的装置,其特征在于,该装置包含: 源介质,用以保存源数据; 快照介质,用以保存由源数据生成的快照数据;所述快照介质包含用以保存元数据的 元数据区及快照数据区;所述快照数据区包含多个用以保存影射表及影射页的快照子数据 区; 存储控制器,监控对源介质的写操作,判断当前快照子数据区中是否存在与源介质的 写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否则,根据 源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数。

10、据区中生成一个新的 影射页,并更新当前快照子数据区保存的影射表及其暂存的影射表; 所述存储控制器判断是否满足生成快照的触发条件,如果是,更新元数据区保存的元 数据,否则继续监控对源介质的写操作。 11.根据权利要求10所述的装置,其特征在于,所述存储控制器还判断是否存在与源 介质绑定的快照介质,如果存在,则确定当前快照子数据区,否则,选择一个作为快照介质 的存储介质与源介质进行绑定,对快照介质进行初始化。 12.根据权利要求10所述的装置,其特征在于,所述元数据至少包含快照数量、预设的 影射页数量的最大值、当前快照子数据区的状态信息、快照数据区的起止地址及当前快照 子数据区的起止地址; 所述影。

11、射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述快照子 数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数据。 13.根据权利要求10所述的装置,其特征在于,所述存储控制器包含: 操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源介质, 如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据快照生成模 权 利 要 求 书CN 102779080 A 3/5页 4 块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,继续监控对源介质 的操作; 快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂存的影。

12、 射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发至操作监控 模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后的数 据写入当前快照子数据区中的一个空的影射页中,生成新的影射页; 所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页,与当 前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保 存的影射表及其暂存的影射表中; 所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的影射 页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,如果是, 将元数据包含的快照数量增1,将。

13、元数据包含的当前快照子数据区的状态信息标注为已完 成,清空其暂存的影射表,否则输出第二触发至操作监控模块。 14.根据权利要求11所述的装置,其特征在于,所述存储控制器包含: 初始化模块,启动后判断是否存在与源介质绑定的快照介质,如果存在,则根据元数据 中的当前快照子数据区的状态信息,确定当前快照子数据区,否则,选择一个作为快照介质 的存储介质与源介质进行绑定,将快照介质划分为元数据区及快照数据区,将元数据写入 元数据区,将快照数据区划分为多个包含空的影射页及空的影射表的快照子数据区; 操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源介质, 如果判定为写操作,则将写操作携。

14、带的写数据地址发送给快照生成模块,根据快照生成模 块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,继续监控对源介质 的操作; 快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂存的影 射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发至操作监控 模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后的数 据写入当前快照子数据区中的一个空的影射页中,生成新的影射页; 所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页,与当 前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保 。

15、存的影射表及其暂存的影射表中; 所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的影射 页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,如果是, 将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信息标注为已完 成,清空其暂存的影射表,否则输出第二触发至操作监控模块。 15.一种利用生成的快照进行数据恢复的方法,其特征在于,该方法包括: 根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照子数据区; 生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照子数据区的多 个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中。

16、; 根据快照子数据区对应的时间点,更新恢复影射表; 利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数据区至当前快照 权 利 要 求 书CN 102779080 A 4/5页 5 子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有映射关系的源介 质的影射页中; 清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照子数据区中保存 的影射表及影射页,删除恢复影射表,更新元数据区。 16.根据权利要求15所述的方法,其特征在于,所述确定进行数据恢复的快照子数据 区包括: 根据接收到的数据恢复指令,结束生成快照; 根据快照的时间点、快照生成周期及元数据区保存的元数据,由生。

17、成快照时的当前快 照子数据区,确定进行数据恢复的快照子数据区。 17.根据权利要求15所述的方法,其特征在于,所述根据快照子数据区对应的时间点, 更新恢复影射表包括: 比较包含了相同源介质的影射页的映射关系所属的快照子数据区对应的时间点,保留 所属的快照子数据区所对应的生成快照的时间点最早的一条映射关系,删除其余的包含了 相同源介质的影射页的映射关系,获得更新后的恢复映射表。 18.根据权利要求15所述的方法,其特征在于,所述更新元数据区包含: 将元数据区保存的元数据中的快照数量更新为进行数据恢复的快照子数据区生成之 前的快照数量; 将元数据区保存的元数据中的当前快照子数据区的状态信息更新为已。

18、完成; 将元数据区保存的元数据中当前快照子数据区的起止地址更新为进行数据恢复的快 照子数据区之前生成的一个快照子数据区的起止地址。 19.一种利用生成的快照进行数据恢复的装置,其特征在于,该装置包含前述权利要求 10至权利要求14任一所述的生成快照的装置及恢复控制器; 所述恢复控制器根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照子 数据区,生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照子数据区 的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中,根据快照子数据 区对应的时间点,更新恢复影射表; 所述恢复控制器利用更新后的恢复映射表中的映射关系,将进行数据。

19、恢复的快照子数 据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有 映射关系的源介质的影射页中; 所述恢复控制器清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照 子数据区中保存的影射表及影射页,删除恢复影射表,更新元数据区。 20.根据权利要求19所述的装置,其特征在于,所述恢复控制器包含: 快照恢复模块,根据接收到的数据恢复指令,结束生成快照,根据快照的时间点、快照 生成周期及元数据区保存的元数据,由生成快照时的当前快照子数据区,确定进行数据恢 复的快照子数据区; 所述快照恢复模块生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前 快照子数据区的。

20、多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中; 所述快照恢复模块比较包含了相同源介质的影射页的映射关系所属的快照子数据区 对应的时间点,保留所属的快照子数据区所对应的生成快照的时间点最早的一条映射关 权 利 要 求 书CN 102779080 A 5/5页 6 系,删除其余的包含了相同源介质的影射页的映射关系,获得更新后的恢复映射表,输出更 新后的恢复影射表至更新模块,并删除更新后的恢复映射表; 更新模块,利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数据区 至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有映射 关系的源介质的影射页中; 所。

21、述更新模块清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照子 数据区中保存的影射表及影射页,删除恢复影射表,将元数据区保存的元数据中的快照数 量更新为进行数据恢复的快照子数据区生成之前的快照数量,将元数据区保存的元数据中 的当前快照子数据区的状态信息更新为已完成,将元数据区保存的元数据中当前快照子数 据区的起止地址更新为进行数据恢复的快照子数据区之前生成的一个快照子数据区的起 止地址。 权 利 要 求 书CN 102779080 A 1/13页 7 生成快照的方法、 利用快照进行数据恢复的方法及装置 技术领域 0001 本发明涉及快照生成技术,特别涉及一种生成快照的方法、一种生成快照。

22、的装置、 一种利用生成的快照进行数据恢复的方法、及一种利用生成的快照进行数据恢复的装置。 背景技术 0002 随着计算机及网络的发展,社会进入了一个信息爆炸的时代;在网络环境下,一个 月内产生的数据量可能是过去几个月产生的数据量的总和。企业的生产以及个人的生活都 越来越依赖于计算机以及存放在装置上的数据。因此,数据的丢失与损坏将会给人们的生 产生活带来不可估量的损失。 0003 随着存储技术的进步,为了预防数据丢失,通常采用备份、归档、远程复制等技术 对数据进行保护,而备份、归档、远程复制都属于实现数据备份的方法。为了避免对系统的 性能影响,需要在装置空闲时进行数据备份,这就导致两次备份间隔的。

23、时间较长,在需要根 据备份的数据对已损坏的数据进行恢复的过程中,处于两次备份间隔的时间内的数据不可 恢复;而提高数据备份频率就会影响系统的正常工作。 0004 为了实现数据的持续性保护及数据可恢复性,快照(Snapshot)技术产生了。快照 方法就是对某一数据集进行即时拷贝产生对于数据集的一个完整副本的方法;其中,数据 集为源数据,数据集的副本为快照数据。现有的快照方法生成的是一个数据集的完整副本, 每生成一次快照数据,就需要根据数据集生成一完整副本,需要占用较大的存储空间,耗费 较多的时间生成快照。为了减少占用的存储空间,基于I/O重定向的快照生成方法只针对 变化的数据进行保存。 0005 。

24、图1为现有的生成快照的装置的结构示意图。现结合图1,对现有的生成快照的装 置进行说明,具体如下: 0006 图1所示的装置采用的是基于I/O重定向的快照生成方法。现有的生成快照的装 置包含存储控制器10和存储器11;其中,存储器11中包含用以保存源数据的源介质111和 用以保存快照数据的快照介质112。存储控制器10在生成快照的相邻两次间隔时间内,将 对于源介质111中的源数据的修改数据重定向至快照介质112中,写入与源地址对应的重 定向地址中。源数据的修改数据为重定向数据;重定向地址为用以保存重定向数据的地址。 存储控制器10根据快照生成指令,中断对存储器11的源介质111的所有读写操作;根。

25、据源 地址从源介质111中读取源数据,对源数据即时拷贝生成快照数据;将快照数据写入快照 介质112中的快照地址上;读取重定向地址中的数据;将从快照介质112的重定向地址中 读取的数据写入源介质111的源地址,以完成本次生成快照的操作。 0007 现有的基于快照的装置能够为用户提供特定时刻产生的快照数据,但在快照生成 期间,每完成一次快照需要执行一次从源介质读源数据、执行一次向快照介质写快照数据、 执行一次快照介质中读重定向数据、及执行一次向源介质写重定向数据的操作,且在将源 介质中的数据发生改变时,都需要将改变的数据作为重定向数据写入快照介质中的重定向 地址中,这样,频繁地对存储介质的读写操作。

26、会降低存储介质的IO性能,提高了生成快照 说 明 书CN 102779080 A 2/13页 8 所耗费的时间,降低了生成快照的装置的系统性能。 发明内容 0008 有鉴于此,本发明的目的在于提供一种生成快照的方法,该方法能够减少对存储 介质的IO读写次数,降低生成快照所耗费的时间,提高系统性能。 0009 本发明的目的在于提供一种生成快照的装置,该装置能够减少对存储介质的IO 读写次数,降低生成快照所耗费的时间,提高系统性能。 0010 本发明的目的在于提供一种利用生成的快照进行数据恢复的方法,该方法能够减 少对存储介质的IO读写次数,提高系统性能。 0011 本发明的目的在于提供一种利用生。

27、成的快照进行数据恢复的方法,该方法能够减 少对存储介质的IO读写次数,提高系统性能。 0012 一种生成快照的方法,该方法包括: 0013 A、监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在与 源介质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否 则,根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中生成 一个新的影射页,并更新当前快照子数据区保存的映射表及暂存的影射表; 0014 B、判断是否满足生成快照的触发条件,如果是,执行步骤C,否则执行步骤A; 0015 C、更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表。

28、。 0016 较佳地,所述步骤A之前进一步包括: 0017 判断是否存在与源介质绑定的快照介质,如果存在,则确定当前快照子数据区,否 则,选择一个作为快照介质的存储介质与源介质进行绑定,对快照介质进行初始化。 0018 上述方法中,所述快照介质包含元数据区及快照数据区; 0019 所述元数据区用以保存元数据;所述元数据至少包含快照数量、预设的影射页数 量的最大值、当前快照子数据区的状态信息、快照数据区的起止地址及当前快照子数据区 的起止地址; 0020 所述快照数据区包含多个快照子数据区;所述快照子数据区用以保存影射表及影 射页;所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;。

29、所述快照 子数据区的影射页用以保存与其有映射关系的源介质的影射页中的数据的快照数据。 0021 上述方法中,步骤A所述判断快照介质包含的当前快照子数据区中是否存在与源 介质的写操作携带的写数据地址匹配的影射页包括: 0022 根据源介质的写操作携带的写数据地址,确定源介质的影射页; 0023 判断暂存的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则确 定快照介质包含的当前快照子数据区中存在与源介质的写操作携带的写地址匹配的影射 页,如果不存在,则确定快照介质包含的当前快照子数据区中不存在与源介质的写操作携 带的写地址匹配的影射页。 0024 上述方法中,步骤A所述在当前快照子数据区。

30、中生成一个新的影射页,并更新当 前快照子数据区保存的影射表及暂存的影射表包括: 0025 对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后的数据 写入当前快照子数据区中的一个空影射页中,将写入拷贝后的数据的影射页作为生成的新 说 明 书CN 102779080 A 3/13页 9 的影射页; 0026 将源介质的写操作携带的写数据地址对应的源介质的影射页,与当前快照子数据 区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据区保存的影射表及 暂存的影射表。 0027 上述方法中,所述生成快照的触发条件为:当前快照子数据区包含的影射页的数 量达到预设的影射页数量的最大值。

31、,或者接收到由快照生成周期触发生成的快照生成指 令。 0028 上述方法中,所述步骤C包括:将元数据包含的快照数量增1,将元数据包含的当 前快照子数据区的状态信息标注为已完成。 0029 上述方法中,所述确定当前快照子数据区包括: 0030 读取快照介质的元数据区中包含的元数据,在元数据中的当前快照子数据区的状 态信息为已完成时,根据元数据中的当前快照子数据区的起止地址确定下一个快照子数据 区的起止地址,在下一个快照子数据区中建立一个空的影射表,并更新元数据区保存的元 数据; 0031 在元数据中的当前快照子数据区的状态信息为未完成时,保持当前快照子数据区 不变。 0032 上述方法中,所述对。

32、快照介质进行初始化包括: 0033 将快照介质划分为元数据区及快照数据区; 0034 根据快照数据区的起止地址及预设的快照子数据区的大小,确定当前快照子数据 区的起止地址,将当前快照子数据区的状态标注为未完成; 0035 将快照数量、预设的影射页数量的最大值、快照数据区的起止地址、当前快照子数 据区的状态及当前快照子数据区的起止地址的作为元数据写入元数据区; 0036 根据当前快照子数据区的起止地址,在快照数据区包含的当前快照子数据区建立 一个空的影射表,并暂存一个空的影射表; 0037 根据预设的影射页数量的最大值及预设的影射页大小,将当前快照子数据区中除 保存影射表之外的存储空间划分为多个。

33、空的影射页。 0038 一种生成快照的装置,该装置包含: 0039 源介质,用以保存源数据; 0040 快照介质,用以保存由源数据生成的快照数据;所述快照介质包含用以保存元数 据的元数据区及快照数据区;所述快照数据区包含多个用以保存影射表及影射页的快照子 数据区; 0041 存储控制器,监控对源介质的写操作,判断当前快照子数据区中是否存在与源介 质的写操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否则, 根据源介质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中生成一个 新的影射页,并更新当前快照子数据区保存的影射表及其暂存的影射表; 0042 所述存储控制器。

34、判断是否满足生成快照的触发条件,如果是,更新元数据区保存 的元数据,否则继续监控对源介质的写操作。 0043 较佳地,所述存储控制器还判断是否存在与源介质绑定的快照介质,如果存在,则 确定当前快照子数据区,否则,选择一个作为快照介质的存储介质与源介质进行绑定,对快 说 明 书CN 102779080 A 4/13页 10 照介质进行初始化。 0044 上述装置中,所述元数据至少包含快照数量、预设的影射页数量的最大值、当前快 照子数据区的状态信息、快照数据区的起止地址及当前快照子数据区的起止地址; 0045 所述影射表为源介质的影射页与快照子数据区的影射页之间的映射关系;所述快 照子数据区的影射。

35、页用以保存与其有映射关系的源介质的影射页中的数据的快照数据。 0046 上述装置中,所述存储控制器包含: 0047 操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源介 质,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据快照生成 模块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,继续监控对源介 质的操作; 0048 快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂存 的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发至操作 监控模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷贝。

36、,将拷贝后 的数据写入当前快照子数据区中的一个空的影射页中,生成新的影射页; 0049 所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页, 与当前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据 区保存的影射表及其暂存的影射表中; 0050 所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的 影射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,如 果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信息标注为 已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块。 0051 上述装置中。

37、,所述存储控制器包含: 0052 初始化模块,启动后判断是否存在与源介质绑定的快照介质,如果存在,则根据元 数据中的当前快照子数据区的状态信息,确定当前快照子数据区,否则,选择一个作为快照 介质的存储介质与源介质进行绑定,将快照介质划分为元数据区及快照数据区,将元数据 写入元数据区,将快照数据区划分为多个包含空的影射页及空的影射表的快照子数据区; 0053 操作监控模块,监控对源介质的操作,如果判定为读操作,则将读操作发送至源介 质,如果判定为写操作,则将写操作携带的写数据地址发送给快照生成模块,根据快照生成 模块的第一触发,将写操作发送至源介质,根据快照生成模块的第二触发,继续监控对源介 质。

38、的操作; 0054 快照生成模块,根据写操作携带的写数据地址,确定源介质的影射页,判断其暂存 的影射表中是否存在包含源介质的影射页的映射关系,如果存在,则输出第一触发至操作 监控模块,否则,对源介质的写操作携带的写数据地址中记载的源数据进行拷贝,将拷贝后 的数据写入当前快照子数据区中的一个空的影射页中,生成新的影射页; 0055 所述快照生成模块将源介质的写操作携带的写数据地址对应的源介质的影射页, 与当前快照子数据区中写入拷贝后的数据的影射页之间的映射关系,写入当前快照子数据 区保存的影射表及其暂存的影射表中; 0056 所述快照生成模块判断当前快照子数据区包含的影射页的数量是否达到预设的 。

39、影射页数量的最大值,或者判断是否接收到由快照生成周期触发生成的快照生成指令,如 说 明 书CN 102779080 A 10 5/13页 11 果是,将元数据包含的快照数量增1,将元数据包含的当前快照子数据区的状态信息标注为 已完成,清空其暂存的影射表,否则输出第二触发至操作监控模块。 0057 一种利用生成的快照进行数据恢复的方法,该方法包括: 0058 根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快照子数据区; 0059 生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照子数据区 的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中; 0060 根据快照子数。

40、据区对应的时间点,更新恢复影射表; 0061 利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数据区至当前 快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有映射关系的 源介质的影射页中; 0062 清空进行数据恢复的快照子数据区至当前快照子数据区的多个快照子数据区中 保存的影射表及影射页,删除恢复影射表,更新元数据区。 0063 上述方法中,所述确定进行数据恢复的快照子数据区包括: 0064 根据接收到的数据恢复指令,结束生成快照; 0065 根据快照的时间点、快照生成周期及元数据区保存的元数据,由生成快照时的当 前快照子数据区,确定进行数据恢复的快照子数据区。 。

41、0066 上述方法中,所述根据快照子数据区对应的时间点,更新恢复影射表包括: 0067 比较包含了相同源介质的影射页的映射关系所属的快照子数据区对应的时间点, 保留所属的快照子数据区所对应的生成快照的时间点最早的一条映射关系,删除其余的包 含了相同源介质的影射页的映射关系,获得更新后的恢复映射表。 0068 上述方法中,所述更新元数据区包含: 0069 将元数据区保存的元数据中的快照数量更新为进行数据恢复的快照子数据区生 成之前的快照数量; 0070 将元数据区保存的元数据中的当前快照子数据区的状态信息更新为已完成; 0071 将元数据区保存的元数据中当前快照子数据区的起止地址更新为进行数据恢。

42、复 的快照子数据区之前生成的一个快照子数据区的起止地址。 0072 一种利用生成的快照进行数据恢复的装置,该装置包含前述任一所述的生成快照 的装置及恢复控制器; 0073 所述恢复控制器根据数据恢复指令及生成快照的时间点,确定进行数据恢复的快 照子数据区,生成一个空的恢复影射表,将进行数据恢复的快照子数据区至当前快照子数 据区的多个快照子数据区中保存的影射表包含的映射关系写入恢复影射表中,根据快照子 数据区对应的时间点,更新恢复影射表; 0074 所述恢复控制器利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照 子数据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入。

43、与 其有映射关系的源介质的影射页中; 0075 所述恢复控制器清空进行数据恢复的快照子数据区至当前快照子数据区的多个 快照子数据区中保存的影射表及影射页,删除恢复影射表,更新元数据区。 0076 上述装置中,所述恢复控制器包含: 0077 快照恢复模块,根据接收到的数据恢复指令,结束生成快照,根据快照的时间点、 说 明 书CN 102779080 A 11 6/13页 12 快照生成周期及元数据区保存的元数据,由生成快照时的当前快照子数据区,确定进行数 据恢复的快照子数据区; 0078 所述快照恢复模块生成一个空的恢复影射表,将进行数据恢复的快照子数据区至 当前快照子数据区的多个快照子数据区中。

44、保存的影射表包含的映射关系写入恢复影射表 中; 0079 所述快照恢复模块比较包含了相同源介质的影射页的映射关系所属的快照子数 据区对应的时间点,保留所属的快照子数据区所对应的生成快照的时间点最早的一条映射 关系,删除其余的包含了相同源介质的影射页的映射关系,获得更新后的恢复映射表,输出 更新后的恢复影射表至更新模块,并删除更新后的恢复映射表; 0080 更新模块,利用更新后的恢复映射表中的映射关系,将进行数据恢复的快照子数 据区至当前快照子数据区的多个快照子数据区中包含的影射页所保存的数据,写入与其有 映射关系的源介质的影射页中; 0081 所述更新模块清空进行数据恢复的快照子数据区至当前快。

45、照子数据区的多个快 照子数据区中保存的影射表及影射页,删除恢复影射表,将元数据区保存的元数据中的快 照数量更新为进行数据恢复的快照子数据区生成之前的快照数量,将元数据区保存的元数 据中的当前快照子数据区的状态信息更新为已完成,将元数据区保存的元数据中当前快照 子数据区的起止地址更新为进行数据恢复的快照子数据区之前生成的一个快照子数据区 的起止地址。 0082 由上述的技术方案可见,本发明提供了一种生成快照的方法及装置,在该方法中, 监控对源介质的写操作,判断快照介质包含的当前快照子数据区中是否存在与源介质的写 操作携带的写数据地址匹配的影射页,如果存在,则将写操作发送至源介质,否则,根据源 介。

46、质的写操作携带的写数据地址中记载的源数据,在当前快照子数据区中生成一个新的影 射页,并更新当前快照子数据区保存的映射表及暂存的影射表,判断是否满足生成快照的 触发条件,如果是,则更新快照介质包含的元数据区中保存的元数据,清空暂存的影射表, 否则继续监控对源介质的写操作。本发明还提供了一种利用生成的快照进行数据恢复的方 法及装置,在该方法中,根据快照子数据区中保存的影射表对源介质进行数据恢复,相较于 现有的利用快照进行数据恢复的方法,本发明利用生成的快照进行数据恢复时,减少了对 存储介质的IO读写次数。采用本发明的方法及装置,能够极大地减少了对存储介质的IO 读写次数,降低生成快照所耗费的时间,。

47、提高系统性能。 附图说明 0083 图1为现有的生成快照的装置的结构示意图。 0084 图2为本发明生成快照的方法流程图。 0085 图3为本发明利用生成的快照进行数据恢复的方法流程图。 0086 图4为本发明生成快照的装置的结构示意图。 0087 图5为本发明利用生成的快照进行数据恢复的装置的结构示意图。 具体实施方式 0088 为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例, 说 明 书CN 102779080 A 12 7/13页 13 对本发明进一步详细说明。 0089 本发明提供了一种生成快照的方法及装置,在该方法中,监控对源介质的写操作, 判断快照介质包含的。

48、当前快照子数据区中是否存在与源介质的写操作携带的写数据地址 匹配的影射页,如果存在,则将写操作发送至源介质,否则,根据源介质的写操作携带的写 数据地址中记载的源数据,在当前快照子数据区中生成一个新的影射页,并更新当前快照 子数据区中的影射表;根据生成快照的触发条件,更新快照介质包含的元数据区中保存的 元数据,清空暂存的影射表。其中,本发明提及的暂存的影射表是暂存于生成快照的装置所 装设的系统的内存中的影射表,其保持与当前快照子数据区的影射表同步,作用是为了加 快影射页的查找效率。 0090 本发明还提供了一种利用生成的快照进行数据恢复的方法及装置,该方法中,利 用生成快照期间保存于快照子数据区。

49、中的影射表,对需要进行数据恢复的源介质中的影射 页进行定位,将快照子数据区中的影射页中保存的快照数据写入源介质中与其有映射关系 的影射页中,节省了查找定位源介质中需要进行数据恢复的存储空间所耗费的时间,提高 了系统性能,由于在生成快照的过程中减少了对存储介质的IO读写次数,相较于现有的利 用生成快照进行数据恢复的方法,减少了对存储介质的IO读写次数。当配置的影射页越 大,则减少的IO读写次数则越多,效率的提升也就越大。 0091 为了表述清楚,现对本发明提及的一些名词进行说明,具体如下:本发明的快照介 质为用以保存源介质中的源数据的快照数据的存储介质;快照介质可被划分为元数据区及 快照数据区;元数据区用以保存与生成快照相关的元数据;快照数据区用以保存源介质中 的源数据的快照数据。其中,元数据至少包含快照数量、预设的影射页数量的最大值、当前 快照子数据区的状态信息、快照数据区的起止位置及当前快照子数据区的起止位置;快照 数据区。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1