一种保证CDP系统IO一致性的系统及方法与流程

文档序号:15143905发布日期:2018-08-10 20:13阅读:441来源:国知局

本发明涉及数据备份容灾领域,尤其是涉及一种保证cdp系统io一致性的系统及方法。



背景技术:

随着计算机技术的迅猛发展,如今绝大部分企业都使用计算机来运作自己的核心业务,由此而产生的数据也成为企业的核心财富,如何有效地保护这些核心数据也成为了企业面临的巨大挑战和关注的焦点。

块级cdp数据保护技术是数据保护领域里比较成熟的一种技术,它直接对块设备层的io进行监控,首先对要保护的卷进行初始化备份,生成初始化副本,然后对监控卷进行增量备份,实时捕获系统io,将落在监控卷区域的io重定向到存储介质上,保存监控卷区域所有变化的io,以达到持续数据保护的目的。

现有的块级cdp技术虽然能够实时捕获系统的io并重定向存储,但却不能对捕获的io做出有效的区分。在cdp捕获的io中,并不是所有的io都能将系统恢复到一个一致性状态,只有选择特定的io才能保证恢复后的系统处于一致性状态。系统一致性状态是指系统中的数据和元数据完整并且正确。现有的块级cdp技术并没有对捕获的io进行区分,而是将所有io统一对待,在做系统恢复的时候,如果所选择的io时间点不能保证系统一致性,那么会对系统的恢复造成不良影响,甚至造成系统的损坏。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种保证cdp系统io一致性的系统及方法。

本发明的目的可以通过以下技术方案来实现:

一种保证cdp系统io一致性的系统,该系统包括客户端、控制台和以太网,所述的客户端和控制台通过以太网连接,所述的客户端和控制台通过tcp/ip传输协议进行数据传输,所述的客户端安装于需要备份的客户端主机上,所述的控制台安装于另一台控制台主机上,所述的客户端包括cdp内核驱动模块、cdp调度模块、数据传输模块和客户端控制模块,所述的控制台包括控制台控制模块和数据存储模块,所述的cdp调度模块连接客户端主机的日志卷,其特征在于:所述的客户端还包括分别与cdp内核驱动模块、cdp调度模块连接的io一致性标记模块,所述的io一致性标记模块连接客户端主机的日志卷,所述的io一致性标记模块对日志卷内的能够保证系统的一致性io做一致性标记。

优选地,所述的一致性标记具体为:

在cdp系统捕获io的过程中,实时地对落在系统日志卷的io进行解析并分析该条io的内容,如果符合一致性io特征,那么就将这条io标记为一致性io;

在进行系统恢复时,对所选择的任意io时间点进行重新计算,计算方法为:从该任意io时间点开始按照时间戳递增的顺序找到第一个一致性io作为实际恢复的结束io。

优选地,所述的日志卷为客户端主机ext3和ext4文件系统开启ordered日志模式或者journal日志模式后,系统在物理磁盘上分配的连续128mb空间,也称为journalblockdevice,简称jbd。

优选地,所述的jbd中的每个数据块都有一个通用的头结构称为journal_header_s;

所述的头结构中的h_magic是固定标志值0xc03b3998,表明这个数据块是jbd中用于管理的数据块;

所述的头结构中的h_blocktype表明该数据块是哪种类型的jbd块:为1说明是描述块,用于标记一个事务的开始;为2说明是提交块,用于标记一个事务的结束;为3或者4说明是日志超级块;为5说明是撤销块。

优选地,所述的能够保证系统的一致性io需保证在该条io之前的数据都已经写到磁盘上并且是完整正确的,所述的能够保证系统的一致性io具有以下特征:所述的io落在系统jbd区域,且该条io的内容以标志值0xc03b3998开头,所述的io的h_blocktype为2。

优选地,所述的一致性标记为能够将系统恢复到一致性状态的一个标记值,如果能够将系统恢复到一致性状态则该io的标记值为1,否则标记值为0。

一种所述的保证cdp系统io一致性的系统的方法,包括以下步骤:

(1).io一致性标记过程:

(1.1).任务初始化阶段,开启监控卷的ordered日志模式或者journal日志模式,同时获取系统日志文件在监控卷上的区间,即起始位置和结束位置;

(1.2).初始化复制阶段:将监控卷的数据复制到镜像卷,在这个阶段不对捕获的io做一致性判断;

(1.3).增量复制阶段:cdp系统捕获的每个io都具有偏移和长度信息,根据io的偏移和长度来判断该io是否落在系统日志区域范围内;如果该io落在了系统日志区域范围内,并且符合一致性io特征,则对该io做一致性标记,否则做非一致性标记;

(2).系统恢复过程:

(2.1).配置系统恢复参数,包括选择恢复的io时间点、要恢复的卷信息、恢复的位置、备注;

(2.2).对选择的任意io时间点进行重新计算:从该任意io时间点开始按照时间戳递增的顺序找到第一个一致性io作为实际恢复的结束io;如果按照时间戳递增的顺序没有找到一致性io,则从该任意io时间点开始按照时间戳递减的顺序找到第一个一致性io作为实际恢复的结束io;如果按照递增和递减的顺序都没有找到一致性io,那么就以当前选择的任意io时间点的io作为恢复的结束io;

(2.3).如果在第(2.2)步中找到了一致性io,将系统数据恢复到该一致性io即可将系统恢复到一个一致性状态;如果在第(2.2)步中没有找到一致性io,那么在执行数据恢复后,需要对恢复的卷进行适当的修复才能确保系统处于一致性状态。

与现有技术相比,本发明具有以下优点:

1、通过对捕获的io做一致性io特征标记,将能够保证系统一致性的io和普通的io进行区分。

2、在系统恢复的时候,有特征标记的io具有良好的指导意义,选择任意io时间点做系统恢复的时候都能将系统恢复到一个一致性状态。

附图说明

图1为tcp/ip协议5层结构图;

图2为本发明的cdp系统结构图;

图3为本发明的cdp系统备份工作流程图;

图4为本发明cdp系统恢复工作流程图。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

本发明是在原有cdp备份系统上做出的改进。原cdp备份恢复系统结构图如图2所示,系统由客户端、控制台两部分组成,两者通过以太网连接,采用tcp/ip传输协议进行数据的传输。tcp/ip协议5层结构图如图1所示。为了在原有cdp备份系统上实现一致性io标记功能,需要增加io一致性标记功能模块。该功能模块只影响系统客户端,对控制台不用做任何改动。

如图1和图2所示,一种保证cdp系统io一致性的系统,该系统包括客户端、控制台和以太网,所述的客户端和控制台通过以太网连接,所述的客户端和控制台通过tcp/ip传输协议进行数据传输,所述的客户端安装于需要备份的客户端主机上,所述的控制台安装于另一台控制台主机上,所述的客户端包括cdp内核驱动模块、cdp调度模块、数据传输模块和客户端控制模块,所述的控制台包括控制台控制模块和数据存储模块,所述的cdp调度模块连接客户端主机的日志卷,所述的客户端还包括io一致性标记模块,所述的io一致性标记模块连接客户端主机的日志卷,所述的io一致性标记模块对日志卷内的能够保证系统的一致性io做一致性标记。

所述的日志卷,是ext3、ext4文件系统开启ordered日志模式或者journal日志模式后,系统在物理磁盘上分配的连续128mb空间,也称为journalblockdevice,简称jbd。jbd以一个日志超级块作为开始,后面顺序存放多个事务。jbd中每个数据块都有一个通用的头结构称为journal_header_s,该头结构中的h_magic是固定标志值0xc03b3998,用来表明这个数据块是jbd中用于管理的数据块;h_blocktype用来表明该数据块是哪种类型的jbd块:为1说明是描述块,用于标记一个事务的开始;为2说明是提交块,用于标记一个事务的结束;为3或者4说明是日志超级块;为5说明是撤销块。

系统写数据的一般过程为:先将数据内容写到磁盘最终位置上,同时在jbd中产生一个事务用来记录本次写操作过程中的元数据,在将数据内容写到磁盘以及相关的事务写到jbd后,才会将元数据写到磁盘最终的位置上。一个事务以一个描述块作为开始,中间会有多个元数据块,最后以一个提交块作为结束,每个事务都是原子操作,只有在事务提交块写入jbd后,这个事务才算是有效的。一个有效的事务能够保证在该事务之前写入的数据(包括数据内容和元数据)都是完整正确的。

所述一致性io特征,是指具有这些特征的io:该io落在系统jbd区域,且该条io的内容以标志值0xc03b3998开头,表明这条io对应的数据块是jbd中用于管理的数据块,同时这条io的h_blocktype为2,表明其是一个有效的事务提交块,可以保证在该条io之前的数据都已经写到磁盘上并且是完整正确的,即保证系统数据的一致性。

所述的一致性标记为能够将系统恢复到一致性状态的一个标记值,如果能够将系统恢复到一致性状态则该io的标记值为1,否则标记值为0。

如图3所示,本发明的系统备份工作流程:

1.在需要备份的业务主机系统上安装cdp客户端,同时在另外一台主机上安装cdp控制台。cdp客户端包含cdp内核驱动模块、cdp调度模块、io一致性标记模块、数据传输模块以及控制模块。cdp控制台包括数据存储模块和管理模块,主要提供存储管理和任务管理等功能。

2.io一致性标记的工作流程。

2.1cdp任务创建过程:从cdp控制台中选择某个连接到控制台的客户端作为备份对象,创建基于该客户端主机的cdp任务cdp_job,监控客户端主机上卷/opt的变化数据,选择客户端主机卷/log作为日志卷。

2.2任务初始化阶段:创建任务cdp_job后,发起数据复制,cdp备份恢复系统首先会对该任务进行初始化,设置任务相关参数。在该阶段,需要确保客户端系统的ext3或ext4文件系统采用ordered日志模式或者journal日志模式(默认为ordered日志模式),之后可以通过卷文件系统的超级块定位系统日志区域的起始位置syslog_start和结束位置syslog_end。

2.3.初始化复制阶段:任务初始化完成后,cdp调度模块发送启动监控消息给cdp内核驱动模块,cdp内核驱动模块开始捕获卷/opt区域的变化io数据块,并将这些io数据块组织成特定格式存储在日志卷/log上;同时,cdp调度模块根据卷/opt上的文件系统位图表对卷/opt进行初始化备份,通过数据传输模块将初始化数据发送到控制台,交由控制台上的数据存储模块进行处理。

2.4.增量复制阶段:cdp调度模块完成对卷/opt的初始化复制之后,开始从日志卷/log中提取增量变化的io数据块,通过数据传输模块发送到控制台,交由控制台上的数据存储模块进行处理,当数据块处理成功后,cdp调度模块会从日志卷/log中删除该io数据块。

2.5.i/o一致性标记过程:开始增量复制阶段时,开启io一致性标记功能。cdp内核驱动捕获的每条io都会带有偏移offset和长度length,在io数据块被写到日志卷/log之前先判断该条io是否落在系统日志区域,当syslog_start<=offset<=syslog_end或者syslog_start<=offset+length<=syslog_end时,就表明该io落在系统日志区域,即该条io能够保证系统的一致性,那么就设置该条io的一致性标记值为1,否则为0。

如图4所示,本发明的系统恢复工作流程:

3.1.cdp恢复任务创建过程:从cdp控制台中选择之前的cdp_job备份任务,创建基于cdp_job备份任务的cdp恢复任务cdp_recovery,并选择将卷/opt中的在io时间点tp时刻的数据恢复到卷/opt_recover中。

3.2.任务初始化阶段:创建cdp_recovery恢复任务后,发起数据恢复,cdp备份恢复系统首先会对该任务进行初始化,设置任务相关参数。在该阶段,会对所选择的恢复io时间点tp进行重新计算:从io时间点tp开始按照时间戳递增的顺序找到第一个一致性io作为实际恢复的结束io;如果按照时间戳递增的顺序没有找到一致性io,则从io时间点tp开始按照时间戳递减的顺序找到第一个一致性io作为实际恢复的结束io;如果按照时间戳递增和递减的顺序都没有找到一致性io,那么就以当前选择的io时间点tp对应的io作为恢复的结束io。

3.3.恢复阶段:如果找到了一致性io,就将系统数据恢复到该一致性io处,可以保证将系统恢复到一个一致性状态。如果没有找到一致性io,那么在将数据恢复到io时间点tp对应的io后,需要对恢复的卷进行适当的修复(执行修复命令)才能确保系统处于一致性状态。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1