CN106776123B - 一种容灾实时数据复制方法及系统、备份客户端 - Google Patents
一种容灾实时数据复制方法及系统、备份客户端 Download PDFInfo
- Publication number
- CN106776123B CN106776123B CN201611055394.6A CN201611055394A CN106776123B CN 106776123 B CN106776123 B CN 106776123B CN 201611055394 A CN201611055394 A CN 201611055394A CN 106776123 B CN106776123 B CN 106776123B
- Authority
- CN
- China
- Prior art keywords
- buffer area
- data
- buffer
- backup client
- data block
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种容灾实时数据复制方法及系统、备份客户端,包括基于iSCSI协议将容灾控制台上的一块磁盘区域挂载到备份客户端上的虚拟磁盘;在备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;将备份客户端上监控数据源全部复制到虚拟磁盘上;在复制的同时将备份客户端上监控数据源的每个数据块的I/O变化信息记录在所述更新缓冲区上;进行数据一致性处理;每隔一预设周期,进行永久增量复制。本发明的容灾实时数据复制方法及系统、备份客户端,通过使用更新缓冲区记录系统I/O变化,通过切换更新缓冲区和交换缓冲区来周期性同步数据,并通过冲突缓冲区避免脏数据,从而实现高效地实时数据复制,并且系统开销极小,几乎不影响生产系统性能。
Description
技术领域
本发明涉及一种数据复制方法及系统,特别是涉及一种容灾实时数据复制方法及系统、备份客户端。
背景技术
随着计算机技术的迅猛发展,如今绝大部分企业都使用计算机来运作自己的核心业务,由此而产生的数据也成为企业的核心财富。因此,如何有效地保护这些核心数据也成为了企业面临的巨大挑战和关注的焦点。
近几年,容灾技术已成为企业数据保护的热门研究课题。目前,容灾技术正在快速发展,给用户提供了更多的数据保护策略。数据容灾系统,对于IT而言,就是为计算机信息系统提供的一个能应付各种灾难的环境。当计算机系统在遭受如火灾、水灾、地震、战争等不可抗拒的自然灾难以及计算机犯罪、计算机病毒、掉电、网络/通信失败、硬件/软件错误和人为操作错误等人为灾难时,容灾系统将保证用户数据的安全性(数据容灾)。甚至,一个更加完善的容灾系统,还能提供不间断的应用服务(应用容灾)。可以说,容灾系统是数据存储备份的最高层次。
在容灾领域,数据复制技术具有实时性高、数据丢失或零丢失等特点。在在线容灾中,生产机和容灾平台同时工作,生产机通过传输链路将数据实时复制到远程容灾平台。当生产机出现故障时,可以利用容灾平台进行任务接管以便继续提供服务。所以,实时数据复制是容灾技术中的关键的步骤。
现有技术中,容灾数据复制技术主要包括以下三种:
1)存储系统数据复制技术
该技术需要在生产机和容灾平台各部署一套存储系统,利用存储系统自带的数据复制功能实现数据的实时复制。但是,该技术的局限性比较大,会影响生产机性能,且成本容易提高。
2)操作系统层数据复制技术
该技术需要本地系统和远端系统的主机是同构的,利用生产机的卷管理器来实现数据的实时复制。但是该技术对生产机系统性能影响较大。
3)应用层数据复制技术
该技术利用本地和远程主机之间的日志归档和传递功能实现数据的实时复制,对系统依赖性较小。但是,该技术需要在远端系统执行日志中的记录来生成备份数据,增加了远端系统的负担。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种容灾实时数据复制方法及系统、备份客户端,通过使用更新缓冲区记录系统I/O变化,通过切换更新缓冲区和交换缓冲区来周期性同步数据,并通过冲突缓冲区(buffer)避免脏数据,从而实现高效地实时数据复制,并且系统开销极小,几乎不影响生产系统性能。
为实现上述目的及其他相关目的,本发明提供一种容灾实时数据复制方法,包括以下步骤:基于iSCSI协议将容灾控制台上的一块磁盘区域挂载到备份客户端上的虚拟磁盘;在备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;所述更新缓冲区和所述交换缓冲区为大小相等的两个缓冲区;所述更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化;将备份客户端上监控数据源全部复制到虚拟磁盘上;在复制的同时将备份客户端上监控数据源的每个数据块的I/O变化信息记录在所述更新缓冲区上;进行数据一致性处理;所述数据一致性处理包括:交换所述更新缓冲区和所述交换缓冲区中的信息;继续将备份客户端上监控数据源的每个数据块的I/O变化信息记录在所述更新缓冲区上,同时根据读取的所述交换缓冲区中的I/O变化信息,在备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到所述虚拟磁盘中相应的位置,再将所述交换缓冲区中该数据块对应的I/O变化信息清除;若在读取所述交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至所述冲突缓冲区中,并将所述交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在更新缓冲区中进行记录;当所述交换缓冲区的信息读取完毕后,将所述冲突缓冲区中的数据写入所述虚拟磁盘中相应的位置。
于本发明一实施例中,所述更新缓冲区和所述交换缓冲区均为包括若干个bit位的缓冲区;每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O。
于本发明一实施例中,还包括:继续将备份客户端上监控数据源的每个数据块的I/O变化记录在所述更新缓冲区上,每间隔一预设周期,重复进行数据一致性处理。
于本发明一实施例中,重复进行数据一致性处理时,在读取交换缓冲区中的I/O变化信息的过程中,当冲突缓冲区的使用率高于第一预设阈值,则停止读取交换缓冲区中的I/O变化信息,将I/O变化信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置;当冲突缓冲区的使用率低于第二预设阈值,则将更新缓冲区和交换缓冲区中的I/O变化信息进行合并,使更新缓冲区中仅保留更新缓冲区和交换缓冲区中仅出现一次的I/O变化信息,同时清除交换缓冲区中的I/O变化信息,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
于本发明一实施例中,当所述更新缓冲区和所述交换缓冲区均为包括若干个bit位的缓冲区;每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O时,将更新缓冲区和交换缓冲区进行合并后,对更新缓冲区和交换缓冲区中的每个bit位进行异或处理得到一个新的更新缓冲区。
同时,本发明提供一种备份客户端,用于容灾实时数据复制,所述备份客户端上的虚拟磁盘基于iSCSI协议挂载容灾控制台的一块磁盘区域;
所述备份客户端包括创建模块、初始化复制模块、监控模块和一致性处理模块;
所述创建模块用于在所述备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;所述更新缓冲区和所述交换缓冲区为大小相等的两个缓冲区;所述更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化;
所述初始化复制模块用于在所述创建模块创建更新缓冲区、交换缓冲区和冲突缓冲区之后,将所述备份客户端上监控数据源全部复制到所述虚拟磁盘上;
所述监控模块用于在所述初始化复制模块开始复制的同时,持续监控所述备份客户端上监控数据源的每个数据块的I/O变化,并将I/O变化信息记录在所述更新缓冲区上;
所述一致性处理模块用于进行数据一致性处理;所述数据一致性处理包括:交换所述更新缓冲区和所述交换缓冲区中的信息;根据读取的所述交换缓冲区中的I/O变化信息,在所述备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到所述虚拟磁盘中相应的位置,再将所述交换缓冲区中该数据块对应的I/O变化信息清除;若在读取所述交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至所述冲突缓冲区中,并将所述交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在所述更新缓冲区中进行记录;当所述交换缓冲区的信息读取完毕后,将所述冲突缓冲区中的数据写入所述虚拟磁盘中相应的位置。
于本发明一实施例中,所述更新缓冲区和所述交换缓冲区均为包括若干个bit位的缓冲区;每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O。
于本发明一实施例中,还包括增量复制模块,所述增量复制模块用于每间隔一预设周期,根据所述监控模块在一致性处理之后监控并记录在所述更新缓冲区上的备份客户端上监控数据源的每个数据块的I/O变化,重复进行数据一致性处理。
于本发明一实施例中,所述增量复制模块还用于在读取交换缓冲区中的I/O变化信息的过程中,当冲突缓冲区的使用率高于第一预设阈值,则停止读取交换缓冲区中的I/O变化信息,将I/O变化信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置;当冲突缓冲区的使用率低于第二预设阈值,则将更新缓冲区和交换缓冲区中的I/O变化信息进行合并,使更新缓冲区中仅保留更新缓冲区和交换缓冲区中仅出现一次的I/O变化信息,同时清除交换缓冲区中的I/O变化信息,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
另外,本发明还提供一种容灾实时数据复制系统,包括备份客户端和容灾控制台;所述容灾控制台基于iSCSI协议上将一块磁盘区域挂载到所述备份客户端上的虚拟磁盘;
所述备份客户端包括创建模块、初始化复制模块、监控模块和一致性处理模块;
所述创建模块用于在所述备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;所述更新缓冲区和所述交换缓冲区为大小相等的两个缓冲区;所述更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化;
所述初始化复制模块用于在所述创建模块创建更新缓冲区、交换缓冲区和冲突缓冲区之后,将所述备份客户端上监控数据源全部复制到所述虚拟磁盘上;
所述监控模块用于在所述初始化复制模块开始复制的同时,持续监控所述备份客户端上监控数据源的每个数据块的I/O变化,并将I/O变化信息记录在所述更新缓冲区上;
所述一致性处理模块用于进行数据一致性处理;所述数据一致性处理包括:交换所述更新缓冲区和所述交换缓冲区中的信息;根据读取的所述交换缓冲区中的I/O变化信息,在所述备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到所述虚拟磁盘中相应的位置,再将所述交换缓冲区中该数据块对应的I/O变化信息清除;若在读取所述交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至所述冲突缓冲区中,并将所述交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在所述更新缓冲区中进行记录;当所述交换缓冲区的信息读取完毕后,将所述冲突缓冲区中的数据写入所述虚拟磁盘中相应的位置。
如上所述,本发明的容灾实时数据复制方法及系统、备份客户端,具有以下有益效果:
(1)通过使用更新缓冲区记录系统I/O变化;
(2)通过切换更新缓冲区和交换缓冲区来周期性同步数据;
(3)通过冲突buffer避免脏数据;
(4)能够实现高效地实时数据复制,并且系统开销极小,几乎不影响生产系统性能。
附图说明
图1显示为本发明的容灾实时数据复制方法的流程图;
图2显示为iSCSI协议结构图;
图3显示为本发明的备份客户端的结构示意图;
图4显示为本发明的容灾实时数据复制系统的结构示意图;
图5显示为本发明的容灾实时数据复制系统的一个优选实施例的结构示意图;
图6显示为本发明的容灾实时数据复制系统的一个实施例的结构示意图;
图7显示为本发明的容灾实时数据复制系统的一个实施例的复制方法流程图。
元件标号说明
1 备份客户端
11 创建模块
12 初始化复制模块
13 监控模块
14 一致性处理模块
15 增量复制模块
2 容灾控制台
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
参照图1,本发明的容灾实时数据复制方法包括以下步骤:
步骤S1、基于iSCSI协议将容灾控制台上的一块磁盘区域挂载到备份客户端上的虚拟磁盘。
虚拟磁盘就是在本地电脑里面虚拟出一个远程电脑里面的磁盘。例如,客户端可以通过局域网连接服务器上的iSCSI Cake服务器,在本地虚拟出一块硬盘,以达到通过网络共享服务器硬盘的效果。
iSCSI(Internet Small Computer System Interface,Internet小型计算机系统接口)是一种基于TCP/IP的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN使得SCSI协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。
iSCSI技术将现有SCSI接口与以太网络技术结合,使服务器可与使用IP网络的储存装置互相交换资料。如图2所示,iSCSI协议的主要功能是在TCP/IP网络上的主机系统(Initiator)和存储设备(Target)之间进行大量数据的封装和可靠传输。
步骤S2、在备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区(buffer);更新缓冲区和交换缓冲区为大小相等的两个缓冲区;更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化。
其中,初始的更新缓冲区和交换缓冲区均为空,不记载任何信息。
优选地,更新缓冲区和交换缓冲区均为包括若干个bit(比特)位的缓冲区。每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O。例如,设定bit位为1时,表示该数据块有变化I/O;bit位为0时,表示该数据块没有变化I/O。当然,也可以设定bit位为1时,表示该数据块没变化I/O;bit位为0时,表示该数据块有变化I/O。
在本发明中,数据块的大小由用户自定义。通常,一个数据块对应于系统的最小分配单元,即一个簇大小或者一个系统block大小。
交换缓冲区也是一块内存缓冲区,其大小等于更新缓冲区大小。交换缓冲区主要用于和更新缓冲区进行交换,从而能够周期性将备份客户端上监控数据源中有变化I/O的数据块写入虚拟磁盘中。
步骤S3、将备份客户端上监控数据源全部复制到虚拟磁盘上;在复制的同时将备份客户端上监控数据源的每个数据块的I/O变化信息记录在更新缓冲区上。
步骤S4、进行数据一致性处理;数据一致性处理包括:交换更新缓冲区和交换缓冲区中的信息;继续将备份客户端上监控数据源的每个数据块的I/O变化信息记录在更新缓冲区上,同时根据读取的交换缓冲区中的I/O变化信息,在备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到虚拟磁盘中相应的位置,再将交换缓冲区中该数据块对应的I/O变化信息清除;若在读取交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至冲突缓冲区中,并将交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在更新缓冲区中进行记录;当交换缓冲区的信息读取完毕后,将冲突缓冲区中的数据写入虚拟磁盘中相应的位置。
具体地,若在读取交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则根据该I/O的偏移和长度在更新缓冲区中找到其所在簇或者block所对应的bit位,并将bit位设置为1。在更新缓冲区中将bit位设置为1之后,将该I/O下发到下层驱动,由系统写入监控数据源磁盘。
需要说明的是,冲突缓冲区中的数据写入虚拟磁盘后,数据所在位置为空,可以继续存储数据块。
通过上述步骤S4,可以保证虚拟磁盘和备份客户端上监控数据源上数据的一致性。
优选地,还包括步骤S5、继续将备份客户端上监控数据源的每个数据块的I/O变化信息记录在更新缓冲区上,每间隔一预设周期,重复进行数据一致性处理。
通过步骤S5,可以周期性将更新缓冲区记录的变化I/O写入虚拟磁盘中,这从而实现备份客户端上监控数据源的永久增量复制。
更为优选地,步骤S5中还包括:在读取交换缓冲区中的I/O变化信息的过程中,当冲突缓冲区的使用率高于第一预设阈值,,则停止读取交换缓冲区中的I/O变化信息,将I/O变化信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置;当冲突缓冲区的使用率低于第二预设阈值,则将更新缓冲区和交换缓冲区中的I/O变化信息进行合并,使更新缓冲区中仅保留更新缓冲区和交换缓冲区中仅出现一次的I/O变化信息,同时清除交换缓冲区中的I/O变化信息,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
具体地,在交换缓冲区扫描的过程中,如果系统产生大量的I/O变化,导致冲突缓冲区的使用率高于第一预设阈值,如100%,存储不了所有的变化I/O数据,那么会停止扫描交换缓冲区,将变化I/O信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置。当I/O变化不再频繁时,如冲突缓冲区的使用率低于20%时,将更新缓冲区和交换缓冲区进行合并,即从头开始对更新缓冲区和交换缓冲区中的每个bit位进行异或处理得到一个新的更新缓冲区,同时将交换缓冲区的内存空间作清零处理,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
在本发明的一个优选实施例中,当备份客户端对多个数据源进行监控时,每个监控数据源单独有自己的更新缓冲区、交换缓冲区。所有的监控数据源共用一个冲突缓冲区。扫描交换缓冲区时,对每个监控数据源的交换缓冲区进行扫描。当冲突缓冲区达到第一预设阈值时,会停止所有监控数据源的交换缓冲区的扫描。交换的时候也是交换所有数据源的更新缓冲区和交换缓冲区。合并的时候也是对每个监控数据源的更新缓冲区和交换缓冲区进行合并。
参照图3,本发明的备份客户端1用于容灾实时数据复制,备份客户端1上的虚拟磁盘基于iSCSI协议挂载容灾控制台的一块磁盘区域。
虚拟磁盘就是在本地电脑里面虚拟出一个远程电脑里面的磁盘。例如,客户端可以通过局域网连接服务器上的iSCSI Cake服务器,在本地虚拟出一块硬盘,以达到通过网络共享服务器硬盘的效果。
iSCSI(Internet Small Computer System Interface,Internet小型计算机系统接口)是一种基于TCP/IP的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN使得SCSI协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。
iSCSI技术将现有SCSI接口与以太网络技术结合,使服务器可与使用IP网络的储存装置互相交换资料。如图2所示,iSCSI协议的主要功能是在TCP/IP网络上的主机系统(Initiator)和存储设备(Target)之间进行大量数据的封装和可靠传输。
备份客户端1包括创建模块11、初始化复制模块12、监控模块13和一致性处理模块14。
创建模块11用于在备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区(buffer);更新缓冲区和交换缓冲区为大小相等的两个缓冲区;更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化。
其中,初始的更新缓冲区和交换缓冲区均为空,不记载任何信息。
优选地,更新缓冲区和交换缓冲区均为包括若干个bit(比特)位的缓冲区。每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O。例如,设定bit位为1时,表示该数据块有变化I/O;bit位为0时,表示该数据块没有变化I/O。当然,也可以设定bit位为1时,表示该数据块没变化I/O;bit位为0时,表示该数据块有变化I/O。
在本发明中,数据块的大小由用户自定义。通常,一个数据块对应于系统的最小分配单元,即一个簇大小或者一个系统block大小。
交换缓冲区也是一块内存缓冲区,其大小等于更新缓冲区大小。交换缓冲区主要用于和更新缓冲区进行交换,从而能够周期性将备份客户端上监控数据源中有变化I/O的数据块写入虚拟磁盘中。
初始化复制模块12与创建模块11相连,用于在创建模块创建更新缓冲区、交换缓冲区和冲突缓冲区之后,将备份客户端上监控数据源全部复制到虚拟磁盘上。
监控模块13与初始化复制模块12相连,用于在初始化复制模块开始复制的同时,持续监控备份客户端上监控数据源的每个数据块的I/O变化,并将I/O变化信息记录在更新缓冲区上。
一致性处理模块14与监控模块13相连,用于进行数据一致性处理;数据一致性处理包括:交换更新缓冲区和交换缓冲区中的信息;根据读取的交换缓冲区中的I/O变化信息,在备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到虚拟磁盘中相应位置,再将交换缓冲区中该数据块对应的I/O变化信息清除;若在读取交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至冲突缓冲区中,并将交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在更新缓冲区中进行记录;当交换缓冲区的信息读取完毕后,将冲突缓冲区中的数据写入虚拟磁盘中相应位置。
具体地,若在读取交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则根据该I/O的偏移和长度在更新缓冲区中找到其所在簇或者block所对应的bit位,并将bit位设置为1。在更新缓冲区中将bit位设置为1之后,将该I/O下发到下层驱动,由系统写入监控数据源磁盘。
需要说明的是,冲突缓冲区中的数据写入虚拟磁盘后,数据所在位置为空,可以继续存储数据块。
通过上述一致性处理,可以保证虚拟磁盘和备份客户端上监控数据源上数据的一致性。
优选地,如图4所示,还包括增量复制模块15,该增量复制模块15与一致性处理模块14相连,用于每间隔一预设周期,根据监控模块在一致性处理之后监控并记录在更新缓冲区上的备份客户端上监控数据源的每个数据块的I/O变化,重复进行数据一致性处理。
通过上述增量复制,可以周期性将更新缓冲区记录的变化I/O写入虚拟磁盘中,这从而实现备份客户端上监控数据源的永久增量复制。
更为优选地,增量复制模块还用于在读取交换缓冲区中的I/O变化信息的过程中,当冲突缓冲区的使用率高于第一预设阈值,则停止读取交换缓冲区中的I/O变化信息,将I/O变化信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置;当冲突缓冲区的使用率低于第二预设阈值,则将更新缓冲区和交换缓冲区中的I/O变化信息进行合并,使更新缓冲区中仅保留更新缓冲区和交换缓冲区中仅出现一次的I/O变化信息,同时清除交换缓冲区中的I/O变化信息,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
具体地,在交换缓冲区扫描的过程中,如果系统产生大量的I/O变化,导致冲突缓冲区的使用率高于第一预设阈值,如100%,存储不了所有的变化I/O数据,那么会停止扫描交换缓冲区,将变化I/O信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置。当I/O变化不再频繁时,如冲突缓冲区的使用率低于20%时,将更新缓冲区和交换缓冲区进行合并,即从头开始对更新缓冲区和交换缓冲区中的每个bit位进行异或处理得到一个新的更新缓冲区,同时将交换缓冲区的内存空间作清零处理,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
在本发明的一个优选实施例中,当备份客户端对多个数据源进行监控时,每个监控数据源单独有自己的更新缓冲区、交换缓冲区。所有的监控数据源共用一个冲突缓冲区。扫描交换缓冲区时,对每个监控数据源的交换缓冲区进行扫描。当冲突缓冲区达到第一预设阈值时,会停止所有监控数据源的交换缓冲区的扫描。交换的时候也是交换所有数据源的更新缓冲区和交换缓冲区。合并的时候也是对每个监控数据源的更新缓冲区和交换缓冲区进行合并。
参照图5,本发明的容灾实时数据复制系统包括上述备份客户端1和容灾控制台2;容灾控制台2基于iSCSI协议上将一块磁盘区域挂载到备份客户端1上的虚拟磁盘。
下面结合附图和具体实施例对本发明的容灾实时数据复制系统进行详细说明。
如图6所示,该实施例的容灾实时数据复制系统包括备份客户端和备份控制台。控制台通过iSCSI协议将一块磁盘挂载到客户端的虚拟磁盘。
在需要备份的业务主机系统上安装备份客户端,同时在另外一台主机上安装备份控制台。客户端包含内核驱动模块、缓冲区记录模块、调度模块、虚拟磁盘模块以及控制模块。备份控制台包括数据存储模块和管理模块,主要提供存储管理和任务管理等功能。备份客户端和备份控制台都需要运行iSCSI服务,以便可以挂载虚拟磁盘。例如,将备份控制台上的一块磁盘挂在到客户端的虚拟磁盘F。
如图7所示,备份客户端和备份控制台间通过以下步骤进行容灾实时数据复制:
1)创建数据复制任务
从备份控制台中选择某个连接到备份控制台的备份客户端作为备份对象,创建基于该备份客户端主机的任务job,监控备份客户端主机上卷D的数据,选择备份控制台通过iSCSI协议挂载到客户端的虚拟磁盘F作为容灾数据备份磁盘。
2)初始化任务
创建任务job后,发起数据复制,首先对该任务进行初始化,设置任务相关参数。根据参数创建相应的更新缓冲区和交换缓冲区以及冲突缓冲区。
其中,更新缓冲区为包括若干个bit位。每个bit位对应备份客户端上卷D的一个数据块。设定bit位为1时,表示该数据块有变化I/O;bit位为0时,表示该数据块没有变化I/O。
3)初始化复制
任务初始化完成后,调度模块发送启动监控消息至内核驱动模块,内核驱动模块开始捕获卷D区域的变化I/O,并将I/O所在的数据块在更新缓冲区中对应bit位设置为1;同时,系统像操作本地磁盘一样将卷D中的数据通过iSCSI协议复制到虚拟磁盘F中。
4)数据一致性处理
卷D中数据全部复制到虚拟磁盘F后,切换更新缓冲区和交换缓冲区,逐位扫描交换缓冲区,将bit位为1的位所对应的数据块从卷D中读取并写入到虚拟磁盘F相应的位置,并置该位为0。更新缓冲区继续监控卷D的变化I/O。如果在扫描交换缓冲区的过程中,出现冲突情况,则先将该bit位对应的数据块从卷D中读取并存储到冲突缓冲区中并置该位为0,再将该I/O变化在更新缓冲区中做记录,最后写入客户端的监控数据源磁盘。交换缓冲区扫描完成后,将冲突缓冲区中的数据块写入虚拟磁盘F中,即可实现数据的一致性。
5)永久增量复制
根据任务初始化阶段设置的数据同步周期,在到达预设同步周期时,切换更新缓冲区和交换缓冲区,更新缓冲区继续监控系统变化I/O。同时,逐位扫描交换缓冲区,如果该位为1,则从D卷读取该位对应的数据块并写入虚拟磁盘F中,并置该位为0,扫描完成后即可得到一个可恢复的时间点。其中,该可恢复的时间点就是可以将备份客户端恢复到某个状态的时间点。在本发明中,每隔一定时间周期,会将该段时间内变化的I/O同步到远程容灾控制台。每同步一次就会产生一个时间点,基于该时间点可以将备份客户端恢复到该时间点所处的状态。
如果在扫描交换缓冲区的过程中,出现冲突情况,则先将该bit位对应的数据块从卷D中读取并存储到冲突缓冲区中并置该位为0,再将该I/O变化在更新缓冲区中记录,最后写入备份客户端监控数据源磁盘。如果系统在扫描交换缓冲区的过程中产生大量的变化I/O,导致冲突缓冲区溢出,无法存储所有的变化I/O数据,此时停止扫描缓冲区,将变化I/O信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置。等系统变化I/O不再频繁的时候,将更新缓冲区和交换缓冲区进行合并,即从第一个bit位开始进行异或操作,同时将交换缓冲区所有bit位置0,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
综上所述,本发明的容灾实时数据复制方法及系统、备份客户端通过使用更新缓冲区记录系统I/O变化,通过切换更新缓冲区和交换缓冲区来周期性同步数据,并通过冲突缓冲区避免脏数据,从而实现高效地实时数据复制,并且系统开销极小,几乎不影响生产系统性能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种容灾实时数据复制方法,其特征在于:包括以下步骤:
基于iSCSI协议将容灾控制台上的一块磁盘区域挂载到备份客户端上的虚拟磁盘;
在备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;所述更新缓冲区和所述交换缓冲区为大小相等的两个缓冲区;所述更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化;
将备份客户端上监控数据源全部复制到虚拟磁盘上;在复制的同时将备份客户端上监控数据源的每个数据块的I/O变化信息记录在所述更新缓冲区上;
进行数据一致性处理;所述数据一致性处理包括:将所述更新缓冲区中的信息复制到所述交换缓冲区中;继续将备份客户端上监控数据源的每个数据块的I/O变化信息记录在所述更新缓冲区上,同时根据读取的所述交换缓冲区中的I/O变化信息,在备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到所述虚拟磁盘中相应的位置,再将所述交换缓冲区中该数据块对应的I/O变化信息清除;若在读取所述交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至所述冲突缓冲区中,并将所述交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在更新缓冲区中进行记录;当所述交换缓冲区的信息读取完毕后,将所述冲突缓冲区中的数据写入所述虚拟磁盘中相应的位置。
2.根据权利要求1所述的容灾实时数据复制方法,其特征在于:所述更新缓冲区和所述交换缓冲区均为包括若干个bit位的缓冲区;每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O。
3.根据权利要求1所述的容灾实时数据复制方法,其特征在于:还包括:继续将备份客户端上监控数据源的每个数据块的I/O变化记录在所述更新缓冲区上,每间隔一预设周期,重复进行数据一致性处理。
4.根据权利要求3所述的容灾实时数据复制方法,其特征在于:重复进行数据一致性处理时,在读取交换缓冲区中的I/O变化信息的过程中,当冲突缓冲区的使用率高于第一预设阈值,则停止读取交换缓冲区中的I/O变化信息,将I/O变化信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置;当冲突缓冲区的使用率低于第二预设阈值,则将更新缓冲区和交换缓冲区中的I/O变化信息进行合并,使更新缓冲区中仅保留更新缓冲区和交换缓冲区中仅出现一次的I/O变化信息,同时清除交换缓冲区中的I/O变化信息,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
5.根据权利要求4所述的容灾实时数据复制方法,其特征在于:当所述更新缓冲区和所述交换缓冲区均为包括若干个bit位的缓冲区;每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O时,将更新缓冲区和交换缓冲区进行合并后,对更新缓冲区和交换缓冲区中的每个bit位进行异或处理得到一个新的更新缓冲区。
6.一种备份客户端,用于容灾实时数据复制,其特征在于:所述备份客户端上的虚拟磁盘基于iSCSI协议挂载容灾控制台的一块磁盘区域;
所述备份客户端包括创建模块、初始化复制模块、监控模块和一致性处理模块;
所述创建模块用于在所述备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;
所述更新缓冲区和所述交换缓冲区为大小相等的两个缓冲区;所述更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化;
所述初始化复制模块用于在所述创建模块创建更新缓冲区、交换缓冲区和冲突缓冲区之后,将所述备份客户端上监控数据源全部复制到所述虚拟磁盘上;
所述监控模块用于在所述初始化复制模块开始复制的同时,持续监控所述备份客户端上监控数据源的每个数据块的I/O变化,并将I/O变化信息记录在所述更新缓冲区上;
所述一致性处理模块用于进行数据一致性处理;所述数据一致性处理包括:将所述更新缓冲区中的信息复制到所述交换缓冲区中;根据读取的所述交换缓冲区中的I/O变化信息,在所述备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到所述虚拟磁盘中相应的位置,再将所述交换缓冲区中该数据块对应的I/O变化信息清除;若在读取所述交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至所述冲突缓冲区中,并将所述交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在所述更新缓冲区中进行记录;
当所述交换缓冲区的信息读取完毕后,将所述冲突缓冲区中的数据写入所述虚拟磁盘中相应的位置。
7.根据权利要求6所述的备份客户端,其特征在于:所述更新缓冲区和所述交换缓冲区均为包括若干个bit位的缓冲区;每个bit位对应备份客户端上监控数据源的一个数据块,bit位的不同取值表示对应数据块是否有变化I/O。
8.根据权利要求6所述的备份客户端,其特征在于:还包括增量复制模块,所述增量复制模块用于每间隔一预设周期,根据所述监控模块在一致性处理之后监控并记录在所述更新缓冲区上的备份客户端上监控数据源的每个数据块的I/O变化,重复进行数据一致性处理。
9.根据权利要求8所述的备份客户端,其特征在于:所述增量复制模块还用于在读取交换缓冲区中的I/O变化信息的过程中,当冲突缓冲区的使用率高于第一预设阈值,则停止读取交换缓冲区中的I/O变化信息,将I/O变化信息直接记录在更新缓冲区中,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置;当冲突缓冲区的使用率低于第二预设阈值,则将更新缓冲区和交换缓冲区中的I/O变化信息进行合并,使更新缓冲区中仅保留更新缓冲区和交换缓冲区中仅出现一次的I/O变化信息,同时清除交换缓冲区中的I/O变化信息,并继续将冲突缓冲区中的数据写入虚拟磁盘中相应位置,直至读取完毕或者到达预设周期。
10.一种容灾实时数据复制系统,其特征在于:包括备份客户端和容灾控制台;所述容灾控制台基于iSCSI协议上将一块磁盘区域挂载到所述备份客户端上的虚拟磁盘;
所述备份客户端包括创建模块、初始化复制模块、监控模块和一致性处理模块;
所述创建模块用于在所述备份客户端上创建更新缓冲区、交换缓冲区和冲突缓冲区;
所述更新缓冲区和所述交换缓冲区为大小相等的两个缓冲区;所述更新缓冲区为用于记录备份客户端上监控数据源上每个数据块的I/O变化;
所述初始化复制模块用于在所述创建模块创建更新缓冲区、交换缓冲区和冲突缓冲区之后,将所述备份客户端上监控数据源全部复制到所述虚拟磁盘上;
所述监控模块用于在所述初始化复制模块开始复制的同时,持续监控所述备份客户端上监控数据源的每个数据块的I/O变化,并将I/O变化信息记录在所述更新缓冲区上;
所述一致性处理模块用于进行数据一致性处理;所述数据一致性处理包括:将所述更新缓冲区中的信息复制到所述交换缓冲区中;根据读取的所述交换缓冲区中的I/O变化信息,在所述备份客户端上监控数据源中读取在复制过程中有I/O变化的数据块并存储到所述虚拟磁盘中相应的位置,再将所述交换缓冲区中该数据块对应的I/O变化信息清除;若在读取所述交换缓冲区中的I/O变化信息的过程中,尚未读取的I/O变化信息所对应的数据块又发生了I/O变化,则读取该数据块存储至所述冲突缓冲区中,并将所述交换缓冲区中该数据块对应的I/O变化信息清除,然后将该I/O变化在所述更新缓冲区中进行记录;当所述交换缓冲区的信息读取完毕后,将所述冲突缓冲区中的数据写入所述虚拟磁盘中相应的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611055394.6A CN106776123B (zh) | 2016-11-25 | 2016-11-25 | 一种容灾实时数据复制方法及系统、备份客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611055394.6A CN106776123B (zh) | 2016-11-25 | 2016-11-25 | 一种容灾实时数据复制方法及系统、备份客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776123A CN106776123A (zh) | 2017-05-31 |
CN106776123B true CN106776123B (zh) | 2019-12-20 |
Family
ID=58913065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611055394.6A Active CN106776123B (zh) | 2016-11-25 | 2016-11-25 | 一种容灾实时数据复制方法及系统、备份客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776123B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844095B (zh) * | 2016-12-27 | 2020-04-28 | 上海爱数信息技术股份有限公司 | 文件备份方法、系统及具有该系统的客户端 |
CN107957920A (zh) * | 2017-10-31 | 2018-04-24 | 清远恒成智道信息科技有限公司 | 数据库备份系统 |
CN109814946B (zh) * | 2018-12-29 | 2022-03-25 | 深圳创新科技术有限公司 | 一种在XenServer中实现分布式存储的方法和装置 |
CN111045865A (zh) * | 2019-11-28 | 2020-04-21 | 上海英方软件股份有限公司 | 一种基于块复制的实时同步方法及系统 |
CN111651301A (zh) * | 2020-06-08 | 2020-09-11 | 上海英方软件股份有限公司 | 一种基于块复制的周期同步系统及方法 |
CN116431396B (zh) * | 2023-06-07 | 2023-08-25 | 成都云祺科技有限公司 | 一种卷实时备份缓存数据处理方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820426A (zh) * | 2010-04-22 | 2010-09-01 | 华中科技大学 | 一种在线备份服务软件中的数据压缩方法 |
CN102184079A (zh) * | 2011-04-29 | 2011-09-14 | 华中科技大学 | 一种raid5级别磁盘阵列的写性能优化方法 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN104461776A (zh) * | 2014-11-26 | 2015-03-25 | 上海爱数软件有限公司 | 基于CDP和iSCSI虚拟磁盘技术的应用容灾方法 |
CN104572355A (zh) * | 2015-01-30 | 2015-04-29 | 浪潮(北京)电子信息产业有限公司 | 一种异步远程复制数据的方法和设备 |
-
2016
- 2016-11-25 CN CN201611055394.6A patent/CN106776123B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820426A (zh) * | 2010-04-22 | 2010-09-01 | 华中科技大学 | 一种在线备份服务软件中的数据压缩方法 |
CN102184079A (zh) * | 2011-04-29 | 2011-09-14 | 华中科技大学 | 一种raid5级别磁盘阵列的写性能优化方法 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN104461776A (zh) * | 2014-11-26 | 2015-03-25 | 上海爱数软件有限公司 | 基于CDP和iSCSI虚拟磁盘技术的应用容灾方法 |
CN104572355A (zh) * | 2015-01-30 | 2015-04-29 | 浪潮(北京)电子信息产业有限公司 | 一种异步远程复制数据的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106776123A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776123B (zh) | 一种容灾实时数据复制方法及系统、备份客户端 | |
US10936447B2 (en) | Resynchronizing to a first storage system after a failover to a second storage system mirroring the first storage system | |
US9658798B2 (en) | Grouping of tracks for copy source to target destage on global mirror secondary | |
CN109074297B (zh) | 在同步复制的数据集中启用数据完整性检查和更快的应用恢复 | |
EP3062226B1 (en) | Data replication method and storage system | |
CN101799743B (zh) | 用于逻辑卷管理的方法和装置 | |
US9678686B2 (en) | Managing sequentiality of tracks for asynchronous PPRC tracks on secondary | |
US8706694B2 (en) | Continuous data protection of files stored on a remote storage device | |
US8370302B2 (en) | Method and apparatus for block based volume backup | |
CN103793271B (zh) | 用于在镜像卷之间进行切换的方法和系统 | |
EP2593867B1 (en) | Virtual machine aware replication method and system | |
JP5102826B2 (ja) | 複製およびプロビジョニング管理でのボリューム・コンテナの使用 | |
US8473462B1 (en) | Change tracking for shared disks | |
JP7004714B2 (ja) | 整合したポイントインタイム・スナップ・コピーの非同期のローカル生成およびリモート生成のためのコンピュータ・プログラム、システム、および方法 | |
CN114911649A (zh) | 备份和恢复数据的方法和系统 | |
US20110061049A1 (en) | Storage system, and remote copy control method therefor | |
CN109313595B (zh) | 跨平台复制 | |
WO2004025466A2 (en) | Distributed computing infrastructure | |
CN105339903A (zh) | 恢复文件系统对象 | |
CN102014152A (zh) | 一种远程复制系统及其方法 | |
CN104641650A (zh) | 在数据存储子系统中的源引用复制 | |
WO2013136339A1 (en) | Regulating replication operation | |
US9800569B2 (en) | Data protection backup agent management | |
JP2006092535A (ja) | ストレージネットワークにおける内部ミラーオペレーション | |
US11461018B2 (en) | Direct snapshot to external storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |