CN101520743B - 基于写时拷贝的数据存储方法及设备 - Google Patents
基于写时拷贝的数据存储方法及设备 Download PDFInfo
- Publication number
- CN101520743B CN101520743B CN2009101355058A CN200910135505A CN101520743B CN 101520743 B CN101520743 B CN 101520743B CN 2009101355058 A CN2009101355058 A CN 2009101355058A CN 200910135505 A CN200910135505 A CN 200910135505A CN 101520743 B CN101520743 B CN 101520743B
- Authority
- CN
- China
- Prior art keywords
- data
- write request
- request data
- memory device
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于写时拷贝的数据存储方法及设备,所述方法包括以下步骤:存储设备接收来自外部设备的写请求数据和写请求命令;根据所述写请求数据的数据量调整单位监控数据量;根据所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;判断是否对所述写请求数据对应的数据块进行快照,若判断结果为是,根据调整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空间,将所述写请求数据写入所述写请求数据对应的数据块。本发明中,保持了写入快照空间的监控数据的数据量与写请求数据的数据量的一致性,节省了快照空间的存储资源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于写时拷贝的数据存储方法及设备。
背景技术
伴随着基于TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,互联网协议)的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中接收到的写请求数据的数据量为10KB。存储设备在启动写时拷贝功能后还处理过1个写请求数据,该处理过的写请求数据的数据量为18KB。则存储设备计算并获得的平均值为14KB。若步骤601中接收到的写请求数据的数据量为8KB。存储设备在启动写时拷贝功能后还处理过2个写请求数据,该处理过的写请求数据的数据量分别为10KB、14KB。则存储设备计算并获得的平均值为10.7KB。另外,还可以设定已经处理的写请求数据的个数阈值,例如将该阈值设定为2,若已经处理的写请求数据的个数大于2,则只计算新收到的写请求数据的数据量与已经处理的最后2个写请求数据的数据量的平均值。
步骤603,存储设备将单位监控数据量调整为步骤602中得到的平均值。
例如,若步骤602中获得的平均值为14KB,则将单位监控数据量调整为14KB;若步骤602中获得的平均值为10.7KB,由于存储设备是以0.5KB(即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中接收到的写请求数据的数据量为10KB。存储设备在 启动写时拷贝功能后还处理过1个写请求数据,该处理过的写请求数据的数据量为18KB。则存储设备计算并获得的平均值为14KB。若步骤801中接收到的写请求数据的数据量为8KB。存储设备在启动写时拷贝功能后还处理过2个写请求数据,该处理过的写请求数据的数据量分别为10KB和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,以0或1作为无效标记。
步骤902,存储设备接收来自外部设备的写请求,写请求中包括写请求数据和写请求命令。
步骤903,存储设备根据写请求确定写请求数据对应的源数据区中的数据块。
步骤904,存储设备根据位图的比特位判断是否需要对写请求数据对应的源数据区中的数据块进行快照,若判断结果为是,转步骤905,若判断结果为否,转步骤906。
具体的,存储设备根据位图的比特位为有效标记或者无效标记判断对应的数据块是否需要进行快照,若写请求数据对应的数据块的位图的比特位为无效,则判断需要对该数据块进行快照,若写请求数据对应的数据块的位图的比特位为有效,则判断不需要对该数据块进行快照。
步骤905,存储设备根据调整后的单位监控数据量将写请求数据对应的监控数据复制到快照空间。
步骤906,存储设备将写请求数据写入写请求数据对应的源数据区中的数据块。
在步骤906之后,若步骤904中的判断结果为是,存储设备还需要将写请求数据对应的数据块的位图的比特位设置为有效。
具体的,如果位图的比特位以0作为无效标记,则将该数据块对应的位图的比特位设置为1;如果位图的比特位以1作为无效标记,则将该数据块对应的位图的比特位设置为0。
本发明提供了一种基于写时拷贝的数据存储系统,如图10所示,包括外部设备1001和存储设备1002,存储设备1002包括源数据区和快照空间:
外部设备1001,用于向存储设备1002发送写请求数据和写请求命令,写 请求命令中包括写请求数据的起始逻辑地址和写请求数据的数据量信息;
存储设备1002,用于接收来自外部设备1001的写请求数据和写请求命令。根据写请求数据的数据量调整单位监控数据量。根据写请求数据的起始逻辑地址和写请求数据的数据量确定写请求数据在源数据区中对应的数据块。判断是否需要对写请求数据对应的数据块进行快照,若判断结果为是,根据调整后的单位监控数据量将写请求数据对应的监控数据复制到快照空间,将写请求数据写入对应的数据块。
具体的,存储设备1002可以采用以下方式调整单位监控数据量:将单位监控数据量调整为写请求数据的数据量;或者计算写请求数据的数据量与已处理的写请求数据的数据量的平均值,并将所述单位监控数据量调整为该平均值;或者在写时拷贝功能启动后,设置标准单位监控数据量集合,该标准单位监控数据量集合中包括至少一个标准单位监控数据量,在接收到写请求数据后,将单位监控数据量调整为标准单位监控数据量集合中与写请求数据的数据量的差的绝对值最小的标准单位监控数据量;或者在写时拷贝功能启动后,设置标准单位监控数据量集合,该标准单位监控数据量集合中包括至少一个标准单位监控数据量,在接收到写请求数据后,计算写请求数据的数据量与已处理的写请求数据的数据量的平均值,将单位监控数据量调整为标准单位监控数据量集合中与该平均值的差的绝对值最小的标准单位监控数据量。
进一步的,存储设备1002还可以在写时拷贝功能启动后,建立并维护一个位图,该位图的每个比特位对应于源数据区中的一个数据块,在一个快照周期开始时,将该位图的所有比特位设置为无效。之后,根据写请求数据对应的数据块的比特位判断是否需要对写请求数据对应的源数据区中的数据块进行快照,若比特位为无效,则判断需要对写请求数据对应的数据块进行快照,若比特位为有效,则判断不需要对写请求数据对应的数据块进行快照。并且,将写请求数据写入对应的数据块之后,将写请求数据对应的数据块的比特位设置为有效。
本发明提供了一种存储设备,如图11所示,包括接收模块1101、调整模块1102、数据块确定模块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所示的存储设备。
本发明中,根据写请求数据的数据量调整单位监控数据量,并根据调整后的单位监控数据量将写请求数据对应的监控数据复制到所述快照空间,保持了写入快照空间的监控数据的数据量与写请求数据的数据量的一致性,节省了快照空间的存储资源。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解本发明中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (11)
1.一种基于写时拷贝的数据存储方法,应用于包括存储设备和外部设备的系统中,所述存储设备包括源数据区和快照空间,其特征在于,所述方法包括以下步骤:
所述存储设备接收来自所述外部设备的写请求数据和写请求命令,所述写请求命令中包括所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息;
所述存储设备根据所述写请求数据的数据量调整单位监控数据量;
所述存储设备根据所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;
所述存储设备判断是否对所述写请求数据对应的数据块进行快照,若判断结果为是,根据调整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空间,将所述写请求数据写入所述写请求数据对应的数据块;若判断结果为否,存储设备将写请求数据写入写请求数据对应的源数据区中的数据块。
2.如权利要求1所述的方法,其特征在于,所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括:
所述存储设备将所述单位监控数据量调整为所述写请求数据的数据量。
3.如权利要求1所述的方法,其特征在于,所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括:
所述存储设备计算所述写请求数据的数据量与已处理的写请求数据的数据量的平均值;
所述存储设备将所述单位监控数据量调整为所述平均值。
4.如权利要求1所述的方法,其特征在于,还包括:
在写时拷贝功能启动后,所述存储设备设置标准单位监控数据量集合,所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;
所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括:
所述存储设备将所述单位监控数据量调整为所述标准单位监控数据量集合中与所述写请求数据的数据量的差的绝对值最小的标准单位监控数据量。
5.如权利要求1所述的方法,其特征在于,还包括:
在写时拷贝功能启动后,所述存储设备设置标准单位监控数据量集合,所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;
所述存储设备根据所述写请求数据的数据量调整单位监控数据量包括:
所述存储设备计算所述写请求数据的数据量与已处理的写请求数据的数据量的平均值;
所述存储设备将所述单位监控数据量调整为所述标准单位监控数据量集合中与所述平均值的差的绝对值最小的标准单位监控数据量。
6.如权利要求1至5中任一项所述的方法,其特征在于,还包括:
在一个快照周期开始时,所述存储设备将所述源数据区中所有数据块对应的位图的比特位设置为无效;
所述存储设备判断是否对所述写请求数据对应的数据块进行快照包括:
所述存储设备根据所述写请求数据对应的数据块的比特位判断是否对所述写请求数据对应的数据块进行快照,若所述比特位为无效,则判断对所述写请求数据对应的数据块进行快照,若所述比特位为有效,则判断不对所述写请求数据对应的数据块进行快照;
所述存储设备将所述写请求数据写入所述写请求数据对应的数据块之后,还包括:
所述存储设备将所述写请求数据对应的数据块的比特位设置为有效。
7.一种存储设备,所述设备包括源数据区和快照空间,其特征在于,包括:
接收模块,用于接收来自外部设备的写请求数据和写请求命令,所述写请求命令中包括所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息;
调整模块,用于根据所述接收模块接收的写请求数据的数据量调整单位监控数据量;
数据块确定模块,用于根据所述接收模块接收的所述写请求数据的起始逻辑地址和所述写请求数据的数据量信息确定所述写请求数据在所述源数据区中对应的数据块;
判断模块,用于判断是否对所述数据块确定模块确定的所述写请求数据对应的数据块进行快照;
处理模块,用于若所述判断模块的判断结果为是,根据所述调整模块调整后的单位监控数据量将所述写请求数据对应的监控数据复制到所述快照空间,将所述接收模块接收的写请求数据写入所述数据块确定模块确定的所述写请求数据对应的数据块;若判断结果为否,将写请求数据写入写请求数据对应的源数据区中的数据块。
8.如权利要求7所述的存储设备,其特征在于,所述调整模块具体用于,
将所述单位监控数据量调整为所述写请求数据的数据量。
9.如权利要求7所述的存储设备,其特征在于,所述调整模块具体用于,
计算所述写请求数据的数据量与已处理的写请求数据的数据量的平均值;
将所述单位监控数据量调整为所述平均值。
10.如权利要求7所述的存储设备,其特征在于,所述设备还包括监控集合设置模块和监控集合记录模块,
所述监控集合设置模块,用于在写时拷贝功能启动后,设置标准单位监控数据量集合,并将设置的标准单位监控数据量集合传送到所述监控集合记录模块存储,所述标准单位监控数据量集合中包括至少一个标准单位监控数据量;
所述监控集合记录模块,用于存储来自所述监控集合设置模块的标准单位监控数据量集合;
则所述调整模块,具体用于将所述单位监控数据量调整为所述监控集合记录模块存储的标准单位监控数据量集合中与所述写请求数据的数据量的差的绝对值最小的标准单位监控数据量;或计算所述写请求数据的数据量与已处理的写请求数据的数据量的平均值,将所述单位监控数据量调整为所述监控集合记录模块存储的标准单位监控数据量集合中与所述平均值的差的绝对值最小的标准单位监控数据量。
11.如权利要求7至10中任一项所述的存储设备,其特征在于,所述设备还包括位图设置模块和位图记录模块,
所述位图记录模块,用于存储与所述源数据区中所有数据块对应的位图;
所述位图设置模块,用于在一个快照周期开始时,将所述位图记录模块存储的位图的所有比特位设置为无效;在所述处理模块将所述写请求数据写入所述数据块确定模块确定的所述写请求数据对应的数据块之后,将所述位图记录模块存储的位图中所述数据块确定模块确定的数据块的比特位设置为有效;
则所述判断模块,具体用于根据所述位图记录模块存储的位图的比特位判断是否对所述数据块确定模块确定的所述写请求数据对应的数据块进行快照,若所述写请求数据对应的数据块的比特位为无效,则判断对所述写请求数据对应的数据块进行快照,若所述写请求数据对应的数据块的比特位为有效,则判断不对所述写请求数据对应的数据块进行快照。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101355058A CN101520743B (zh) | 2009-04-17 | 2009-04-17 | 基于写时拷贝的数据存储方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101355058A CN101520743B (zh) | 2009-04-17 | 2009-04-17 | 基于写时拷贝的数据存储方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101520743A CN101520743A (zh) | 2009-09-02 |
CN101520743B true CN101520743B (zh) | 2010-12-08 |
Family
ID=41081346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101355058A Expired - Fee Related CN101520743B (zh) | 2009-04-17 | 2009-04-17 | 基于写时拷贝的数据存储方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101520743B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789977B (zh) * | 2010-02-08 | 2012-07-25 | 北京同有飞骥科技股份有限公司 | 一种基于Hash编码的远程数据复制去重方法 |
CN101808243B (zh) * | 2010-03-11 | 2012-04-18 | 杭州华三通信技术有限公司 | 一种基于快照的数据处理方法和设备 |
CN102541750A (zh) * | 2011-12-31 | 2012-07-04 | 曙光信息产业股份有限公司 | 数据快照的实现方法和装置 |
CN102971698B (zh) * | 2012-06-29 | 2014-07-09 | 华为技术有限公司 | 快照数据处理方法及系统、存储系统、快照代理 |
WO2016045096A1 (zh) * | 2014-09-26 | 2016-03-31 | 华为技术有限公司 | 一种文件迁移方法、装置和存储设备 |
WO2016101266A1 (zh) * | 2014-12-26 | 2016-06-30 | 华为技术有限公司 | 一种基于写重定向的存储服务器确定增量数据的方法及装置 |
US9912748B2 (en) * | 2015-01-12 | 2018-03-06 | Strato Scale Ltd. | Synchronization of snapshots in a distributed storage system |
JP6610094B2 (ja) * | 2015-08-28 | 2019-11-27 | 富士ゼロックス株式会社 | 仮想計算機システム及び仮想計算機プログラム |
CN105302665B (zh) * | 2015-10-12 | 2018-02-02 | 深圳市安云信息科技有限公司 | 一种改进的写时拷贝快照方法及系统 |
WO2017132790A1 (zh) * | 2016-02-01 | 2017-08-10 | 华为技术有限公司 | 数据恢复方法及存储设备 |
CN106406756B (zh) * | 2016-09-05 | 2019-07-09 | 华为技术有限公司 | 一种文件系统的空间分配方法及装置 |
WO2020072052A1 (en) * | 2018-10-03 | 2020-04-09 | Google Llc | Maintaining block level snapshots using free storage space |
CN110968645B (zh) * | 2019-12-03 | 2023-05-12 | 携程旅游网络技术(上海)有限公司 | 分布式系统的数据读写方法、系统、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862475A (zh) * | 2005-07-15 | 2006-11-15 | 华为技术有限公司 | 磁盘阵列缓存的管理方法 |
-
2009
- 2009-04-17 CN CN2009101355058A patent/CN101520743B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862475A (zh) * | 2005-07-15 | 2006-11-15 | 华为技术有限公司 | 磁盘阵列缓存的管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101520743A (zh) | 2009-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101520743B (zh) | 基于写时拷贝的数据存储方法及设备 | |
US10706072B2 (en) | Data replication method and storage system | |
US8370302B2 (en) | Method and apparatus for block based volume backup | |
US10324843B1 (en) | System and method for cache management | |
US9367260B1 (en) | Dynamic replication system | |
US9471579B1 (en) | Replicating selected snapshots from one storage array to another, with minimal data transmission | |
US20190303350A1 (en) | Distributed write journals that support fast snapshotting for a distributed file system | |
US8996460B1 (en) | Accessing an image in a continuous data protection using deduplication-based storage | |
US9940205B2 (en) | Virtual point in time access between snapshots | |
US10067837B1 (en) | Continuous data protection with cloud resources | |
US9749300B1 (en) | Method and system for immediate recovery of virtual machines encrypted in the cloud | |
US10019362B1 (en) | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions | |
US9087112B1 (en) | Consistency across snapshot shipping and continuous replication | |
US8726066B1 (en) | Journal based replication with enhance failover | |
US8924354B2 (en) | Block level data replication | |
US20160150012A1 (en) | Content-based replication of data between storage units | |
EP2254036B1 (en) | Storage apparatus and data copy method | |
CN103765373B (zh) | 数据存储方法、数据存储装置和存储设备 | |
US20070208918A1 (en) | Method and apparatus for providing virtual machine backup | |
US9880928B1 (en) | Storing compressed and uncompressed data in blocks having different allocation unit sizes | |
US11226868B2 (en) | Replication link smoothing using historical data | |
US7890715B2 (en) | Suspension of an asynchronous remote copy pair system having a primary controller and a remote controller | |
CN110825559A (zh) | 一种数据处理方法及设备 | |
WO2023230455A1 (en) | On-demand serverless disaster recovery | |
US10684922B2 (en) | Enhanced data storage using compressed data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101208 Termination date: 20200417 |
|
CF01 | Termination of patent right due to non-payment of annual fee |