基于写时拷贝的数据存储方法、系统及设备的制作方法

文档序号:6577883阅读:220来源:国知局
专利名称:基于写时拷贝的数据存储方法、系统及设备的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于写时拷贝的数据存储方 法、系统及设备。
背景技术
伴随着基于TCP (Transmission Control Protocol,传输控制协议)/IP (Internet Protocol,互4关网协i义)的iSCSI (Internet Small Computer Systems Interface,互联网小型计算机系统接口 )协议的出现和发展,存储设备已经不 仅可以存储与之直接相连的主机发来的写请求数据,也可以存储外部设备通 过IP网络发送的写请求数据,从而实现数据的异地在线备份。快照技术是一种有效的保证备份数据安全性的方法,快照技术的原理是 在存储设备的存储空间中虚拟出源数据区和快照空间,源数据区用于存储来 自外部设备的写请求数据,当快照条件被触发时,根据设定的规则创建源数 据区中存储的数据在快照时间点的 一个瞬时映像,然后将该瞬时映像存储在 快照空间中,当源数据区中的数据由于软故障而需要恢复时,即可根据快照 空间中存储的瞬时映像将源数据区中的数据恢复到快照时间点的状态。快照 技术按实现方法划分,主要有三种方式分离镜像(Split Mirror)、写时拷贝 (Copy-On-Write )和写重定向(Redirect-On-Write )。其中写时拷贝方法因占 用空间小,创建快照时间短等优点,广泛地应用在各种存储设备中。现有的基于写时拷贝的数据存储方法,写时拷贝功能启动后,存储设备 会每隔设定的时间段重新启动一次快照进程,可以将这个时间段定义为快照 周期,存储设备会分别存储在各个快照周期中获取的快照信息。写时拷贝功 能启动后,存储设备会对源数据区中的所有数据块进行监控,在接收来自外 部设备的写请求命令后,首先根据写请求命令在源数据区中为写请求数据分 配数据块,写请求命令中包含起始逻辑地址信息和写请求数据的数据量信息,具体的,存储设备根据写请求数据的数据量为写请求数据分配以写请求命令 中的起始逻辑地址为首地址的数据块组。然后,若需要对分配的数据块组进 行快照,存储设备则需要将分配的数据块组对应的监控数据写入快照空间。 最后将来自外部设备的写请求数据写入到源数据区分配数据块组中替换其中 的原有数据。数据块是存储设备对数据进行存储的最小单位,每个数据块的固定容量为512B。若写请求数据的数据量为8KB,则需要在源数据区中为该 写请求数据分配16个数据块,若请求数据的数据量为512KB,则需要在源数 据区中为该写请求数据分配1000个数据块。现有技术中,在快照功能启用后,采用如图1所示的监控地址区间对源 数据区中的数据块进行监控,即以512KB的数据量(即1000个数据块)为单 位对源数据区进行监控。每一个监控地址(Adjust—address )区间对应一个虚 拟逻辑块地址组的起始地址和结尾地址,例如,第一监控地址区间(0, 999) 对应的虚拟逻辑块地址组的起始地址为0、结尾地址为999。第二监控地址区 间(1000, 1999)对应的虚拟逻辑块地址组的起始地址为1000、结尾地址为 1999。若某个监控地址区间范围中的任意一个数据块发生变化,则需要将该 监控地址区间范围中所有的数据块都复制到快照空间中。这就产生了快照空 间过程中的增量复制问题。例如,写请求数据的数据量为8KB,需要占用源 数据区中16个数据块的存储空间,若写请求数据在源数据区中对应的起始逻 辑地址为10、则相应的结尾逻辑地址为25。由于逻辑地址为10到25的数据 块对应的监控地址区间为(0, 999),所以,存储设备在将写请求数据写入到 逻辑地址为10到25的数据块之前,需要将源数据区中逻辑地址为0到999 的数据块中的原有数据全部复制到快照空间中,过多占用了快照空间的存储 资源。发明内容本发明提供了一种基于写时拷贝的数据存储方法、系统及设备,节省了 快照空间的存储资源。本发明提供了 一种基于写时拷贝的数据存储方法,应用于包括存储设备和外部设备的系统中,所述存储设备包括源数据区和快照空间,所述方法包括以下步骤所述存储设备接收来自所述外部设备的写请求数据和写请求命令,所述 写请求命令中包括所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息;所述存储设备根据所述写请求数据的数据量调整单位监控数据量; 所述存储设备根据所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;所述存储设备判断是否对所述写请求数据对应的数据块进行快照,若判断结果为是,根据调整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空间,将所述写请求数据写入所述写请求数据对应的数据块。其中,所述存储设备根据所述写请求数据的数据量调整单位监控数据量 包括所述存储设备将所述单位监控数据量调整为所述写请求数据的数据量。 其中,所述存储设备根据所述写请求数据的数据量调整单位监控数据量 包括所述存储设备计算所述写请求数据的数据量与已处理的写请求数据的数 据量的平均值;所述存储设备将所述单位监控数据量调整为所述平均值。 其中,还包括在写时拷贝功能启动后,所述存储设备设置标准单位监控数据量集合, 所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;则所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括所述存储设备将所述单位监控数据量调整为所述标准单位监控数据量集 合中与所述写请求数据的数据量的差的绝对值最小的标准单位监控数据量。 其中,还包括在写时拷贝功能启动后,所述存储设备设置标准单位监控数据量集合,所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;则所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括所述存储设备计算所述写请求数据的数据量与已处理的写请求数据的数 据量的平均值;所述存储设备将所述单位监控数据量调整为所述标准单位监控数据量集 合中与所述平均值的差的绝对值最小的标准单位监控数据量。 其中,还包括在一个快照周期开始时,所述存储设备将所述源教:据区中所有数据块对 应的位图的比特位设置为无效;则所述存储设备判断是否对所述写请求数据对应的数据块进行快照包括所述存储设备根据所述写请求数据对应的数据块的比特位判断是否对所 述写请求数据对应的数据块进行快照,若所述比特位为无效,则判断对所述 写请求数据对应的数据块进行快照,若所述比特位为有效,则判断不对所述 写请求数据对应的数据块进行快照;则所述存储设备将所述写请求数据写入所述写请求数据对应的数据块之 后,还包括所述存储设备将所述写请求数据对应的数据块的比特位设置为有效。本发明提供了一种存储设备,所述设备包括源数据区和快照空间,所述 设备包括接收模块,用于接收来自外部设备的写请求数据和写请求命令,所述写 请求命令中包括所述写请求数据的起始逻辑地址和所述写请求数据的数据量 信息;调整模块,用于根据所述接收模块接收的写请求数据的数据量调整单位 监控数据量;数据块确定模块,用于根据所述接收模块接收的所述写请求数据的起始 逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据
区中对应的数据块;
判断模块,用于判断是否对所述数据块确定模块确定的所述写请求数据 对应的数据块进行快照;
处理模块,用于若所述判断模块的判断结果为是,根据所述调整模块调 整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空 间,将所述接收模块接收的写请求数据写入所述数据块确定模块确定的所述 写请求数据对应的数据块。
其中,所述调整模块具体用于,
将所述单位监控数据量调整为所述写请求数据的数据量。 其中,所述调整模块具体用于,
计算所述写请求数据的数据量与已处理的写请求数据的数据量的平均
值;
将所述单位监控数据量调整为所述平均值。 其中,所述设备还包括监控集合设置模块和监控集合记录模块, 所述监控集合设置模块,用于在写时拷贝功能启动后,设置标准单位监 控数据量集合,并将设置的标准单位监控数据量集合传送到所述监控集合记 录模块存储,所述标准单位监控数据量集合中包括至少一个标准单位监控数 据量;
所述监控集合记录模块,用于存储来自所述监控集合设置模块的标准单 位监控数据量集合;
则所述调整模块,具体用于将所述单位监控数据量调整为所述监控集合 记录模块存储的标准单位监控数据量集合中与所述写请求数据的数据量的差 的绝对值最小的标准单位监控数据量;或计算所述写请求数据的数据量与已 处理的写请求数据的数据量的平均值,将所述单位监控数据量调整为所述监 控集合记录模块存储的标准单位监控数据量集合中与所述平均值的差的绝对 值最小的标准单位监控数据量。其中,所述设备还包括位图设置模块和位图记录模块,
所述位图记录模块,用于存储与所述源数据区中所有数据块对应的位图; 所述位图设置模块,用于在一个快照周期开始时,将所述位图记录模块 存储的位图的所有比特位设置为无效;在所述处理模块将所述写请求数据写 入所述数据块确定模块确定的所述写请求数据对应的数据块之后,将所述位 图记录模块存储的位图中所述数据块确定模块确定的数据块的比特位设置为 有效;
则所述判断模块,具体用于根据所述位图记录模块存储的位图的比特位 判断是否对所述数据块确定模块确定的所述写请求数据对应的数据块进行快 照,若所述写请求数据对应的数据块的比特位为无效,则判断对所述写请求 数据对应的数据块进行快照,若所述写请求数据对应的数据块的比特位为有 效,则判断不对所述写请求数据对应的数据块进行快照。
本发明中,根据写请求数据的数据量调整单位监控数据量,并根据调整 后的单位监控数据量将写请求数据对应的监控数据复制到快照空间,保持了 写入快照空间的监控数据的数据量与写请求数据的数据量的一致性,节省了 快照空间的存储资源。


图1是现有技术中 一种监控地址区间示意图2是本发明中一种基于写时拷贝的数据存储方法流程图3是本发明中一种基于写时拷贝的数据存储方法流程图4是本发明中一种写请求命令示意图5是本发明中 一种监控地址区间示意图6是本发明中一种基于写时拷贝的数据存储方法流程图7是本发明中一种基于写时拷贝的数据存储方法流程图8是本发明中一种基于写时拷贝的数据存储方法流程图9是本发明中一种基于写时拷贝的数据存储方法流程图10是本发明中 一种基于写时拷贝的数据存储系统结构图;图11是本发明中 一种存储设备结构图; 图12是本发明中 一种存储设备结构图; 图13是本发明中 一种存储设备结构图; 图14是本发明中 一种存储设备结构图。
具体实施例方式
本发明主要提供了一种基于写时拷贝的数据存储方法,主要思路是根 据写请求数据的数据量调整单位监控数据量,并根据调整后的单位监控数据 量将写请求数据对应的监控数据复制到所述快照空间,保持了写入快照空间
的监控数据的数据量与写请求数据的数据量的一致性,节省了快照空间的存 储资源。
本发明提出了一种基于写时拷贝的数据存储方法,应用于包括存储设备 和外部设备的系统中,存储设备的存储空间虚拟划分为源数据区和快照空间, 所述方法如图2所示,包括以下步骤
步骤201,存储设备接收来自外部设备的写请求数据和写请求命令,写请 求命令中包括写请求数据的起始逻辑地址和写请求数据的数据量信息。
步骤202,存储设备根据写请求数据的数据量调整单位监控数据量。具体 的,可以根据以下四种方式调整单位监控数据量
1. 将单位监控数据量调整为写请求数据的数据量。
2. 计算写请求数据的数据量与已处理的写请求数据的数据量的平均值, 并将单位监控数据量调整为该平均值。
3. 在写时拷贝功能启动后,首先设置标准单位监控数据量集合,标准单 位监控数据量集合中包括至少一个标准单位监控数据量。在接收到写请求数 据后,将单位监控数据量调整为标准单位监控数据量集合中与写请求数据的
数据量的差的绝对值最小的标准单位监控数据量。
4. 在写时拷贝功能启动后,首先设置标准单位监控数据量集合,标准单 位监控数据量集合中包括至少一个标准单位监控数据量。在接收到写请求数 据后,计算写请求数据的数据量与已处理的写请求数据的数据量的平均值,并将单位监控数据量调整为标准单位监控数据量集合中与该平均值的差的绝 对值最小的标准单位监控数据量。
步骤203,存储设备根据写请求数据的起始逻辑地址和写请求数据的数据
量确定写请求数据对应的源数据区中的数据块。
步骤204,存储设备判断是否需要对写请求数据对应的数据块进行快照, 若判断结果为是,根据调整后的单位监控数据量将写请求数据对应的监控数 据复制到快照空间,将写请求数据写入对应的数据块。
具体的,本发明的存储设备可以在接收到来自外部设备的写请求后直接 将源数据区的单位监控数据量调整为写请求数据的数据量,基于该原理本发 明提出了一种基于写时拷贝的数据存储方法,应用于包括存储设备和外部设 备的系统中,存储设备和外部设备通过IP网相连,存储设备的存储空间虚拟 划分为源数据区和快照空间,所述方法如图3所示,包括以下步骤
步骤301,存储设备接收来自外部设备的写请求,写请求中包括写请求数 据和写请求命令。
具体的,外部设备可以是客户端主机,客户端主机可以根据iSCSI协议的 规定向存储设备发送写请求,写请求中包括写请求数据和写请求命令,写请 求命令中包括写请求数据的起始逻辑地址和写请求数据的数据量信息。
例如,图4为一个具体的写请求命令,该写请求命令中的主要内包括如
下内容
Logical Block Address: 0;表示写请求数据对应的起始逻辑地址为0; Transfer length: 16;表示写请求数据的数据量为16KB。 步骤302,存储设备将单位监控数据量调整为写请求数据的数据量。 继续以图4所示的写请求命令为例,由于图4中写请求数据的数据量为 16KB,所以需要将单位监控数据量调整为16KB。调整后的监控地址区间如 图5所示,第一监控地址区间(0, 15)对应的虚拟逻辑块地址组的起始地址 为0、结尾地址为15;第二监控地址区间(16, 31)对应的虛拟逻辑块地址 组的起始地址为16、结尾地址为31。步骤303 ,存储设备根据写请求确定写请求数据对应的源数据区中的数据块。
继续以图4所示的写请求命令为例,根据该写请求命令确定写请求数据 对应的源数据区中的数据块为起始逻辑地址为0、结尾逻辑地址为15的连续 数据块组成的数据块组。
步骤304,存储设备判断是否需要对写请求数据对应的源数据区中的数据 块进行快照,若判断结果为是,转步骤305,若判断结果为否,转步骤306。
步骤305,存储设备根据调整后的单位监控数据量将写请求数据对应的监 控数据复制到快照空间。
继续以图4所示的写请求命令为例,由于步骤303中确定出写请求数据 对应的源数据区中的数据块为起始逻辑地址为0、结尾逻辑地址为15的连续 数据块组成的数据块组,该数据块组对应第一监控地址区间(0, 15),所以, 需要将第一监控地址区间(0, 15)范围内的数据块中的原有数据复制到快照 空间中。
在实际情况中,还有可能出现写请求数据对应的监控数据位于两个监控 区间的情况。例如,若写请求数据的数据量16,起始逻辑地址为10,则对应 源数据区中起始逻辑地址为10、结尾逻辑地址为25的数据块组。该数据块组 分别包含在第一监控地址区间(0, 15)和第二监控地址区间(16, 31)范围 内,则需要将第 一监控地址区间和第二监控地址区间范围内的所有数据块中 的原有数据都复制到快照空间。
步骤306,存储设备将写请求数据写入写请求数据对应的源数据区中的数 据块。
继续以图4所示的写请求命令为例,则需要将写请求数据写入到源数据 区中起始逻辑地址为0、结尾逻辑地址为15的连续数据块组成的数据块组。
具体的,本发明的存储设备可以在接收到来自外部设备的写请求后计算 写请求数据的数据量与之前已经处理的写请求数据的数据量的平均值,并将 源数据区的单位监控数据量调整为该平均值。基于该原理本发明提出了一种基于写时拷贝的数据存储方法,应用于包括存储设备和外部设备的系统中, 存储设备和外部设备通过IP网相连,存储设备的存储空间虚拟划分为源数据
区和快照空间,所述方法如图6所示,包括以下步骤 步骤600,存储设备启动写时拷贝功能。
步骤601,存储设备接收来自外部设备的写请求,写请求中包括写请求数 据和写请求命令。
具体的,写请求命令中包括写请求数据的起始逻辑地址和写请求数据的 数据量信息。
步骤602,存储设备计算该写请求数据的数据量与之前已经处理的写请求 数据的数据量的平均值。
例如,若步骤601中接收到的写请求数据的数据量为IOKB。存储设备在 启动写时拷贝功能后还处理过l个写请求数据,该处理过的写请求数据的数 据量为18KB。则存储设备计算并获得的平均值为14KB。若步骤601中接收 到的写请求数据的数据量为8KB。存储设备在启动写时拷贝功能后还处理过2 个写请求数据,该处理过的写请求数据的数据量分别为IOKB、 14KB。则存 储设备计算并获得的平均值为10.7KB。另外,还可以设定已经处理的写请求 数据的个数阈值,例如将该阈值设定为2,若已经处理的写请求数据的个数大 于2,则只计算新收到的写请求数据的数据量与已经处理的最后2个写请求数 据的数据量的平均值。
步骤603,存储设备将单位监控数据量调整为步骤602中得到的平均值。
例如,若步骤602中获得的平均值为14KB,则将单位监控数据量调整为 14KB;若步骤602中获得的平均值为10.7KB,由于存储设备是以0.5 KB (即 1个数据块的数据容量)为最小单位进行数据监控的,所以需要将单位监控数 据量调整为10.5KB。
步骤604,存储设备根据写请求确定写请求数据对应的源数据区中的数据块。
步骤605 ,存储设备判断是否需要对写请求数据对应的源数据区中的数据 块进行快照,若判断结果为是,转步骤606,若判断结果为否,转步骤607。步骤606,存储设备根据调整后的单位监控数据量将写请求数据对应的监 控数据复制到快照空间。
步骤607,存储设备将写请求数据写入写请求数据对应的源数据区中的数 据块。
具体的,本发明的存储设备可以在写时拷贝功能启动后设置标准单位监 控数据量集合,该标准单位监控数据量集合中包括至少一个标准单位监控数 据量,存储设备可以根据写请求将源数据区的单位监控数据量调整为与写请 求数据的数据量的差的绝对值最小的标准单位监控数据量,基于该原理本发 明提出了一种基于写时拷贝的数据存储方法,应用于包括存储设备和外部设 备的系统中,存储设备和外部设备通过IP网相连,存储设备的存储空间虚拟 划分为源数据区和快照空间,所述方法如图7所示,包括以下步骤
步骤700,存储设备启动写时拷贝功能。
步骤701,存储设备设置标准单位监控数据量集合,标准单位监控数据量 集合中包括至少一个标准单位监控数据量。本实施例中,存储设备设置的标 准单位监控数据量集合为(8KB、 16KB、 32KB、 64KB、 128KB、 512KB}。
步骤702,存储设备接收来自外部设备的写请求,写请求中包括写请求数 据和写请求命令。
具体的,写请求命令中包括写请求数据的起始逻辑地址和写请求数据的 数据量信息。
步骤703,存储设备将单位监控数据量调整为标准单位监控数据量集合中 与写请求数据的数据量的差的绝对值最小的标准单位监控数据量。
例如,若写请求数据的数据量为14KB,则将单位监控数据量调整为 16KB。若写请求数据的数据量为10KB,则将单位监控数据量调整为8KB。 若写请求数据的数据量为12KB,由于标准单位监控数据量集合中的8KB和 16KB都与写请求数据的数据量相差4KB,所以可以将单位监控数据量调整为 8KB或12KB任意一个, 一般的,可以将单位监控数据量调整为取值相对较 大的数据量。步骤704,存储设备根据写请求确定写请求数据对应的源数据区中的数据块。
步骤705,存储设备判断是否需要对写请求数据对应的源数据区中的数据 块进行快照,若判断结果为是,转步骤706,若判断结果为否,转步骤707。
步骤706,存储设备根据调整后的单位监控数据量将写请求数据对应的监 控数据复制到快照空间。
步骤707,存储设备将写请求数据写入写请求数据对应的源数据区中的数 据块。
具体的,本发明的存储设备可以在写时拷贝功能启动后设置标准单位监 控数据量集合,在接收到来自外部设备的写请求后,计算该写请求数据的数 据量与之前已经处理的写请求数据的数据量的平均值,并将源数据区的单位
监控数据量调整为与该平均值的差的绝对值最小的标准单位监控数据量,基 于该原理本发明提出了一种基于写时拷贝的数据存储方法,应用于包括存储 设备和外部设备的系统中,存储设备和外部设备通过IP网相连,存储设备的 存储空间虚拟划分为源数据区和快照空间,所述方法如图8所示,包括以下 步骤
步骤800,存储设备启动写时拷贝功能。
步骤801,存储设备设置的标准单位监控数据量集合。本实施例中,存储 设备设置的标准单位监控数据量集合为(8KB、 16KB、 32KB、 64KB、 128KB、 512KB}。
步骤802,存储设备接收来自外部设备的写请求,写请求中包括写请求数 据和写请求命令。
具体的,写请求命令中包括写请求数据的起始逻辑地址和写请求数据的 数据量信息。
步骤803,存储设备计算该写请求数据的数据量与之前已经处理的写请求 数据的数据量的平均值。
例如,若步骤802中接收到的写请求数据的数据量为IOKB。存储设备在启动写时拷贝功能后还处理过1个写请求数据,该处理过的写请求数据的数
据量为18KB。则存储设备计算并获得的平均值为14KB。若步骤801中接收 到的写请求数据的数据量为8KB。存储设备在启动写时拷贝功能后还处理过2 个写请求数据,该处理过的写请求数据的数据量分别为IOKB和14KB。则存 储设备计算并获得的平均值为10.7KB。
步骤804,存储设备将单位监控数据量调整为标准单位监控数据量集合中 与步骤803中得到的平均值的差的绝对值最小的标准单位监控数据量。
例如,若步骤803中获得的平均值为14KB,则将单位监控数据量调整为 16KB;若步骤803中获得的平均值为10.7KB,则将单位监控数据量调整为 8KB。
步骤805,存储设备根据写请求确定写请求数据对应的源数据区中的数据块。
步骤806,存储设备判断是否需要对写请求数据对应的源数据区中的数据 块进行快照,若判断结果为是,转步骤807,若判断结果为否,转步骤808。
步骤807,存储设备根据调整后的单位监控数据量将写请求数据对应的监 控数据复制到快照空间。
步骤808,存储设备将写请求数据写入写请求数据对应的源数据区中的数 据块。
具体的,本发明的存储设备可以在写时拷贝功能启动后在内存中建立并 维护一个位图,该位图的每个比特位对应于源数据区中的一个数据块,在每 个快照周期开始时将位图所有比特位设置为无效,存储设备可以根据该位图 的比特位信息判断是否需要对写请求数据对应的源数据区中的数据块进行快 照。基于该原理本发明提出了一种基于写时拷贝的数据存储方法,应用于包 括存储设备和外部设备的系统中,存储设备和外部设备通过IP网相连,存储 设备的存储空间通过RAID技术虚拟划分为源数据区和快照空间,所述方法 如图9所示,包括以下步骤
步骤900,存储设备启动一个快照周期。步骤901,存储设备将源数据区中的数据块对应的位图的所有比特位设置 为无效。
具体的,可以将位图的所有比特位都初始化设置为0或都设置为1,以o
或1作为无效标记。
步骤902,存储设备接收来自外部设备的写请求,写请求中包括写请求数 据和写请求命令。
步骤903 ,存储设备根据写请求确定写请求数据对应的源数据区中的数据块。
步骤904,存储设备根据位图的比特位判断是否需要对写请求数据对应的 源数据区中的数据块进行快照,若判断结果为是,转步骤905,若判断结果为 否,转步骤906。
具体的,存储设备根据位图的比特位为有效标记或者无效标记判断对应 的数据块是否需要进行快照,若写请求数据对应的数据块的位图的比特位为 无效,则判断需要对该数据块进行快照,若写请求数据对应的数据块的位图 的比特位为有效,则判断不需要对该数据块进行快照。
步骤905,存储设备才艮据调整后的单位监控数据量将写请求数据对应的监 控数据复制到快照空间。
步骤卯6,存储设备将写请求数据写入写请求数据对应的源数据区中的数 据块。
在步骤906之后,若步骤904中的判断结果为是,存储设备还需要将写 请求数据对应的数据块的位图的比特位设置为有效。
具体的,如果位图的比特位以0作为无效标记,则将该凄t据块对应的位 图的比特位设置为1;如果位图的比特位以l作为无效标记,则将该数据块对 应的位图的比特位设置为0。
本发明提供了一种基于写时拷贝的数据存储系统,如图10所示,包括外 部设备1001和存储设备1002,存储设备1002包括源数据区和快照空间 外部设备IOOI,用于向存储设备1002发送写请求数据和写请求命令,写请求命令中包括写请求数据的起始逻辑地址和写请求数据的数据量信息;
存储设备1002,用于接收来自外部设备1001的写请求数据和写请求命令。 根据写请求数据的数据量调整单位监控数据量。;f艮据写请求数据的起始逻辑 地址和写请求数据的数据量确定写请求数据在源数据区中对应的数据块。判 断是否需要对写请求数据对应的数据块进行快照,若判断结果为是,根据调 整后的单位监控数据量将写请求数据对应的监控数据复制到快照空间,将写 请求数据写入对应的数据块。
具体的,存储设备1002可以采用以下方式调整单位监控数据量将单位 监控数据量调整为写请求数据的数据量;或者计算写请求数据的数据量与已 处理的写请求数据的数据量的平均值,并将所述单位监控数据量调整为该平 均值;或者在写时拷贝功能启动后,设置标准单位监控数据量集合,该标准 单位监控数据量集合中包括至少一个标准单位监控数据量,在接收到写请求 数据后,将单位监控数据量调整为标准单位监控数据量集合中与写请求数据 的数据量的差的绝对值最小的标准单位监控数据量;或者在写时拷贝功能启 动后,设置标准单位监控数据量集合,该标准单位监控数据量集合中包括至 少一个标准单位监控数据量,在接收到写请求数据后,计算写请求数据的数 据量与已处理的写请求数据的数据量的平均值,将单位监控数据量调整为标 准单位监控数据量集合中与该平均值的差的绝对值最小的标准单位监控数据 量。
进一步的,存储设备1002还可以在写时拷贝功能启动后,建立并维护一 个位图,该位图的每个比特位对应于源数据区中的一个数据块,在一个快照 周期开始时,将该位图的所有比特位设置为无效。之后,根据写请求数据对 应的数据块的比特位判断是否需要对写请求数据对应的源数据区中的数据块 进行快照,若比特位为无效,则判断需要对写请求数据对应的数据块进行快 照,若比特位为有效,则判断不需要对写请求数据对应的数据块进行快照。 并且,将写请求数据写入对应的数据块之后,将写请求数据对应的数据块的 比特位设置为有效。本发明提供了一种存储设备,如图ll所示,包括接收模块1101、调整模
块U02、数据块确定模块1103、判断模块1104和处理模块1105:
接收模块1101,用于接收来自外部设备的写请求数据和写请求命令,写 请求命令中包括写请求数据的起始逻辑地址和所述写请求数据的数据量信 自
调整模块1102,用于根据接收模块1101接收的写请求数据的数据量调整 单位监控数据量。具体的,调整模块1102可以将单位监控数据量调整为写请 求数据的数据量,也可以计算该写请求数据的数据量与已处理的写请求数据 的数据量的平均值,并将单位监控数据量调整为该平均值。
数据块确定模块1103,用于根据接收模块1101接收的写请求数据的起始 逻辑地址和写请求数据的数据量确定写请求数据在源数据区中对应的数据 块。
判断模块1104,用于判断是否需要对数据块确定模块1103确定的写请求 数据对应的数据块进行快照。
处理模块1105,用于若判断模块1104的判断结果为是,根据调整模块1102 调整后的单位监控数据量将写请求数据对应的监控数据复制到快照空间,将 接收模块1101接收的写请求数据写入数据块确定才莫块1103确定的写请求数 据对应的数据块。
在图11所示的存储设备的基础上,该存储设备还可以包括监控集合设置 模块1106和监控集合记录模块1107,构成如图12所示的存储设备
监控集合记录模块1106,用于存储来自监控集合设置模块1107的标准单 位监控数据量集合。
监控集合设置模块1107,用于在写时拷贝功能启动后,设置标准单位监 控数据量集合,并将设置的标准单位监控数据量集合传送到监控集合记录模 块1106存储,标准单位监控数据量集合中包括至少一个标准单位监控数据量。
则调整模块1102,具体用于将单位监控数据量调整为监控集合记录模块 1106存储的标准单位监控数据量集合中与写请求数据的数据量的差的绝对值 最小的标准单位监控数据量;或计算写请求数据的数据量与已处理的写请求数据的数据量的平均值,将单位监控数据量调整为监控集合记录模块1106存 储的标准单位监控数据量集合中与平均值的差的绝对值最小的标准单位监控 数据量。
在图11所示的存储设备的基础上,该存储设备还可以包括位图记录模块
1108和位图设置模块1109,构成如图13所示的存储设备
位图记录模块1108,用于存储与源数据区中所有数据块对应的位图。 位图设置模块1109,用于在一个快照周期开始时,将位图记录模块1108 存储的位图的所有比特位设置为无效;若判断模块的判断结果为是,在将写 请求数据写入数据块确定模块1103确定的所述写请求数据对应的数据块之 后,将位图记录模块1108存储的位图中数据块确定模块1103确定的数据块 的比特位设置为有效。
则判断模块1104,具体用于根据位图记录模块1108存储的位图的比特位 判断是否需要对数据块确定模块1103确定的写请求数据对应的数据块进行快 照,若所述写请求数据对应的数据块的比特位为无效,则判断需要对所述写 请求数据对应的数据块进行快照,若所述写请求数据对应的数据块的比特位 为有效,则判断不需要对所述写请求数据对应的数据块进行快照。
在图11所示的存储设备的基础上,该存储设备还可以同时包括监控集合 记录模块1106、监控集合设置模块1107、位图记录模块1108和位图设置模块 1109,构成如图14所示的存储设备。
本发明中,根据写请求数据的数据量调整单位监控数据量,并根据调整 后的单位监控数据量将写请求数据对应的监控数据复制到所述快照空间,保 持了写入快照空间的监控数据的数据量与写请求数据的数据量的 一致性,节 省了快照空间的存储资源。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬 件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行 本发明所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中 的模块或流程并不 一 定是实施本发明所必须的。
本领域技术人员可以理解本发明中的装置中的模块可以按照实施例描 述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例 的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进 一步拆分成多个子模块。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于 此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种基于写时拷贝的数据存储方法,应用于包括存储设备和外部设备的系统中,所述存储设备包括源数据区和快照空间,其特征在于,所述方法包括以下步骤所述存储设备接收来自所述外部设备的写请求数据和写请求命令,所述写请求命令中包括所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息;所述存储设备根据所述写请求数据的数据量调整单位监控数据量;所述存储设备根据所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;所述存储设备判断是否对所述写请求数据对应的数据块进行快照,若判断结果为是,根据调整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空间,将所述写请求数据写入所述写请求数据对应的数据块。
2、 如权利要求l所述的方法,其特征在于,所述存储设备根据所述写请 求数据的数据量调整单位监控数据量包括所述存储设备将所述单位监控数据量调整为所述写请求数据的数据量。
3、 如权利要求l所述的方法,其特征在于,所述存储设备根据所述写请 求数据的数据量调整单位监控数据量包括所述存储设备计算所述写请求数据的数据量与已处理的写请求数据的数 据量的平均值;所述存储设备将所述单位监控数据量调整为所述平均值。
4、 如权利要求l所述的方法,其特征在于,还包括在写时拷贝功能启动后,所述存储设备设置标准单位监控数据量集合, 所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括 所述存储设备将所述单位监控数据量调整为所述标准单位监控数据量集 合中与所述写请求凄y居的数据量的差的绝对值最小的标准单位监控数据量。
5、 如权利要求l所述的方法,其特征在于,还包括在写时拷贝功能启动后,所述存储设备设置标准单位监控数据量集合, 所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括 所述存储设备计算所述写请求数据的数据量与已处理的写请求数据的数 据量的平均值;所述存储设备将所述单位监控数据量调整为所述标准单位监控数据量集 合中与所述平均值的差的绝对值最小的标准单位监控数据量。
6、 如权利要求1至5中任一项所述的方法,其特征在于,还包括 在一个快照周期开始时,所述存储设备将所述源数据区中所有数据块对应的位图的比特位设置为无效;所述存储设备判断是否对所述写请求数据对应的数据块进行快照包括 所述存储设备根据所述写请求数据对应的数据块的比特位判断是否对所述写请求数据对应的数据块进行快照,若所述比特位为无效,则判断对所述写请求数据对应的数据块进行快照,若所述比特位为有效,则判断不对所述写请求数据对应的数据块进行快照;所述存储设备将所述写请求数据写入所述写请求数据对应的数据块之后,还包括所述存储设备将所述写请求数据对应的数据块的比特位设置为有效。
7、 一种存储设备,所述设备包括源数据区和快照空间,其特征在于,包括接收模块,用于接收来自外部设备的写请求数据和写请求命令,所述写 请求命令中包括所述写请求数据的起始逻辑地址和所述写请求数据的数据量 信息;调整模块,用于根据所述接收模块接收的写请求数据的数据量调整单位 监控数据量;数据块确定模块,用于根据所述接收模块接收的所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;判断模块,用于判断是否对所述数据块确定模块确定的所述写请求数据 对应的数据块进行快照;处理模块,用于若所述判断模块的判断结果为是,根据所述调整模块调 整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空 间,将所述接收模块接收的写请求数据写入所述数据块确定模块确定的所述 写请求数据对应的数据块。
8、 如权利要求7所述的存储设备,其特征在于,所述调整模块具体用于, 将所述单位监控数据量调整为所述写请求数据的数据量。
9、 如权利要求7所述的存储设备,其特征在于,所述调整模块具体用于, 计算所述写请求数据的数据量与已处理的写请求数据的数据量的平均值;将所述单位监控数据量调整为所述平均值。
10、 如权利要求7所述的存储设备,其特征在于,所述设备还包括监控 集合设置模块和监控集合记录模块,所述监控集合设置模块,用于在写时拷贝功能启动后,设置标准单位监 控数据量集合,并将设置的标准单位监控数据量集合传送到所述监控集合记 录模块存储,所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;所述监控集合记录模块,用于存储来自所述监控集合设置模块的标准单 位监控数据量集合;则所述调整模块,具体用于将所述单位监控数据量调整为所述监控集合 记录模块存储的标准单位监控数据量集合中与所述写请求数据的数据量的差 的绝对值最小的标准单位监控数据量;或计算所述写请求数据的数据量与已 处理的写请求数据的数据量的平均值,将所述单位监控数据量调整为所述监 控集合记录模块存储的标准单位监控数据量集合中与所述平均值的差的绝对 值最小的标准单位监控数据量。
11、如权利要求7至10中任一项所述的存储设备,其特征在于,所述设 备还包括位图设置模块和位图记录模块,所述位图记录模块,用于存储与所述源数据区中所有数据块对应的位图; 所述位图设置模块,用于在一个快照周期开始时,将所述位图记录模块 存储的位图的所有比特位设置为无效;在所述处理模块将所述写请求数据写 入所述数据块确定^f莫块确定的所述写请求数据对应的数据块之后,将所述位 图记录模块存储的位图中所述数据块确定模块确定的数据块的比特位设置为 有效;则所述判断模块,具体用于根据所述位图记录模块存储的位图的比特位 判断是否对所述数据块确定模块确定的所述写请求数据对应的数据块进行快 照,若所述写请求数据对应的数据块的比特位为无效,则判断对所述写请求 数据对应的数据块进行快照,若所述写请求数据对应的数据块的比特位为有 效,则判断不对所述写请求数据对应的数据块进行快照。
全文摘要
本发明公开了一种基于写时拷贝的数据存储方法、系统及设备,所述方法包括以下步骤存储设备接收来自外部设备的写请求数据和写请求命令;根据所述写请求数据的数据量调整单位监控数据量;根据所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;判断是否对所述写请求数据对应的数据块进行快照,若判断结果为是,根据调整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空间,将所述写请求数据写入所述写请求数据对应的数据块。本发明中,保持了写入快照空间的监控数据的数据量与写请求数据的数据量的一致性,节省了快照空间的存储资源。
文档编号G06F12/08GK101520743SQ20091013550
公开日2009年9月2日 申请日期2009年4月17日 优先权日2009年4月17日
发明者辉 朱 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1