CN104866435B - 一种连续数据保护方法 - Google Patents
一种连续数据保护方法 Download PDFInfo
- Publication number
- CN104866435B CN104866435B CN201510302925.6A CN201510302925A CN104866435B CN 104866435 B CN104866435 B CN 104866435B CN 201510302925 A CN201510302925 A CN 201510302925A CN 104866435 B CN104866435 B CN 104866435B
- Authority
- CN
- China
- Prior art keywords
- volume
- data
- record
- file
- daily record
- 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.)
- Active
Links
Abstract
本发明提出一种连续数据保护方法,能够恢复数据到任意时间点,能够在较短的时间内挂载数据,实现数据的快速验证、写入、立即使用。首先执行初始化同步,将生产主机块设备的初始状态同步到备份主机,同时启动数据变化截获模块,截获数据变化并传输到备份主机,数据变化写入镜像卷,数据变化地址的原数据写入日志卷,并记录时间戳、偏移量、长度、存储地址,实现任意数据变化的记录。利用虚拟卷的重构,实际数据访问通过虚拟卷索引块重定向到镜像卷、日志卷和写时卷,实现数据的读出和写入。利用数据读出实现数据恢复。另外,删除过时数据,只需找到并删除结束时间戳在该时间点之前的所有日志卷、日志卷元数据文件。
Description
技术领域
本发明涉及信息安全领域中的数据保护领域,尤其涉及一种连续数据保护方法。
背景技术
数据保护针对数据的不同重要程度,分为定时备份和实时备份。定时备份主要针对重要程度较低的数据,如文件、程序等,定时备份为每间隔一个固定的时间段,对数据进行复制操作。实时备份主要针对重要程度较高的数据,如数据库、逻辑卷等,实时备份为当数据发生变化时,将数据变化部分同步或异步的传输到本地或异地的存储介质中保存,完成数据的备份。
针对块设备,即磁盘、分区、逻辑卷等进行备份的主要方法为块复制,通常的方法为获取块设备数据变化,然后将数据变化传输到备份设备进行备份。获取块设备数据变化的方法有快照、数据截获驱动等。在数据恢复时,快照只能恢复到快照时间点的数据,两个快照时间点之间的数据变化则丢失。为了提高恢复效率,能够恢复数据到任意时间点,提出一种连续数据保护方法。
发明内容
本发明提出一种连续数据保护方法,能够恢复数据到任意时间点,能够在较短的时间内挂载数据,实现数据的快速验证、写入、立即使用。首先执行初始化同步,将生产主机块设备的初始状态同步到备份主机,存入镜像卷,同时启动数据变化截获模块,截获数据变化并传输到备份主机,数据变化写入镜像卷,数据变化地址的原数据写入日志卷,并记录时间戳、偏移量、长度、存储地址,实现任意数据变化的记录。构建任意时间点数据,即搜索从当前时间到任意时间点的所有数据变化,按照时间点从后到前的顺序,利用镜像卷、日志卷元数据记录重组虚拟卷索引块,对数据的实际访问,通过虚拟卷索引块,重定向到镜像卷或日志卷的读访问;当需要写虚拟卷时,将数据变化内容记录到写时卷内,同时更新虚拟卷索引块。当需要恢复时,构造恢复时间点虚拟卷,然后读取虚拟卷数据,将数据传输到生产主机,写入到对应偏移量完成恢复。删除某时间点之前的过时数据,找到并删除结束时间戳在该时间点之前的所有日志卷、日志卷元数据文件,并更新连续数据保护元数据文件内容。
本发明涉及一种数据连续保护方法,包括:
定义数据变化记录D,该数据变化记录D至少包括生产主机名Dh、设备名Dn、时间戳Dt、偏移量Ds、长度De、数据内容Dc;
定义连续数据保护元数据文件F,该连续数据保护元数据文件F至少包括设备元数据记录E、镜像卷元数据记录M、日志卷配置记录S,若干个日志卷元数据记录L,其中设备元数据记录E至少包括生产主机名E1、设备名E2、块大小E3、总大小E4,镜像卷元数据记录M至少包括文件名M1、存储类型M2、缓存文件名M3,日志卷配置记录S至少包括当前日志卷文件名S1、日志卷额定大小S2、当前日志卷元数据文件名S3,日志卷元数据记录L至少包括开始时间戳Ls、结束时间戳Le、日志卷元数据文件名La、日志卷文件名Lm;
定义虚拟卷索引块数组VA,该虚拟卷索引块数组VA由若干个虚拟卷索引块构成,该虚拟卷索引块至少包括存放文件Vf、存放位置Vs,虚拟卷索引块数组VA中第m条记录代表虚拟卷第m数据块,则虚拟卷索引块数组VA中第m条记录中的存放文件Vf[m],代表虚拟卷第m数据块的实际数据存储资源,虚拟卷索引块数组VA中第m条记录中的存放位置Vs[m],代表在对应存储资源中从0开始计算的偏移量;
定义虚拟卷存储资源数组SA,该虚拟卷存储资源数组SA由若干个虚拟卷存储资源组成,虚拟卷存储资源至少包括文件名;
步骤1,连续数据保护初始化步骤,包括存储资源的分配,元数据文件的创建,快照数据的创建、传输和写入;
步骤2,数据变化截获及缓存步骤,包括数据变化截获、封装、上传、解封、写入缓存;
步骤3,日志卷写入步骤,包括日志卷数据的写入、日志卷元数据文件更新、连续数据保护元数据文件更新;
步骤4,虚拟卷重组步骤,搜索恢复时间点T之后的日志卷、日志卷元数据文件、镜像卷,以镜像卷的信息初始化虚拟卷索引块,按照从后到前的顺序扫描日志卷元数据文件,更新虚拟卷索引块,设置对应索引块的存放文件和存放位置;
步骤5,虚拟卷数据读出步骤,以读取偏移量Rs、块大小Es计算得到虚拟卷索引块数组VA下标,访问该索引块,并访问对应的存放文件和存放位置,读出数据,存放到读缓冲区;
步骤6,备份数据删除步骤,查找并删除结束时间戳大于删除时间点的所有日志卷文件、日志卷元数据文件、更新连续数据保护元数据文件;
步骤7,虚拟卷数据写入步骤,将数据变化内容写入到写时卷内,同时更新虚拟卷索引块;
步骤8,备份数据恢复步骤,构造恢复时间点虚拟卷,读取虚拟卷数据,将数据传输到生产主机,写入到对应偏移量完成恢复。
所述步骤1中连续数据保护初始化进一步为:
步骤101,对块设备Dn打快照,生成快照卷NV;
步骤102,启动数据变化截获模块MLD02;
步骤103,传输配置信息步骤,配置信息包括:生产主机名Dh、设备名Dn、块大小E3、总大小E4;
步骤104,从快照卷NV的偏移量0开始到MNL结束,MNL为快照卷NV的长度,构造数据变化记录D,设置j为偏移量,其中Dh为生产主机名,Dn为块设备名,时间戳Dt=0,偏移量Ds=j,长度De为E3,数据内容Dc为从偏移量j开始的E3长度的快照卷上的数据内容;
步骤105,删除快照卷NV;
步骤111,等待数据传输;
步骤112,判断是否为配置信息,如果是,转步骤116,如果否转步骤113;
步骤113,判断是否为初始化数据,如果是,转步骤114,如果否转步骤117;
步骤114,解析初始化数据,向镜像卷MV的偏移量为Ds处写入长度为De的数据内容Dc;
步骤115,判断初始化记录是否为镜像卷NV最后一块,如果是,则结束,如果否,转步骤111;
步骤116,创建连续数据保护相关资源及初始化,创建连续数据保护元数据文件F,初始化设备元数据记录E,设置生产主机名E1=Dh,设备名E2=Dn,块大小E3,总大小E4,创建镜像卷MV,创建缓存文件HB,设置镜像卷元数据记录M,设置文件名M1为镜像卷MV的访问路径,设置存储类型M2为镜像卷MV支持的完全预分配或稀疏文件访问类型,设置缓存文件名M3为缓存文件HB访问路径,创建当前日志卷文件LV1,创建当前日志卷元数据文件LM1,设置日志卷配置记录S,设置当前日志卷文件名S1为日志卷文件LV1的访问路径,设置日志卷额定大小S2为常量,设置当前日志卷元数据文件名S3为日志卷元数据文件LM1的访问路径,设置日志卷元数据记录L1,设置L1中的开始时间戳Ls为0,设置L1中的结束时间戳Le为0,设置L1中的日志卷元数据文件名La为日志卷元数据记录文件LM1的访问路径,设置L1中的日志卷文件名Lm为日志卷文件LV1的访问路径,转步骤111;
步骤117,丢弃接收数据,转步骤111。
所述步骤2中数据变化截获及缓存进一步为:
步骤201,数据变化截获模块MLD01等待数据变化;
步骤202,生成数据变化记录D,当截获到数据变化后,设置Dh为本机名,设置Dn为产生数据变化的设备名,设置Dt为截获数据时的时间戳,设置Ds为截获数据的偏移量,设置数据长度De为截获数据的长度,设置数据内容Dc为截获数据的数据内容;
步骤203,传输数据变化记录D;
步骤211,数据写入模块MLD04等待数据传输;
步骤212,确定对应缓存文件M3,获得并解析数据变化记录D,按照生产主机名Dh和设备名Dn,打开对应连续数据保护元数据文件F,读取镜像卷元数据记录M,获得对应的缓存文件名M3;
步骤213,判断数据是否为正常数据变化记录D,如果否转步骤216,如果是转步骤214;
步骤214,写入数据变化记录D到缓存文件HB,获取缓存文件HB的写权限,将数据变化记录D中的时间戳Dt、偏移量Ds、长度De、内容Dc添加到缓存文件HB的末尾;
步骤215,关闭缓存文件HB,转步骤211;写数据变化完成后,关闭缓存文件HB,释放文件写访问权;
步骤216,丢弃接收数据步骤,转步骤211。
所述步骤3中日志卷写入进一步为:
步骤301,阻塞获取缓存文件HB写权限,打开缓存文件HB;
步骤302,判断缓存文件HB是否为空,如果为空转步骤314,如果不为空,转步骤303;
步骤303,从连续数据保护元数据文件F中获得相关资源信息,打开相关存储资源步骤;获得镜像卷文件名M1,打开镜像卷MV,获得当前日志卷文件名S1,打开当前日志卷LVn,获得当前日志卷元数据文件名S3,打开当前日志卷元数据文件LMn,获得日志卷额定大小S2;
步骤304,从缓存文件HB中读出第1条缓存记录,解析缓存记录,得到时间戳Dt、偏移量Ds、长度De、内容Dc;
步骤305,从镜像卷MV中读出以偏移量Ds开始的,长度为De的数据内容Dcd;
步骤306,获取当前日志卷文件LVn末尾偏移量,记为存储地址B4,判断日志卷文件是否为空,如果为空则转步骤311,否则转步骤307;
步骤307,将数据内容Dcd写入到日志卷文件LVn末尾;
步骤308,在日志卷元数据文件LMn的文件末尾添加一条日志卷元数据记录B,记录内容为:时间戳Dt、偏移量Ds、长度De、存储地址B4;
步骤309,判断当前日志卷文件大小是否已大于日志卷额定大小S2,如果是转步骤312,否则转步骤310;
步骤310,删除缓存文件HB中第1条数据变化记录,关闭缓存文件HB,转步骤301;
步骤311,更新连续数据保护元数据文件F中日志卷元数据记录Ln,设置其开始时间戳Ls为时间戳Dt,转步骤307;
步骤312,更新当前日志卷元数据记录Ln,设置其结束时间戳Le为时间戳Dt;
步骤313,设置n=n+1,创建新的日志卷文件LVn、日志卷元数据文件LMn,更新连续数据保护元数据文件F,新增日志卷元数据文件记录Ln,更新日志卷配置记录S,转步骤310;其中Ln中日志卷文件名Lm为新创建的日志卷文件LVn的访问路径,Ln中日志卷元数据文件名La为新创建的日志卷元数据文件LMn的访问路径,日志卷配置记录S中当前日志卷文件名为新创建的日志卷文件LVn的访问路径,当前日志卷元数据文件名S2为新创建的日志卷元数据文件LMn的访问路径。
所述步骤4中所述虚拟卷重组进一步为:
步骤401,获得主机名Dh,设备名Dn及恢复时间点T;
步骤402,打开对应主机名Dh,设备名Dn的连续数据保护元数据文件F,初始化虚拟卷存储数组SA,0号下标写入镜像卷MV存储文件名,第1至N下标分别写入第1至N日志卷LV1~LVn文件名步骤,第N+1下标为写时卷文件名WV;
步骤403,初始化虚拟卷索引块数组VA,初始化为镜像卷MV偏移量,从[0,0]开始,到[0,m]结束;
步骤404,从最后一个日志卷元数据记录Ln开始,查找Lx,满足条件:Lx中的开始时间戳Ls ≤ T ≤Lx中的结束时间戳Le,或Lx-1中的结束时间戳Le < T ≤ Ln中的开始时间戳Ls,如果x=1,则L0的结束时间戳为0,如果找到转步骤405,否则转步骤416,其中Lx为日志卷元数据文件中的某条日志卷元数据记录,Lx-1为较Lx更早的第一条日志卷元数据记录,例如,Lx为第3条日志卷元数据记录,则Lx-1为第2条日志卷元数据记录;
步骤405,设置日志卷元数据记录Ly=Ln,打开Ly的日志卷元数据文件LVy,设置记录读取指针指向最后一条记录步骤;
步骤406,读入日志卷元数据记录Bi,设置记录读取指针指向上一条记录;
步骤407,判断Bi是否为空,如果是转步骤413,如果否转步骤408;
步骤408,判断日志卷元数据记录Bi的时间戳Bt大于恢复时间点T,如果是转步骤409,如果否转步骤416;
步骤409,设置临时变量K为0;
步骤410,判断K*E3是否小于长度Be,如果是转步骤411,否则转步骤406;
步骤411,更新虚拟卷索引块数组VA,设置虚拟卷索引块数组VA中第[Bs+K*E3]条记录中的存放文件Vf[Bs+K*E3]为y,即Vf[Bs+K*E3]=y,设置虚拟卷索引块数组VA中第[Bs+K*E3]条记录中的存放位置Vs[Bs+K*E3]为Br+K*E3,即Vs[Bs+K*E3]= Br+K*E3,其中Bs为日志卷元数据记录Bi的偏移量,Br为日志卷元数据记录Bi的存储地址;
步骤412,更新临时变量K=K+1,转步骤410;
步骤413,关闭日志卷元数据文件LVy,设置日志卷元数据记录Ly=Ln-1;
步骤414,判断Ly小于Lx,如果小于则转步骤416,否则转步骤415;
步骤415,打开日志卷元数据文件LVy,转步骤406;
步骤416,结束。
所述步骤5中虚拟卷数据读出进一步为:
步骤501,获得读取偏移量Rs、长度Re、读缓冲区Ru、读缓冲起始地址Rp、虚拟卷索引块数组VA起始地址;
步骤502,设置临时变量j=0;
步骤503,判断j*E3是否大于Re,如果大于则转步骤507,否则转504;
步骤504,获得虚拟卷索引块数组VA下标为m=(Rs/E3-1)的虚拟卷索引块,获得该虚拟卷索引块中的存放文件 Vf[m],获得该虚拟卷索引块中的存放位置Vs[m];
步骤505,访问虚拟卷存储文件数组SA,访问以Vf[m]为下标的记录,获得数据文件名,打开该文件,从该文件偏移量Vs[m]处读出E3大小的数据块并写入读缓冲区Ru的地址Rp+j*E3处;
步骤506,设置j=j+1,转步骤503;
步骤507,结束。
所述步骤6中备份数据删除进一步为:
步骤601,获得删除时间点Td;
步骤602,打开连续数据保护元数据文件F,设临时变量j=1,读取第j条日志卷元数据记录Lj;
步骤603,判断Lj中结束时间戳Le是否大于Td,如果大于则转步骤604,否则转步骤607;
步骤604,删除Lj中日志卷元数据文件名La对应的日志卷元数据文件,删除日志卷文件名Lm对应的日志卷文件,日志卷元数据记录Lj;
步骤605,设置j=j+1,读取日志卷元数据记录Lj;
步骤606,判断Lj是否为空,如果为空则转步骤607,否则转步骤603;
步骤607,结束。
所述步骤7中虚拟卷数据写入进一步为:
步骤701,判断是否存在写时卷WV,如果存在则转步骤703,否则转702;
步骤702,打开连续保护元数据文件F,创建写时卷WV,更新虚拟卷存储资源数组SA,其中N为日志卷个数;
步骤703,获得写入偏移量Ws、长度We、数据内容Wc;
步骤704,打开写时卷WV并移动到末尾,记录此时的偏移量Ps,写入数据内容Wc;
步骤705,设置临时变量j=0;
步骤706,判断j*E3是否小于We,如果小于则转步骤707,否则转步骤709;
步骤707,获得虚拟卷下标为m=(Ws/E3-1)的索引块,获得该索引块中的存放文件Vf[m],获得该索引块中的存放位置Vs[m],更新Vf[m]=N+1,更新Vs[m]=Ps+j*E3;
步骤708,设置j=j+1,转步骤706;
步骤709,结束。
所述步骤8中备份数据恢复进一步为:
步骤801,获得主机名Dh、设备名Dn及恢复时间Tr,并执行重组流程,设置起始偏移量j=0,设置读缓冲区Ru起始地址为Rp=0步骤,其中MAX为虚拟卷最后一个数据块偏移量;
步骤802,判断偏移量j*E3是否大于MAX,如果是则转步骤807,否则转步骤803;
步骤803,向虚拟卷读流程传入参数:偏移量j*E3、长度E3、读缓冲区Ru、读缓冲区起始地址Rp;
步骤804,向生产主机发送恢复偏移量j*E3,长度E3,数据内容Rc;
步骤805,生产主机恢复设备偏移量j*E3处写入长度E3的数据内容Rc;
步骤806,设置j=j+1,转步骤802;
步骤807,结束。
附图说明
图1为数据变化记录和连续数据保护元数据文件数据结构图。
图2为模块结构图。
图3为初始化及连续数据变化写入原理图。
图4为连续数据保护初始化流程图。
图5为数据变化截获及缓存流程图。
图6为日志卷写入流程图。
图7为虚拟卷数据结构图。
图8为虚拟卷数据重组流程图。
图9为虚拟卷数据读出流程图。
图10为备份数据删除流程图。
图11为虚拟卷数据写入流程图。
图12为备份数据恢复流程图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明数据变化记录和连续数据保护元数据文件数据结构图如图1所示。
数据变化记录D,用于描述某个块设备发生的数据变化。其中生产主机名Dh,用于描述需要进行连续数据保护的主机名称,可唯一识别一个主机,可以是UUID、主机标示或其他任何可以在系统中确认唯一性的标识;设备名Dn,用于描述该主机上的某个需保护的块设备名称;时间戳Dt,用于描述数据变化发生的时间点;偏移量Ds,用于描述数据变化发生的初始地址,该地址相对于块设备的起始地址0;长度De,用于描述数据变化产生的数据内容的长度;数据内容Dc,用于描述变化数据的内容。
连续数据保护元数据文件F,用于描述某个生产主机的某个块设备在备份中心的存储数据的元数据,实现管理功能。其中设备元数据记录E,用于描述设备信息,并唯一确定该设备;镜像卷元数据记录M,用于描述镜像卷的信息。日志卷配置记录S,用于描述日志卷配置信息;日志卷元数据记录L1~Ln,用于描述日志卷及日志卷备份数据元数据文件的信息,日志卷元数据记录可以有多条。
设备元数据记录E,用于描述设备信息,并唯一确定该设备。其中生产主机名E1和Dh相同;设备名E2和Dn相同;块大小E3,用于描述块设备的基本存储单位大小的字节数;总大小E4,用于描述块设备所拥有存储空间的大小。
镜像卷元数据记录M,用于描述镜像卷的信息。其中文件名M1,用于描述镜像卷的存储位置;存储类型M2,用于描述镜像卷在备份中心的存储类型,可以为完全预分配、稀疏文件等;缓存文件名M3,用于描述缓存文件的存储位置。
日志卷配置记录S,用于描述日志卷配置信息。当前日志卷文件名S1,用于描述当前正在使用的日志卷文件名;日志卷额定大小S2,用于描述日志卷的额定存储容量,可以是绝对值,即占用多少存储空间,也可以是相对值,即为镜像卷大小的某个比例;当前日志卷元数据文件名S3,用于描述当前正在使用的日志卷元数据文件名。
日志卷元数据记录L,用于描述日志卷及日志卷元数据文件的信息。其中开始时间戳Ls,用于描述该日志卷第一条数据变化的时间戳;结束时间戳Le,用于描述该日志卷最后一条数据变化的时间戳;日志卷元数据文件名La,用于描述日志卷元数据文件的存储名称,包括文件路径及名称;日志卷文件名Lm,用于描述日志卷的存储名称,包括文件路径及名称。
日志卷元数据记录B,用于描述日志卷中每笔数据数据变化的存储信息。其中时间戳Bt和Dt相同;偏移量Bs和Ds相同;长度Be和De相同;存储地址Br,描述数据变化内容在日志卷中开始存储的位置,相对于位置0的偏移位置。
其他相关信息包括:镜像卷MV:用于存储块设备的最新数据内容,个数为1个;日志卷LV:用于存储数据变化记录中的数据内容,个数有多个;缓存文件HB:用于缓存变化数据,个数为1个。
本发明模块结构图如图2所示。
模块结构分为三个部分,分别为:生产主机部分、备份主机部分、存储资源部分。生产主机部分运行在生产主机上,包括数据变化截获模块MLD01、初始化同步模块MLD02、恢复模块MLD03;生产主机可以为服务器、存储、PC、智能手机等具有计算能力及块设备的装置。备份主机部分运行备份主机上,包括数据写入模块MLD04、数据重组模块MLD05、数据恢复模块MLD06、数据挂载模块MLD07、数据删除模块MLD08;备份主机可以为服务器、存储、PC、智能手机等具有计算资源的装置。存储资源为具有存储资源的装置,能够提供文件访问,存储资源上部署的资源包括:连续数据保护元数据文件F、镜像卷MV、缓存文件HB、一个或多个日志卷LV1~LVn、一个或多个日志卷元数据文件LM1~LMn;其中日志卷文件和日志卷元数据文件一一对应,即LV1对应LM1,LVn对应LMn,0个或多个写时卷WV。
数据变化截获模块MLD01,部署在生产主机上,用于截获块设备写操作产生的数据变化,并将数据变化封装为数据变化记录D并传输给数据写入模块MLD04。
初始化同步模块MLD02,部署在生产主机上,用于在块设备上执行快照,并将快照数据传输给数据写入模块MLD04,生成数据的初始状态。
恢复模块MLD03,部署在生产主机上,用于接收来自备份主机的恢复数据,并将恢复数据写入对应的块设备。
数据写入模块MLD04,部署在备份主机上,用于接收来自生产主机的数据变化记录D、快照数据,将数据写入到镜像卷、日志卷和缓存文件中,同时更新相应的元数据。
数据重组模块MLD05,部署在备份主机上,用于从镜像卷VM、日志卷LV1~LVn中重组任意时间点数据,生成任意时间点虚拟块设备。
数据恢复模块MLD06,部署在备份主机上,用于从重组后的任意时间点虚拟卷块设备中读取数据,传输到生产主机恢复模块MLD03,实现数据恢复。
数据挂载模块MLD07,部署在备份主机上,用于在备份主机上挂载任意时间点虚拟块设备,实现虚拟卷块设备的数据写。
数据删除模块MLD08,部署在备份主机上,用于删除任意时间点之前的备份数据。
连续数据保护元数据文件F,部署在存储资源上,用于存储连续数据保护元数据。
镜像卷MV,部署在存储资源上,用于存储备份数据,该备份数据为数据最新的完整备份点。
缓存文件HB,部署在存储资源上,用于缓存数据变化记录。
日志卷LV1,部署在存储资源上,用于存储连续变化数据。
日志卷元数据文件LM1,部署在存储资源上,用于描述日志卷,由若干条日志卷元数据记录B组成。
本发明初始化及连续数据变化写入原理图如图3所示。
初始化及连续数据变化写入原理分为3个部分。在图中标注为实线箭头的为初始化步骤T301,主要完成存储资源的分配、元数据文件的创建和快照数据的传输和写入,详细步骤如图4所示;标注为虚线箭头的为数据变化截获、传输、写入缓存文件步骤T302,主要完成数据变化截获、封装、上传、解封、写入缓存,详细步骤如图5所示;标注为点划线箭头的为日志卷写入步骤T303,主要完成日志卷数据的写入、日志卷元数据文件的更新,详细步骤如图6所示。原卷SV、快照卷NV、镜像卷MV大小相等,块的起始偏移量为0,结束偏移量为M。
本发明连续数据保护初始化流程图如图4所示。其中在生产主机上执行的步骤包括步骤T401~T405,在备份主机上执行的步骤包括步骤T411~T417。
步骤T401,对块设备Dn打快照,生成快照卷NV的步骤;调用生产设备的快照生成接口,生成快照卷NV。
步骤T402,启动数据变化截获模块MLD02步骤;生成快照后启动数据变化截获模块MLD02,开始进行变化数据监控,使得任何数据变化不遗漏。
步骤T403,传输配置信息步骤;配置信息包括:生产主机名Dh、设备名Dn、块大小E3、总大小E4。
步骤T404,构造并传输快照卷NV的数据变化记录D步骤,传输完成后转步骤T405;从快照卷NV的偏移量0开始到MNL结束,MNL为快照卷NV的长度,构造数据变化记录D,设置j为偏移量,其中Dh为生产主机名,Dn为块设备名,时间戳Dt=0,偏移量Ds=j,长度De为E3,数据内容Dc为从偏移量j开始的E3长度的快照卷上的数据内容。
步骤T405,删除快照卷NV步骤;快照数据传输完成后,删除快照NV。
步骤T411,等待数据传输步骤;备份主机等待生产主机传输配置信息或数据变化记录。
步骤T412,判断是否为配置信息步骤,如果是,转步骤T416,如果否转T413。
步骤T413,判断是否为初始化数据步骤,如果是,转步骤T414,如果否转T417;判断数据变化记录中时间戳是否为0,如果为0,则为初始化数据,否则不是。
步骤T414,解析初始化数据,写入镜像卷MV对应偏移量的步骤;向镜像卷MV的偏移量为Ds处写入长度为De的数据内容Dc。
步骤T415,判断初始化记录是否为镜像卷NV最后一块,如果是,则结束,如果否,转步骤T411。
步骤T416,创建连续数据保护相关资源及初始化的步骤,转步骤T411;创建连续数据保护元数据文件F,初始化设备元数据记录E,设置生产主机名E1=Dh,设备名E2=Dn,块大小E3,总大小E4,创建镜像卷MV,创建缓存文件HB,设置镜像卷元数据记录M,设置文件名M1为镜像卷MV的访问路径,设置存储类型M2为镜像卷MV支持的完全预分配或稀疏文件访问类型,设置缓存文件名M3为缓存文件HB访问路径,创建当前日志卷文件LV1,创建当前日志卷元数据文件LM1,设置日志卷配置记录S,设置当前日志卷文件名S1为日志卷文件LV1的访问路径,设置日志卷额定大小S2为常量,如10GB或30%,设置当前日志卷元数据文件名S3为日志卷元数据文件LM1的访问路径,设置日志卷元数据记录L1,设置L1中的开始时间戳Ls为0,设置L1中的结束时间戳Le为0,设置L1中的日志卷元数据文件名La为日志卷元数据记录文件LM1的访问路径,设置L1中的日志卷文件名Lm为日志卷文件LV1的访问路径,转步骤T411。
步骤T417,丢弃接收数据,转步骤T411;丢弃接收到的数据,该数据不是初始化数据。
本发明数据变化截获及缓存流程图如图5所示。其中在生产主机上执行的步骤包括步骤T501~T503,在备份主机上执行的步骤包括步骤T511~T516。
步骤T501,数据变化截获模块MLD01等待数据变化步骤;数据变化截获模块MLD01启动后处于这个状态,数据变化截获模块MLD01可部署于块设备驱动层。
步骤T502,生成数据变化记录D步骤;当截获到数据变化后,生成数据变化记录D,设置Dh为本机名,设置Dn为产生数据变化的设备名,设置Dt为截获数据时的时间戳,设置Ds为截获数据的偏移量,设置数据长度De为截获数据的长度,设置数据内容Dc为截获数据的数据内容。
步骤T503,传输数据变化记录D步骤,通过网络、内存共享、进程通信等方式将数据变化记录D传输给部署于备份主机上的数据写入模块MLD04。
步骤T511,数据写入模块MLD04等待数据传输步骤;数据写入模块MLD04等待通过网络、内存共享、进程通信等方式传输来的数据变化记录D。
步骤T512,确定对应缓存文件M3步骤,获得并解析数据变化记录D,按照生产主机名Dh和设备名Dn,打开对应连续数据保护元数据文件F,读取镜像卷元数据记录M,获得对应的缓存文件名M3。
步骤T513,判断数据是否为正常数据变化记录D,如果否则转步骤T516,如果是则转步骤T514;判断Dt是否为0,如果为0,该数据变化记录D异常,否则正常。
步骤T514,写入数据变化记录D到缓存文件HB的步骤;获取缓存文件HB的写权限,将数据变化记录D中的时间戳Dt、偏移量Ds、长度De、内容Dc添加到缓存文件HB的末尾。
步骤T515,关闭缓存文件HB,转步骤T511;写数据变化完成后,关闭缓存文件HB,释放文件写访问权。
步骤T516,丢弃接收数据步骤,转步骤T511;丢弃已接收的数据。
本发明日志卷写入流程图如图6所示。
步骤T601,阻塞获取缓存文件HB写权限,打开缓存文件HB步骤。
步骤T602,判断缓存文件HB是否为空,如果为空转步骤T614,如果不为空,转步骤T603;可直接判断缓存文件HB的长度是否为0,如果为0,则缓存文件HB为空。
步骤T603,从连续数据保护元数据文件F中获得相关资源信息,打开相关存储资源步骤;获得镜像卷文件名M1,打开镜像卷MV,获得当前日志卷文件名S1,打开当前日志卷LVn,获得当前日志卷元数据文件名S3,打开当前日志卷元数据文件LMn,获得日志卷额定大小S2。
步骤T604,从缓存文件HB中读出第1条缓存记录,解析缓存记录,得到时间戳Dt、偏移量Ds、长度De、内容Dc步骤。
步骤T605,从镜像卷MV中读出以偏移量Ds开始的,长度为De的数据内容Dcd步骤。
步骤T606,获取当前日志卷文件LVn末尾偏移量,记为存储地址B4,判断日志卷文件是否为空,如果为空则转步骤T611,否则转T607。
步骤T607,将数据内容Dcd写入到日志卷文件LVn末尾步骤。
步骤608,在日志卷元数据文件LMn的文件末尾添加一条日志卷元数据记录B,记录内容为:时间戳Dt、偏移量Ds、长度De、存储地址B4步骤。
步骤T609,判断当前日志卷文件大小是否已大于日志卷额定大小S2,如果是转步骤T612,否则转步骤T610。
步骤T610,删除缓存文件HB中第1条数据变化记录,关闭缓存文件HB,转步骤T601。
步骤T611,更新连续数据保护元数据文件F中日志卷元数据记录Ln,设置其开始时间戳Ls为时间戳Dt,转步骤T607。
步骤T612,更新当前日志卷元数据记录Ln,设置其结束时间戳Le为时间戳Dt。
步骤T613,设置n=n+1,创建新的日志卷文件LVn、日志卷元数据文件LMn,更新连续数据保护元数据文件F,新增日志卷元数据文件记录Ln,更新日志卷配置记录S,转步骤T610;其中Ln中日志卷文件名Lm为新创建的日志卷文件LVn的访问路径,Ln中日志卷元数据文件名La为新创建的日志卷元数据文件LMn的访问路径,日志卷配置记录S中当前日志卷文件名为新创建的日志卷文件LVn的访问路径,当前日志卷元数据文件名S2为新创建的日志卷元数据文件LMn的访问路径。
本发明虚拟卷数据结构图如图7所示。
虚拟卷由索引块组成,索引块有两个元素,其中存放文件Vf[m]表示第m数据块的实际数据存放在于哪个存储资源,存储资源可编号为:0代表镜像卷、1~N代表日志卷,N+1代表写时卷,存放位置Vs[m]表示第m数据块实际数据存放在某个存储资源的偏移量,在对应存储资源中从0开始计算的偏移量。虚拟卷存储资源数组,下标为0~N+1,文件名表示对应存储资源的访问路径,如0对应的文件名为镜像卷文件名。索引块可能指向1个镜像卷MV,N个日志卷LV和1个写时卷WV。写时卷用于存储当其他设备对虚拟卷执行写操作时产生的数据变化,写时卷WV存储格式同日志卷LV。虚拟卷生成后,和块设备驱动层配合,实现块设备数据的读写功能。虚拟卷中0表示起始数据块,M表示结束数据块。
本发明虚拟卷重组流程图如图8所示。
步骤T801,获得主机名Dh,设备名Dn及恢复时间点T步骤。
步骤T802,打开对应主机名Dh,设备名Dn的连续数据保护元数据文件F,初始化虚拟卷存储数组SA,0号下标写入镜像卷MV存储文件名,第1至N下标分别写入第1至N日志卷LV1~LVn文件名步骤,第N+1为写时卷文件名WV。
步骤T803,初始化虚拟卷索引块数组VA,初始化为镜像卷MV偏移量,从[0,0]开始,到[0,M]结束。
步骤T804,查找日志卷元数据文件记录Lx,如果找到转步骤T805,否则转步骤T816;从最后一个日志卷元数据记录Ln开始,查找Lx,满足条件:Lx中的开始时间戳Ls ≤ T≤Lx中的结束时间戳Le,或Lx-1中的结束时间戳Le < T ≤ Ln中的开始时间戳Ls,如果x=1,则L0的结束时间戳为0,其中Lx为日志卷元数据文件中的某条日志卷元数据记录,Lx-1为较Lx更早的第一条日志卷元数据记录,例如,Lx为第3条日志卷元数据记录,则Lx-1为第2条日志卷元数据记录。
步骤T805,设置日志卷元数据记录Ly=Ln,打开Ly的日志卷元数据文件LVy,设置记录读取指针指向最后一条记录步骤。
步骤T806,读入日志卷元数据记录Bi,设置记录读取指针指向上一条记录步骤。
步骤T807,判断Bi是否为空,如果是转步骤T813,如果否转步骤T808。
步骤T808,判断日志卷元数据记录Bi的时间戳Bt大于恢复时间点T,如果是转步骤T809,如果否转步骤T816。
步骤T809,设置临时变量K为0步骤。
步骤T810,判断K*E3是否小于长度Be,如果是转步骤T811,否则转步骤T806;此处的长度Be为日志卷元数据记录Bi中的元素。
步骤T811,更新虚拟卷索引块数组VA,设置虚拟卷索引块数组VA中第[Bs+K*E3]条记录中的存放文件Vf[Bs+K*E3]为y,即Vf[Bs+K*E3]=y,设置虚拟卷索引块数组VA中第[Bs+K*E3]条记录中的存放位置Vs[Bs+K*E3]为Br+K*E3,即Vs[Bs+K*E3]= Br+K*E3,其中Bs为日志卷元数据记录Bi的偏移量,Br为日志卷元数据记录Bi的存储地址。
步骤T812,更新临时变量K=K+1,转步骤T810。
步骤T813,关闭日志卷元数据文件LVy,设置日志卷元数据记录Ly=Ln-1步骤。
步骤T814,判断Ly小于Lx,如果小于转步骤T816,否则转步骤T815。
步骤T815,打开日志卷元数据文件LVy,转步骤T806。
步骤T816,结束步骤。
本发明虚拟卷读数据流程图如图9所示。
步骤T901,获得读取偏移量Rs、长度Re、读缓冲区Ru、读缓冲起始地址Rp、虚拟卷索引块数组VA起始地址步骤。
步骤T902,设置临时变量j=0。
步骤T903,判断j*E3是否大于Re,如果大于则转步骤T907,否则转步骤T904。
步骤T904,获得虚拟卷索引块数组VA下标为m=(Rs/E3-1)的虚拟卷索引块,获得该虚拟卷索引块中的存放文件 Vf[m],获得该虚拟卷索引块中的存放位置Vs[m]。
步骤T905,访问虚拟卷存储文件数组SA,访问以Vf[m]为下标的记录,获得数据文件名,打开该文件,从该文件偏移量Vs[m]处读出E3大小的数据块并写入读缓冲区Ru的地址Rp+j*E3处。
步骤T906,设置j=j+1,转步骤T903。
步骤T907,结束。
本发明备份数据删除流程图如图10所示。
步骤T1001,获得删除时间点Td的步骤;时间点Td由删除时管理员指定,并传入本流程。
步骤T1002,打开连续数据保护元数据文件F,设临时变量j=1,读取第j条日志卷元数据记录Lj步骤。
步骤T1003,判断Lj中结束时间戳Le是否大于Td,如果大于则转步骤T1004,否则转步骤T1007。
步骤1004,删除Lj中日志卷元数据文件名La对应的日志卷元数据文件,删除日志卷文件名Lm对应的日志卷文件,日志卷元数据记录Lj步骤。
步骤T1005,设置j=j+1,读取日志卷元数据记录Lj步骤。
步骤T1006,判断Lj是否为空,如果为空则转步骤T1007,否则转步骤T1003。
步骤T1007,结束。
本发明虚拟卷数据写入流程如图11所示。在执行本流程前,需要先执行虚拟卷重组流程。
步骤T1101,判断是否存在写时卷WV,如果存在则转步骤T1103,否则转T1102。
步骤T1102,打开连续保护元数据文件F,创建写时卷WV,更新虚拟卷存储资源数组SA,其中N为日志卷个数步骤。
步骤T1103,获得写入偏移量Ws、长度We、数据内容Wc步骤。
步骤T1104,打开写时卷WV并移动到末尾,记录此时的偏移量Ps,写入数据内容Wc步骤。
步骤T1105,设置临时变量j=0步骤。
步骤T1106,判断j*E3是否小于We,如果小于则转步骤T1107,否则转步骤T1109。
步骤T1107,获得虚拟卷下标为m=(Ws/E3-1)的索引块,获得该索引块中的存放文件Vf[m],获得该索引块中的存放位置Vs[m],更新Vf[m]=N+1,更新Vs[m]=Ps+j*E3步骤。
步骤T1108,设置j=j+1,转步骤T1106。
步骤T1109,结束。
本发明备份数据恢复流程图如图12所示。
步骤T1201,获得主机名Dh、设备名Dn及恢复时间Tr,并执行重组流程,设置起始偏移量j=0,设置读缓冲区Ru起始地址为Rp=0步骤;其中MAX为虚拟卷最后一块数据块偏移量。
步骤T1202,判断偏移量j*E3是否大于MAX,如果是则转步骤T1207,否则转步骤T1203。
步骤T1203,向虚拟卷读流程传入参数:偏移量j*E3、长度E3、读缓冲区Ru、读缓冲区起始地址Rp步骤。
步骤T1204,向生产主机发送恢复偏移量j*E3,长度E3,数据内容Rc步骤。
步骤T1205,生产主机恢复设备偏移量j*E3处写入长度E3的数据内容Rc步骤。
步骤T1206,设置j=j+1,转步骤T1202。
步骤T1207,结束。
Claims (9)
1.一种连续数据保护方法,其特征在于,包括:
定义数据变化记录D,该数据变化记录D至少包括生产主机名Dh、设备名Dn、时间戳Dt、偏移量Ds、长度De、数据内容Dc;
定义连续数据保护元数据文件F,该连续数据保护元数据文件F至少包括设备元数据记录E、镜像卷元数据记录M、日志卷配置记录S,若干个日志卷元数据记录L,其中设备元数据记录E至少包括生产主机名E1、设备名E2、块大小E3、总大小E4,镜像卷元数据记录M至少包括文件名M1、存储类型M2、缓存文件名M3,日志卷配置记录S至少包括当前日志卷文件名S1、日志卷额定大小S2、当前日志卷元数据文件名S3,日志卷元数据记录L至少包括开始时间戳Ls、结束时间戳Le、日志卷元数据文件名La、日志卷文件名Lm;
定义虚拟卷索引块数组VA,该虚拟卷索引块数组VA由若干个虚拟卷索引块构成,该虚拟卷索引块至少包括存放文件Vf、存放位置Vs,虚拟卷索引块数组VA中第m条记录代表虚拟卷第m数据块,则虚拟卷索引块数组VA中第m条记录中的存放文件Vf[m],代表虚拟卷第m数据块的实际数据存储资源,虚拟卷索引块数组VA中第m条记录中的存放位置Vs[m],代表在对应存储资源中从0开始计算的偏移量;
定义虚拟卷存储资源数组SA,该虚拟卷存储资源数组SA由若干个虚拟卷存储资源组成,虚拟卷存储资源至少包括文件名;
步骤1,连续数据保护初始化步骤,包括存储资源的分配,元数据文件的创建,快照数据的创建、传输和写入;
步骤2,数据变化截获及缓存步骤,包括数据变化截获、封装、上传、解封、写入缓存;
步骤3,日志卷写入步骤,包括日志卷数据的写入、日志卷元数据文件更新、连续数据保护元数据文件更新;
步骤4,虚拟卷重组步骤,搜索恢复时间点T之后的日志卷、日志卷元数据文件、镜像卷,以镜像卷的信息初始化虚拟卷索引块,按照从后到前的顺序扫描日志卷元数据文件,更新虚拟卷索引块,设置对应索引块的存放文件和存放位置;
步骤5,虚拟卷数据读出步骤,以读取偏移量Rs、块大小Es计算得到虚拟卷索引块数组VA下标,访问该索引块,并访问对应的存放文件和存放位置,读出数据,存放到读缓冲区;
步骤6,备份数据删除步骤,查找并删除结束时间戳大于删除时间点的所有日志卷文件、日志卷元数据文件、更新连续数据保护元数据文件;
步骤7,虚拟卷数据写入步骤,将数据变化内容写入到写时卷内,同时更新虚拟卷索引块;
步骤8,备份数据恢复步骤,构造恢复时间点虚拟卷,读取虚拟卷数据,将数据传输到生产主机,写入到对应偏移量完成恢复。
2.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤1中连续数据保护初始化进一步为:
步骤101,对块设备Dn打快照,生成快照卷NV;
步骤102,启动数据变化截获模块MLD02;
步骤103,传输配置信息步骤,配置信息包括:生产主机名Dh、设备名Dn、块大小E3、总大小E4;
步骤104,从快照卷NV的偏移量0开始到MNL结束,MNL为快照卷NV的长度,构造数据变化记录D,设置j为偏移量,其中Dh为生产主机名,Dn为设备名,时间戳Dt=0,偏移量Ds=j,长度De为E3,数据内容Dc为从偏移量j开始的E3长度的快照卷上的数据内容;
步骤105,删除快照卷NV;
步骤111,等待数据传输;
步骤112,判断是否为配置信息,如果是,转步骤116,如果否转步骤113;
步骤113,判断是否为初始化数据,如果是,转步骤114,如果否转步骤117;
步骤114,解析初始化数据,向镜像卷MV的偏移量为Ds处写入长度为De的数据内容Dc;
步骤115,判断初始化记录是否为镜像卷MV最后一块,如果是,则结束,如果否,转步骤111;
步骤116,创建连续数据保护相关资源及初始化,创建连续数据保护元数据文件F,初始化设备元数据记录E,设置生产主机名E1=Dh,设备名E2=Dn,块大小E3,总大小E4,创建镜像卷MV,创建缓存文件HB,设置镜像卷元数据记录M,设置文件名M1为镜像卷MV的访问路径,设置存储类型M2为镜像卷MV支持的完全预分配或稀疏文件访问类型,设置缓存文件名M3为缓存文件HB访问路径,创建当前日志卷文件LV1,创建当前日志卷元数据文件LM1,设置日志卷配置记录S,设置当前日志卷文件名S1为日志卷文件LV1的访问路径,设置日志卷额定大小S2为常量,设置当前日志卷元数据文件名S3为日志卷元数据文件LM1的访问路径,设置日志卷元数据记录L1,设置L1中的开始时间戳Ls为0,设置L1中的结束时间戳Le为0,设置L1中的日志卷元数据文件名La为日志卷元数据记录文件LM1的访问路径,设置L1中的日志卷文件名Lm为日志卷文件LV1的访问路径,转步骤111;
步骤117,丢弃接收数据,转步骤111。
3.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤2中数据变化截获及缓存进一步为:
步骤201,数据变化截获模块MLD01等待数据变化;
步骤202,生成数据变化记录D,当截获到数据变化后,设置Dh为本机名,设置Dn为产生数据变化的设备名,设置Dt为截获数据时的时间戳,设置Ds为截获数据的偏移量,设置数据长度De为截获数据的长度,设置数据内容Dc为截获数据的数据内容;
步骤203,传输数据变化记录D;
步骤211,数据写入模块MLD04等待数据传输;
步骤212,确定对应缓存文件M3,获得并解析数据变化记录D,按照生产主机名Dh和设备名Dn,打开对应连续数据保护元数据文件F,读取镜像卷元数据记录M,获得对应的缓存文件名M3;
步骤213,判断数据是否为正常数据变化记录D,如果否转步骤216,如果是转步骤214;
步骤214,写入数据变化记录D到缓存文件HB,获取缓存文件HB的写权限,将数据变化记录D中的时间戳Dt、偏移量Ds、长度De、内容Dc添加到缓存文件HB的末尾;
步骤215,关闭缓存文件HB,转步骤211;写数据变化完成后,关闭缓存文件HB,释放文件写访问权;
步骤216,丢弃接收数据步骤,转步骤211。
4.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤3中日志卷写入进一步为:
步骤301,阻塞获取缓存文件HB写权限,打开缓存文件HB;
步骤302,判断缓存文件HB是否为空,如果为空转步骤301,如果不为空,转步骤303;
步骤303,从连续数据保护元数据文件F中获得相关资源信息,打开相关存储资源步骤;获得镜像卷文件名M1,打开镜像卷MV,获得当前日志卷文件名S1,打开当前日志卷LVn,获得当前日志卷元数据文件名S3,打开当前日志卷元数据文件LMn,获得日志卷额定大小S2;
步骤304,从缓存文件HB中读出第1条缓存记录,解析缓存记录,得到时间戳Dt、偏移量Ds、长度De、内容Dc;
步骤305,从镜像卷MV中读出以偏移量Ds开始的,长度为De的数据内容Dcd;
步骤306,获取当前日志卷文件LVn末尾偏移量,记为存储地址B4,判断日志卷文件是否为空,如果为空则转步骤311,否则转步骤307;
步骤307,将数据内容Dcd写入到日志卷文件LVn末尾;
步骤308,在日志卷元数据文件LMn的文件末尾添加一条日志卷元数据记录B,记录内容为:时间戳Dt、偏移量Ds、长度De、存储地址B4;
步骤309,判断当前日志卷文件大小是否已大于日志卷额定大小S2,如果是转步骤312,否则转步骤310;
步骤310,删除缓存文件HB中第1条数据变化记录,关闭缓存文件HB,转步骤301;
步骤311,更新连续数据保护元数据文件F中日志卷元数据记录Ln,设置其开始时间戳Ls为时间戳Dt,转步骤307;
步骤312,更新当前日志卷元数据记录Ln,设置其结束时间戳Le为时间戳Dt;
步骤313,设置n=n+1,创建新的日志卷文件LVn、日志卷元数据文件LMn,更新连续数据保护元数据文件F,新增日志卷元数据文件记录Ln,更新日志卷配置记录S,转步骤310;其中Ln中日志卷文件名Lm为新创建的日志卷文件LVn的访问路径,Ln中日志卷元数据文件名La为新创建的日志卷元数据文件LMn的访问路径,日志卷配置记录S中当前日志卷文件名为新创建的日志卷文件LVn的访问路径,当前日志卷元数据文件名S2为新创建的日志卷元数据文件LMn的访问路径。
5.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤4中所述虚拟卷重组进一步为:
步骤401,获得主机名Dh,设备名Dn及恢复时间点T;
步骤402,打开对应主机名Dh,设备名Dn的连续数据保护元数据文件F,初始化虚拟卷存储数组SA,0号下标写入镜像卷MV存储文件名,第1至N下标分别写入第1至N日志卷LV1~LVN文件名步骤,第N+1下标为写时卷文件名WV;
步骤403,初始化虚拟卷索引块数组VA,初始化为镜像卷MV偏移量,从[0,0]开始,到[0,m]结束;
步骤404,从最后一个日志卷元数据记录Ln开始,查找Lx,满足条件:Lx中的开始时间戳Ls ≤ T ≤Lx中的结束时间戳Le,或L[x-1]中的结束时间戳Le < T ≤ Ln中的开始时间戳Ls,如果x=1,则L0的结束时间戳为0,如果找到转步骤405,否则转步骤416,其中Lx为日志卷元数据文件中的某条日志卷元数据记录,L[x-1]为较Lx更早的第一条日志卷元数据记录;
步骤405,设置日志卷元数据记录Ly=Ln,打开Ly的日志卷元数据文件LVy,设置记录读取指针指向最后一条记录步骤;
步骤406,读入日志卷元数据记录Bi,设置记录读取指针指向上一条记录;
步骤407,判断Bi是否为空,如果是转步骤413,如果否转步骤408;
步骤408,判断日志卷元数据记录Bi的时间戳Bt大于恢复时间点T,如果是转步骤409,如果否转步骤416;
步骤409,设置临时变量K为0;
步骤410,判断K*E3是否小于长度Be,如果是转步骤411,否则转步骤406;
步骤411,更新虚拟卷索引块数组VA,设置虚拟卷索引块数组VA中第[Bs+K*E3]条记录中的存放文件Vf[Bs+K*E3]为y,即Vf[Bs+K*E3]=y,设置虚拟卷索引块数组VA中第[Bs+K*E3]条记录中的存放位置Vs[Bs+K*E3]为Br+K*E3,即Vs[Bs+K*E3]= Br+K*E3,其中Bs为日志卷元数据记录Bi的偏移量,Br为日志卷元数据记录Bi的存储地址;
步骤412,更新临时变量K=K+1,转步骤410;
步骤413,关闭日志卷元数据文件LVy,设置日志卷元数据记录Ly=L[n-1];
步骤414,判断Ly小于Lx,如果小于则转步骤416,否则转步骤415;
步骤415,打开日志卷元数据文件LVy,转步骤406;
步骤416,结束。
6.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤5中虚拟卷数据读出进一步为:
步骤501,获得读取偏移量Rs、长度Re、读缓冲区Ru、读缓冲起始地址Rp、虚拟卷索引块数组VA起始地址;
步骤502,设置临时变量j=0;
步骤503,判断j*E3是否大于Re,如果大于则转步骤507,否则转504;
步骤504,获得虚拟卷索引块数组VA下标为m=(Rs/E3-1)的虚拟卷索引块,获得该虚拟卷索引块数组VA中第m条记录中的存放文件Vf[m],获得该虚拟卷索引块数组VA中第m条记录中的存放位置Vs[m];
步骤505,访问虚拟卷存储文件数组SA,访问以Vf[m]为下标的记录,获得数据文件名,打开该文件,从该文件偏移量Vs[m]处读出E3大小的数据块并写入读缓冲区Ru的地址Rp+j*E3处;
步骤506,设置j=j+1,转步骤503;
步骤507,结束。
7.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤6中备份数据删除进一步为:
步骤601,获得删除时间点Td;
步骤602,打开连续数据保护元数据文件F,设临时变量j=1,读取第j条日志卷元数据记录Lj;
步骤603,判断Lj中结束时间戳Le是否大于Td,如果大于则转步骤604,否则转步骤607;
步骤604,删除Lj中日志卷元数据文件名La对应的日志卷元数据文件,删除日志卷文件名Lm对应的日志卷文件,日志卷元数据记录Lj;
步骤605,设置j=j+1,读取日志卷元数据记录Lj;
步骤606,判断Lj是否为空,如果为空则转步骤607,否则转步骤603;
步骤607,结束。
8.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤7中虚拟卷数据写入进一步为:
步骤701,判断是否存在写时卷WV,如果存在则转步骤703,否则转702;
步骤702,打开连续保护元数据文件F,创建写时卷WV,更新虚拟卷存储资源数组SA,其中N为日志卷个数;
步骤703,获得写入偏移量Ws、长度We、数据内容Wc;
步骤704,打开写时卷WV并移动到末尾,记录此时的偏移量Ps,写入数据内容Wc;
步骤705,设置临时变量j=0;
步骤706,判断j*E3是否小于We,如果小于则转步骤707,否则转步骤709;
步骤707,获得虚拟卷下标为m=(Ws/E3-1)的索引块,获得该虚拟卷索引块数组VA中第m条记录中的存放文件Vf[m],获得该虚拟卷索引块数组VA中第m条记录中的存放位置Vs[m],更新Vf[m]=N+1,更新Vs[m]=Ps+j*E3;
步骤708,设置j=j+1,转步骤706;
步骤709,结束。
9.如权利要求1所述的连续数据保护方法,其特征在于,所述步骤8中备份数据恢复进一步为:
步骤801,获得主机名Dh、设备名Dn及恢复时间Tr,并执行重组流程,设置起始偏移量j=0,设置读缓冲区Ru起始地址为Rp=0步骤,其中MAX为虚拟卷最后一个数据块偏移量;
步骤802,判断偏移量j*E3是否大于MAX,如果是则转步骤807,否则转步骤803;
步骤803,向虚拟卷读流程传入参数:偏移量j*E3、长度E3、读缓冲区Ru、读缓冲区起始地址Rp;
步骤804,向生产主机发送恢复偏移量j*E3,长度E3,数据内容Rc;
步骤805,生产主机恢复设备偏移量j*E3处写入长度E3的数据内容Rc;
步骤806,设置j=j+1,转步骤802;
步骤807,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510302925.6A CN104866435B (zh) | 2015-06-06 | 2015-06-06 | 一种连续数据保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510302925.6A CN104866435B (zh) | 2015-06-06 | 2015-06-06 | 一种连续数据保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104866435A CN104866435A (zh) | 2015-08-26 |
CN104866435B true CN104866435B (zh) | 2018-05-15 |
Family
ID=53912279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510302925.6A Active CN104866435B (zh) | 2015-06-06 | 2015-06-06 | 一种连续数据保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866435B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515778A (zh) * | 2019-08-30 | 2019-11-29 | 星辰天合(北京)数据科技有限公司 | 基于共享逻辑卷的数据保护的方法、装置和系统 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547641B (zh) * | 2015-09-17 | 2020-04-10 | 南京壹进制信息科技有限公司 | 一种基于卷的cdp备份方法 |
CN107924353B (zh) * | 2015-10-14 | 2021-03-09 | 株式会社日立制作所 | 存储系统和存储系统的控制方法 |
CN107239365B (zh) * | 2016-03-29 | 2020-11-27 | 华为技术有限公司 | 一种访问存储设备的方法及装置 |
US10628399B2 (en) * | 2016-04-29 | 2020-04-21 | International Business Machines Corporation | Storing data in a dispersed storage network with consistency |
CN106354582B (zh) * | 2016-08-18 | 2019-01-18 | 无锡华云数据技术服务有限公司 | 一种连续数据保护方法 |
CN107480226A (zh) * | 2017-08-03 | 2017-12-15 | 长沙曙通信息科技有限公司 | 一种实时数据保护系统写日志实现方法 |
CN107632905A (zh) * | 2017-09-05 | 2018-01-26 | 江苏神州信源系统工程有限公司 | 一种用于安全u盘的文件防丢失方法和装置 |
CN107832097B (zh) * | 2017-09-29 | 2020-04-28 | 华为技术有限公司 | 数据加载方法及装置 |
CN108701048B (zh) * | 2017-09-29 | 2020-09-11 | 华为技术有限公司 | 数据加载方法及装置 |
CN107678892B (zh) * | 2017-11-07 | 2021-05-04 | 黄淮学院 | 基于跳跃恢复链的连续数据保护方法 |
CN108255642B (zh) * | 2017-12-25 | 2020-11-10 | 南京壹进制信息科技有限公司 | 一种连续数据保护中io数据管理的方法 |
CN108259569B (zh) * | 2017-12-25 | 2020-10-27 | 南京壹进制信息科技有限公司 | 一种基于ipsan共享存储的无代理连续数据保护方法及系统 |
CN108304143A (zh) * | 2018-01-07 | 2018-07-20 | 长沙开雅电子科技有限公司 | 一种存储系统数据按时间点创建即保护实现方法 |
CN110554834B (zh) * | 2018-06-01 | 2022-12-02 | 阿里巴巴集团控股有限公司 | 文件系统数据访问方法和文件系统 |
US10860608B2 (en) * | 2018-10-25 | 2020-12-08 | EMC IP Holding Company LLC | Any point in time replication to the cloud |
CN109634523A (zh) * | 2018-12-10 | 2019-04-16 | 深圳市网心科技有限公司 | 一种磁盘管理方法、系统及电子设备和存储介质 |
CN109614272B (zh) * | 2018-12-20 | 2019-11-12 | 广州鼎甲计算机科技有限公司 | 无本地缓存的数据备份方法和系统 |
CN111435331B (zh) * | 2019-01-14 | 2022-08-26 | 杭州宏杉科技股份有限公司 | 存储卷写数据方法、装置、电子设备及机器可读存储介质 |
CN111752913B (zh) * | 2019-03-28 | 2024-03-01 | 阿里云计算有限公司 | 分布式系统的数据恢复方法、介质、计算机设备、装置 |
US11620056B2 (en) | 2019-06-28 | 2023-04-04 | EMC IP Holding Company LLC | Snapshots for any point in time replication |
CN111858164B (zh) * | 2020-07-03 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种持续数据保护方法、装置、设备及可读存储介质 |
CN112581651A (zh) * | 2020-11-18 | 2021-03-30 | 宝能(广州)汽车研究院有限公司 | 车辆的数据记录方法、计算机可读存储介质和车辆 |
CN114546244B (zh) * | 2020-11-18 | 2023-11-03 | 云坞科技(北京)有限公司 | 一种基于块级别连续数据保护的缓存空间过滤方法 |
CN114416431B (zh) * | 2022-03-28 | 2022-06-07 | 成都云祺科技有限公司 | 基于kvm的无代理持续性数据保护方法、系统及存储介质 |
CN114461456B (zh) * | 2022-04-11 | 2022-06-21 | 成都云祺科技有限公司 | 基于连续写cdp备份方法、系统、存储介质及恢复方法 |
CN115617580B (zh) * | 2022-12-15 | 2023-03-28 | 杭州欧若数网科技有限公司 | 基于共享sst文件的增量备份、恢复方法和系统 |
CN116431396B (zh) * | 2023-06-07 | 2023-08-25 | 成都云祺科技有限公司 | 一种卷实时备份缓存数据处理方法、系统及存储介质 |
CN117492935B (zh) * | 2024-01-03 | 2024-03-15 | 柏科数据技术(深圳)股份有限公司 | 一种镜像数据同步方法、装置、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829688B2 (en) * | 2002-06-20 | 2004-12-07 | International Business Machines Corporation | File system backup in a logical volume management data storage environment |
CN101777017A (zh) * | 2010-02-08 | 2010-07-14 | 北京同有飞骥科技有限公司 | 一种连续数据保护系统的快速恢复方法 |
CN101866305A (zh) * | 2010-05-21 | 2010-10-20 | 武汉大学 | 支持数据查询和快速恢复的连续数据保护方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6194761B2 (ja) * | 2013-11-07 | 2017-09-13 | 富士通株式会社 | 情報処理方法、装置、及びプログラム |
-
2015
- 2015-06-06 CN CN201510302925.6A patent/CN104866435B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829688B2 (en) * | 2002-06-20 | 2004-12-07 | International Business Machines Corporation | File system backup in a logical volume management data storage environment |
CN101777017A (zh) * | 2010-02-08 | 2010-07-14 | 北京同有飞骥科技有限公司 | 一种连续数据保护系统的快速恢复方法 |
CN101866305A (zh) * | 2010-05-21 | 2010-10-20 | 武汉大学 | 支持数据查询和快速恢复的连续数据保护方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515778A (zh) * | 2019-08-30 | 2019-11-29 | 星辰天合(北京)数据科技有限公司 | 基于共享逻辑卷的数据保护的方法、装置和系统 |
CN110515778B (zh) * | 2019-08-30 | 2020-11-24 | 星辰天合(北京)数据科技有限公司 | 基于共享逻辑卷的数据保护的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104866435A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866435B (zh) | 一种连续数据保护方法 | |
US8352523B1 (en) | Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity | |
CN103842969B (zh) | 信息处理系统 | |
CN106105161A (zh) | 在维持存储效率的同时向云数据存储装置备份数据 | |
US20070094312A1 (en) | Method for managing real-time data history of a file system | |
CN106156359B (zh) | 一种云计算平台下的数据同步更新方法 | |
CN107798130B (zh) | 一种分布式存储快照的方法 | |
CN105912428B (zh) | 实现源数据实时转化为虚拟机镜像的系统及方法 | |
TWI222562B (en) | Dynamic links to file system snapshots | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
US8694564B2 (en) | Method and system for providing on-demand services through a virtual file system at a computing device | |
US6665815B1 (en) | Physical incremental backup using snapshots | |
US9690823B2 (en) | Synchronizing copies of an extent in an append-only storage system | |
US20140025638A1 (en) | Method, system and serving node for data backup and restoration | |
CN106021016A (zh) | 在快照之间的虚拟时间点访问 | |
JP5822452B2 (ja) | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム | |
CN107193490A (zh) | 一种基于区块链的分布式数据存储系统及方法 | |
CN107045530A (zh) | 一种将对象存储系统实现为本地文件系统的方法 | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
US8090925B2 (en) | Storing data streams in memory based on upper and lower stream size thresholds | |
US9772783B2 (en) | Constructing an index to facilitate accessing a closed extent in an append-only storage system | |
CN103729262B (zh) | 操作系统热备份方法、装置及文件系统重构方法 | |
CN104641365A (zh) | 在文件存储系统中使用检查点管理去复制的系统和方法 | |
US20110282845A1 (en) | Efficient backup data retrieval | |
CN106354582A (zh) | 一种连续数据保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |