首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种恢复CDP系统IO数据的方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:上海爱数信息技术股份有限公司;人民法院信息技术服务中心

摘要:本发明涉及一种恢复CDP系统IO数据的方法及系统,该方法包括:获取与IO数据恢复任务对应的所有IO数据文件,将所述所有IO数据文件按照时间戳递减排序,同时建立与数据源卷对应的检测位图,将检测位图中的bit位初始值设为0;读取所有IO数据文件,获得每条IO数据对应的偏移和长度;对每条IO数据进行去重检测以剔除已恢复数据,得到每条IO数据对应的未恢复数据块集合;遍历所述未恢复数据块集合并进行IO合并计算,将得到的合并IO进行恢复写入。与现有技术相比,本发明具有速度快和效率高等优点。

主权项:1.一种恢复CDP系统IO数据的方法,其特征在于,包括以下步骤:1获取与IO数据恢复任务对应的所有IO数据文件,将所述所有IO数据文件按照时间戳递减排序,同时建立与数据源卷对应的检测位图,将检测位图中的bit位初始值设为0;2读取所有IO数据文件,获得每条IO数据对应的偏移和长度;3对每条IO数据进行去重检测以剔除已恢复数据,得到每条IO数据对应的未恢复数据块集合;4遍历所述未恢复数据块集合并进行IO合并计算,将得到的合并IO进行恢复写入;步骤3所述去重检测过程具体为:根据所述每条IO数据对应的偏移和长度在检测位图中查找该IO数据对应的bit位是否都为1,若是,则跳过该IO数据,读取下一条IO数据,若否,则将该IO数据在检测位图中对应的bit位为0的数据块集合保留,形成未恢复数据块集合;所述IO合并计算的过程包括以下步骤:401读取一条未恢复IO数据,其偏移为offset1,长度为length1,当前合并IO的偏移为offset,长度为length;402如果当前合并IO的偏移offset=0,长度length=0,则更新合并IO的偏移为offset=offset1,长度为length=length1,拷贝该条IO的数据到合并IO的数据区中,否则执行步骤403,进行IO合并检测;403IO合并检测:每条IO数据其经过IO去重检测后得到一个对应的未恢复数据块集合,遍历并处理该集合中的每个数据块,假设数据块的偏移为offset2,长度为length2,如果offset2+length2=offset,那么更新合并IO的offset=offset2,长度length=length+length2,同时将该数据块的数据拷贝到合并IO数据的前面;如果offset+length=offset2,那么更新合并IO的长度length=length+length2,同时将该数据块的数据拷贝到合并IO数据的后面;否则,将当前合并IO进行恢复写入,并重置合并IO的offset=0,长度length=0;404继续执行步骤401直至遍历完所有IO数据文件。

全文数据:一种高效恢复CDP系统IO数据的方法及系统技术领域本发明涉及数据备份容灾领域的IO数据恢复方法,尤其是涉及一种高效恢复CDP系统IO数据的方法及系统。背景技术随着互联网、大数据、计算机技术的迅猛发展,如今绝大部分企业都使用计算机来运作自己的核心业务,由此而产生的业务数据也日益成为企业的生命源泉,数据丢失可能导致业务中断而遭受巨大经济损失,如何有效地保护这些核心数据也成为了企业面临的巨大挑战和关注的焦点。块级CDP数据保护技术是数据保护领域里比较成熟的一种技术,有别于传统周期性统数据备份技术,块级CDP数据保护技术可以不断检测关键数据的变化实现数据保护,当灾难发生后简单选择需要恢复的时间点就可以快速恢复。具体地,其在块设备层监控系统IO,首先对要保护的卷进行初始化生成初始化副本,然后对监控卷进行增量备份,实时捕获系统IO,将落在监控卷区域内的IO拷贝一份并存放到存储介质上,以便达到持续保护数据的目的。在系统发生灾难后,通过选择任意系统IO,然后恢复该任意系统IO之前的所有IO数据,即可将系统恢复到灾难前的任意时刻。现有块级CDP技术在恢复IO数据时,基本都是按照IO时间戳递增的方式从第一条IO一直恢复到所选定的系统IO,以保证IO的写入顺序,恢复完成后,系统即可恢复到指定的IO时刻。但是这种恢复IO数据的方法会恢复大量重复的IO数据,并且偏移相邻的IO会分成多次恢复,这会严重影响系统灾难恢复的时间和恢复效率。发明内容本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高效恢复CDP系统IO数据的方法及系统。本发明的目的可以通过以下技术方案来实现:一种高效恢复CDP系统IO数据的方法,包括以下步骤:1获取与IO数据恢复任务对应的所有IO数据文件,将所述所有IO数据文件按照时间戳递减排序,同时建立与数据源卷对应的检测位图,将检测位图中的bit位初始值设为0;2读取所有IO数据文件,获得每条IO数据对应的偏移和长度;3对每条IO数据进行去重检测以剔除已恢复数据,得到每条IO数据对应的未恢复数据块集合;4遍历所述未恢复数据块集合并进行IO合并计算,将得到的合并IO进行恢复写入。进一步地,步骤1中,所述IO数据恢复任务的信息包括IO起始时间戳、IO结束时间戳、恢复数据源卷以及目标介质。进一步地,步骤3所述去重检测过程具体为:根据所述每条IO数据对应的偏移和长度在检测位图中查找该IO数据对应的bit位是否都为1,若是,则跳过该IO数据,读取下一条IO数据,若否,则将该IO数据在检测位图中对应的bit位为0的数据块集合保留,形成未恢复数据块集合。进一步地,所述IO合并计算的过程包括以下步骤:401读取一条未恢复IO数据,其偏移为offset1,长度为length1,当前合并IO的偏移为offset,长度为length;402如果当前合并IO的偏移offset=0,长度length=0,则更新合并IO的偏移为offset=offset1,长度为length=length1,拷贝该条IO的数据到合并IO的数据区中,否则执行步骤403;403如果满足offset1+length1=offset,则更新合并IO的offset=offset1,长度length=length+length1,同时将该数据块的数据拷贝到合并IO数据的前面,否则执行步骤404;404如果满足offset+length=offset2,则更新合并IO的长length=length+length2,同时将该数据块的数据拷贝到合并IO数据的后面,否则执行步骤405。405将合并IO进行恢复写入,同时将合并IO的偏移offset和长度length重置为0,继续执行步骤401直至遍历完所有IO数据文件。本发明还提供一种高效恢复CDP系统IO数据的系统,包括:恢复控制模块,用于获取与IO数据恢复任务对应的所有IO数据文件,将所述所有IO数据文件按照时间戳递减排序,同时建立与数据源卷对应的检测位图,将检测位图中的bit位初始值设为0;IO数据读写模块,包括用于读取并分析IO数据文件的读取单元和用于将合并IO所在数据源卷写入对应目标介质的写入单元,所述读取单元获得每条IO数据对应的偏移和长度;IO去重检测模块,用于对每条IO数据进行去重检测以剔除已恢复数据,得到每条IO数据对应的未恢复数据块集合;IO合并模块,用于遍历所述未恢复数据块集合并进行IO合并处理。进一步地,所述IO数据恢复任务的信息包括IO起始时间戳、IO结束时间戳、恢复数据源卷以及目标介质。进一步地,所述去重检测的具体过程如下:根据所述每条IO数据对应的偏移和长度在检测位图中查找该IO数据对应的bit位是否都为1,若是,则跳过该IO数据,读取下一条IO数据,若否,则将该IO数据在检测位图中对应的bit位为0的数据块集合保留,形成未恢复数据块集合。进一步地,所述IO合并模块包括:接收单元,用于接收IO去重检测模块传递的每条IO数据对应的未恢复数据块集合,其偏移为offset1,长度为length1,当前合并IO的偏移为offset,长度为length;第一判断单元,用于判断是否存在当前合并IO的偏移offset=0且长度length=0,若是,则更新合并IO的偏移为offset=offset1,长度为length=length1,拷贝该条IO的数据到合并IO的数据区中,若否,则产生第二判断信号;第二判断单元,在接收到所述第二判断信号时响应,用于判断是否存在offset1+length1=offset,若是,则更新合并IO的offset=offset1,长度length=length+length1,同时将该数据块的数据拷贝到合并IO数据的前面,若否,则产生第三判断信号;第三判断单元,在接收到所述第三判断信号时响应,用于判断是否存在ffset+length=offset2,若是,则更新合并IO的长度length=length+length2,同时将该数据块的数据拷贝到合并IO数据的后面,若否,则产生写入信号;恢复重置单元,用于将合并IO传递到写入单元进行恢复写入,将合并IO的偏移offset和长度length重置为0,产生继续执行信号发送至接收单元,直至遍历完所有IO数据文件。与现有技术相比,本发明具有以如下有益效果:1本发明按照时间戳递减的顺序将需要恢复的IO数据文件进行排序和处理,保证在第一次恢复某个偏移处的IO数据时,一定是最新时间点的IO数据,可以避免恢复大量重复的IO数据,提高恢复效率;2本发明通过建立数据源卷的检测位图,根据检测位图进行去重检测,可以过滤掉大量重复的已恢复IO数据,极大地提升了IO数据恢复速度和恢复效率;3本发明通过计算前后的IO的偏移和长度,将相邻的多条IO数据合并成一条IO数据,对应地恢复IO数据的次数也由多次化简为一次,提高了恢复的速度和效率。附图说明图1为IO数据高效恢复流程图;图2为IO数据高效恢复系统结构图。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例1如图1所示,本实施例提供一种高效恢复CDP系统IO数据的方法,包括:101选择恢复的IO起始时间点和IO结束时间点、数据源卷信息以及用来存储恢复数据的目标介质,构建IO数据恢复任务;102按照IO时间戳递减的顺序,在每个数据源卷中对IO起始时间戳和IO结束时间戳内的IO数据文件依次进行读取;103判断是否完成IO数据读取,若为否,执行步骤102,若为是,执行步骤104;104根据IO数据的偏移和长度进行去重检测,判断是否有未恢复的IO数据块,若为否,执行步骤102,若为是,执行步骤105;105根据IO数据的偏移和长度判断是否可以进行IO合并处理,若为是,则进行合并处理,否则将当前合并IO写入目标介质;106将当前合并IO恢复写入目标介质。步骤104所述去重检测过程包括以下步骤:创建检测位图:恢复任务开始后,先为每个数据源卷创建一块内存缓冲区作为检测位图,将该内存缓冲区的内容初始化为0;在检测位图中查找IO:恢复IO数据时,根据IO数据的偏移和长度在检测位图中查找对应的bit位是否都为1,如果是的,那么该条IO数据对应的数据块已恢复;若为否,则该条IO数据对应bit位为0的数据块需要恢复,计算方法为:假设IO的偏移是X字节,长度是Y字节;检测位图check_bmp的数据块大小为S字节,X和Y是S的整数倍,可知该条IO对应YS个数据块,那么需要检测check_bmp[XS]到check_bmp[X+YS-1]之间连续的YS个bit位是否为1,如果这YS个bit位全部为1,那么该条IO数据无需恢复;如果这YS个bit位有部分或全部为0,则保留将该条IO中bit位为0所对应的数据块集合,用于后续的IO合并处理。置该条IO数据对应检测位图中的bit位为1。经IO去重检测后若结果为该条IO数据需要恢复,则在恢复过后将其对应的检测位图中的bit位设置为1。步骤105所述IO合并过程包括以下步骤:对于每条IO数据,其偏移为offset1,长度为length1,如果当前合并IO的偏移offset=0,长度length=0,那么更新合并IO的偏移为offset=offset1,长度为length=length1,拷贝该条IO的数据到合并IO的数据区中,若为否则进行IO合并检测;IO合并检测:每条IO数据其经过IO去重检测后得到一个对应的未恢复数据块集合,遍历并处理该集合中的每个数据块,假设数据块的偏移为offset2,长度为length2,如果offset2+length2=offset,那么更新合并IO的offset=offset2,长度length=length+length2,同时将该数据块的数据拷贝到合并IO数据的前面;如果offset+length=offset2,那么更新合并IO的长度length=length+length2,同时将该数据块的数据拷贝到合并IO数据的后面;否则,将当前合并IO进行恢复写入,并重置合并IO的offset=0,长度length=0。步骤106所述将当前合并IO恢复写入目标介质具体为:当合并IO的长度达到设定的上限或者无法再进行IO合并,那么需要将合并IO进行恢复写入,恢复写入后需要将合并IO的偏移offset和长度length重置为0。实施例2如图2所示,本实施例提供一种高效恢复CDP系统IO数据的系统,包括恢复控制模块、IO数据读写模块、IO去重检测模块和IO合并模块,恢复控制模块用于根据IO起始时间戳、IO结束时间戳、恢复数据源卷以及目标介质创建IO数据恢复任务并进行任务初始化;IO数据读写模块包括用于读取并解析每条IO数据的读取单元和用于将IO合并模块传递过来的合并IO所在卷写入对应目标介质的写入单元;IO去重检测模块用于接收IO数据读写模块读取的IO数据文件信息并进行去重检测剔除已恢复IO数据;IO合并模块用于接收IO去重检测模块传递的每条IO数据对应的未恢复数据块集合,遍历该集合并进行IO合并处理。所述IO合并模块包括接收单元、第一判断单元、第二判断单元、第三判断单元和恢复重置单元。所述系统的工作流程为:恢复控制模块IO根据恢复的IO起始时间戳、IO结束时间戳、恢复数据源卷以及目标介质创建IO数据恢复任务job;恢复控制模块进行任务初始化,具体为:根据IO起始时间戳和IO结束时间戳找到所有IO数据文件,并按照时间戳从大到小对IO数据文件进行排序,同时为选择的每个数据源卷创建相应的检测位图并初始化位图内容为0;IO去重检测模块进行IO去重检测:任务初始化完成后,IO数据读写模块的读取单元从IO数据文件中读取并解析每条IO数据,传递给IO去重检测模块,IO去重检测模块根据该条IO数据的偏移和长度到对应数据源卷的检测位图中进行查找,如果该条IO对应偏移的数据已经被恢复过则跳过该条IO数据,读取下一条IO数据进行处理;如果该条IO数据对应偏移处有未恢复过的数据块,则将这些未恢复的数据块集合传递给IO合并模块;IO合并模块进行IO合并:IO合并模块接收到IO去重检测模块传递的未恢复数据块集合后,遍历该数据块集合,对该集合中的每个数据块进行IO合并处理,如果满足合并要求,直接合并,如果不满足合并要求,那么需要将当前的合并IO传递给IO数据恢复写入模块进行处理,并将当前合并IO对应的检测位图bit位置为1。以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

权利要求:1.一种高效恢复CDP系统IO数据的方法,其特征在于,包括以下步骤:1获取与IO数据恢复任务对应的所有IO数据文件,将所述所有IO数据文件按照时间戳递减排序,同时建立与数据源卷对应的检测位图,将检测位图中的bit位初始值设为0;2读取所有IO数据文件,获得每条IO数据对应的偏移和长度;3对每条IO数据进行去重检测以剔除已恢复数据,得到每条IO数据对应的未恢复数据块集合;4遍历所述未恢复数据块集合并进行IO合并计算,将得到的合并IO进行恢复写入。2.根据权利要求1所述的一种高效恢复CDP系统IO数据的方法,其特征在于,步骤1中,所述IO数据恢复任务的信息包括IO起始时间戳、IO结束时间戳、恢复数据源卷以及目标介质。3.根据权利要求1所述的一种高效恢复CDP系统IO数据的方法,其特征在于,步骤3所述去重检测过程具体为:根据所述每条IO数据对应的偏移和长度在检测位图中查找该IO数据对应的bit位是否都为1,若是,则跳过该IO数据,读取下一条IO数据,若否,则将该IO数据在检测位图中对应的bit位为0的数据块集合保留,形成未恢复数据块集合。4.根据权利要求1所述的一种高效恢复CDP系统IO数据的方法,其特征在于,所述IO合并计算的过程包括以下步骤:401读取一条未恢复IO数据,其偏移为offset1,长度为length1,当前合并IO的偏移为offset,长度为length;402如果当前合并IO的偏移offset=0,长度length=0,则更新合并IO的偏移为offset=offset1,长度为length=length1,拷贝该条IO的数据到合并IO的数据区中,否则执行步骤403;403如果满足offset1+length1=offset,则更新合并IO的offset=offset1,长度length=length+length1,同时将该数据块的数据拷贝到合并IO数据的前面,否则执行步骤404;404如果满足offset+length=offset2,则更新合并IO的长length=length+length2,同时将该数据块的数据拷贝到合并IO数据的后面,否则执行步骤405。405将合并IO进行恢复写入,同时将合并IO的偏移offset和长度length重置为0,继续执行步骤401直至遍历完所有IO数据文件。5.一种高效恢复CDP系统IO数据的系统,其特征在于,包括:恢复控制模块,用于获取与IO数据恢复任务对应的所有IO数据文件,将所述所有IO数据文件按照时间戳递减排序,同时建立与数据源卷对应的检测位图,将检测位图中的bit位初始值设为0;IO数据读写模块,包括用于读取并分析IO数据文件的读取单元和用于将合并IO所在数据源卷写入对应目标介质的写入单元,所述读取单元获得每条IO数据对应的偏移和长度;IO去重检测模块,用于对每条IO数据进行去重检测以剔除已恢复数据,得到每条IO数据对应的未恢复数据块集合;IO合并模块,用于遍历所述未恢复数据块集合并进行IO合并处理。6.根据权利要求5所述的一种高效恢复CDP系统IO数据的系统,其特征在于,所述IO数据恢复任务的信息包括IO起始时间戳、IO结束时间戳、恢复数据源卷以及目标介质。7.根据权利要求5所述的一种高效恢复CDP系统IO数据的系统,其特征在于,所述去重检测的具体过程如下:根据所述每条IO数据对应的偏移和长度在检测位图中查找该IO数据对应的bit位是否都为1,若是,则跳过该IO数据,读取下一条IO数据,若否,则将该IO数据在检测位图中对应的bit位为0的数据块集合保留,形成未恢复数据块集合。8.根据权利要求5所述的一种高效恢复CDP系统IO数据的系统,其特征在于,所述IO合并模块包括:接收单元,用于接收IO去重检测模块传递的每条IO数据对应的未恢复数据块集合,其偏移为offset1,长度为length1,当前合并IO的偏移为offset,长度为length;第一判断单元,用于判断是否存在当前合并IO的偏移offset=0且长度length=0,若是,则更新合并IO的偏移为offset=offset1,长度为length=length1,拷贝该条IO的数据到合并IO的数据区中,若否,则产生第二判断信号;第二判断单元,在接收到所述第二判断信号时响应,用于判断是否存在offset1+length1=offset,若是,则更新合并IO的offset=offset1,长度length=length+length1,同时将该数据块的数据拷贝到合并IO数据的前面,若否,则产生第三判断信号;第三判断单元,在接收到所述第三判断信号时响应,用于判断是否存在ffset+length=offset2,若是,则更新合并IO的长度length=length+length2,同时将该数据块的数据拷贝到合并IO数据的后面,若否,则产生写入信号;恢复重置单元,用于将合并IO传递到写入单元进行恢复写入,将合并IO的偏移offset和长度length重置为0,产生继续执行信号发送至接收单元,直至遍历完所有IO数据文件。

百度查询: 上海爱数信息技术股份有限公司 人民法院信息技术服务中心 一种恢复CDP系统IO数据的方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。