《异步远程复制系统及其维护数据一致性的方法.pdf》由会员分享,可在线阅读,更多相关《异步远程复制系统及其维护数据一致性的方法.pdf(12页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102790801 A (43)申请公布日 2012.11.21 C N 1 0 2 7 9 0 8 0 1 A *CN102790801A* (21)申请号 201210210788.X (22)申请日 2012.06.20 H04L 29/08(2006.01) (71)申请人浪潮(北京)电子信息产业有限公司 地址 100085 北京市海淀区上地信息路2号 2-1号C栋1层 (72)发明人徐旸 张延枫 (74)专利代理机构北京安信方达知识产权代理 有限公司 11262 代理人栗若木 曲鹏 (54) 发明名称 异步远程复制系统及其维护数据一致性的方 法 (57) 摘。
2、要 本发明披露了异步远程复制系统及其维护数 据一致性的方法,其中系统包括通过网络连接的 本地服务器和远程备份服务器,其中:本地服务 器通过本地的远程复制模块将应用模块的写入请 求加入到新建的写入请求组或已建立且开放的写 入请求组,将写入请求组编号携带在写入请求中 发送到远程备份服务器,并向磁盘提交该写入请 求;远程备份服务器通过本地的远程复制模块将 接收的写入请求置入写入请求队列中未关闭的写 入请求组。本发明可有效识别出所有潜在的写入 依赖关系,解决了因写入依赖关系而缺乏数据一 致性保护的问题,能够可靠地保证异步远程复制 数据的一致性。 (51)Int.Cl. 权利要求书2页 说明书6页 附图。
3、3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 6 页 附图 3 页 1/2页 2 1.一种异步远程复制系统,包括通过网络连接的本地服务器和远程备份服务器,其特 征在于: 本地服务器,用于通过本地的远程复制模块将应用模块的写入请求加入到新建的写入 请求组或已建立且开放的写入请求组,将写入请求组编号携带在所述写入请求中发送到远 程备份服务器,并向磁盘提交该写入请求; 远程备份服务器,用于通过本地的远程复制模块将接收的写入请求置入写入请求队列 中未关闭的写入请求组。 2.按照权利要求1所述的系统,其特征在于, 所述远程备份服务器的所述写入请求队列包括N。
4、个已关闭的写入请求组和至多一个 未关闭的写入请求组,所述N为大于或等于零的整数;其中,所述已关闭的写入请求组含有 一个或多个写入请求和一个组关闭信号;所述未关闭的写入请求组含有一个或多个写入请 求;每一写入请求中含有写入请求组编号以及请求写入的内容。 3.按照权利要求2所述的系统,其特征在于, 所述本地服务器的远程复制模块在收到所述应用模块的写入请求后,若判断当前没有 开放的写入请求组,或者判断当前有开放的写入请求组,且继续判断该写入请求组内有写 入请求已被磁盘完成,或者判断该写入请求组内没有写入请求被磁盘完成,但该写入请求 组大小已达到上限,则关闭该写入请求组停止加入新的写入请求,并向所述远。
5、程备份服务 器发送组关闭信号,同时将关闭的写入请求组内的写入请求仍交由磁盘完成,然后新建写 入请求组并为该请求组分配编号,将携带有写入请求组编号的写入请求加入新建的写入请 求组,将新加入的该写入请求发送给远程备份服务器。 4.按照权利要求3所述的系统,其特征在于, 所述远程备份服务器依次读取所述写入请求队列中的元素,若判断该元素是所述组关 闭信号,将该组关闭信号对应的写入请求组标识为已关闭,并停止继续读取该写入请求队 列。 5.按照权利要求3所述的系统,其特征在于, 所述本地服务器的远程复制模块若判断所述写入请求组内没有写入请求被磁盘完成, 且继续判断该写入请求组大小尚未达到上限,则将携带有写。
6、入请求组编号的写入请求加入 当前写入请求组;将新加入的该写入请求发送给远程备份服务器。 6.按照权利要求5所述的系统,其特征在于, 所述远程备份服务器的远程复制模块在判断所述元素是写入请求组的组关闭信号停 止继续读取写入请求队列后,若继续判断与该组关闭信号对应的写入请求组内的写入请求 全部完成,则向所述本地服务器发送写入请求组完成信号,然后继续读取所述写入请求队 列中的元素并进行后续操作;若继续判断与该组关闭信号对应的写入请求组内的写入请求 未全部完成,则等待写入请求组内的写入请求全部完成后,执行后续的操作。 7.一种异步远程复制系统维护数据一致性的方法,涉及所述系统中通过网络连接的本 地服务。
7、器和远程备份服务器,该方法包括: 本地服务器将应用模块的写入请求加入到新建的写入请求组或已建立且开放的写入 请求组,将写入请求组编号携带在该写入请求中发送到远程备份服务器,并向磁盘提交该 写入请求; 权 利 要 求 书CN 102790801 A 2/2页 3 远程备份服务器将接收的写入请求置入一写入请求队列中未关闭的写入请求组。 8.按照权利要求6所述的方法,其特征在于,所述远程备份服务器的所述写入请求队 列包括N个已关闭的写入请求组和至多一个未关闭的写入请求组,所述N为大于零或等于 零的整数;所述已关闭的写入请求组含有一个或多个写入请求和一个组关闭信号,所述未 关闭的写入请求组含有一个或多。
8、个写入请求,每一写入请求中含有写入请求组编号以及请 求写入的内容。 9.按照权利要求7所述的方法,其特征在于,所述本地服务器具体执行的流程包括: 所述本地服务器在收到所述应用模块的写入请求后,若判断当前没有开放的写入请求 组,或者判断当前有开放的写入请求组,且继续判断该写入请求组内有写入请求已被磁盘 完成,或者判断该写入请求组内没有写入请求被磁盘完成,但该写入请求组大小已达到上 限,则关闭该写入请求组停止加入新的写入请求,并向所述远程备份服务器发送组关闭信 号,同时将关闭的写入请求组内的写入请求仍交由磁盘完成,然后新建写入请求组并为该 请求组分配编号,将携带有写入请求组编号的写入请求加入新建的。
9、写入请求组,将该写入 请求发送给远程备份服务器。 10.按照权利要求9所述的方法,其特征在于,所述本地服务器具体执行的流程还包 括: 所述本地服务器若判断所述写入请求组内没有写入请求被磁盘完成,且继续判断该 写入请求组大小尚未达到上限,则将携带有写入请求组编号的写入请求加入当前写入请求 组;将该写入请求发送给远程备份服务器。 11.按照权利要求9所述的方法,其特征在于,还包括: 所述远程备份服务器依次读取所述写入请求队列中的元素,若判断该元素是所述组关 闭信号,将该组关闭信号对应的写入请求组标识为已关闭,并停止继续读取该写入请求队 列。 12.按照权利要求11所述的方法,其特征在于,所述远程备。
10、份服务器在判断所述元素 是所述组关闭信号,将该组关闭信号对应的写入请求组标识为已关闭,并停止继续读取写 入请求队列后,还包括: 若继续判断与该组关闭信号对应的写入请求组内的写入请求全部完成,则向所述本地 服务器发送写入请求组完成信号,然后继续依次读取所述写入请求队列中的元素并执行后 续流程;若继续判断与该组关闭信号对应的写入请求组内的写入请求未全部完成,则等待 写入请求组内的写入请求全部完成后,执行后续的流程。 权 利 要 求 书CN 102790801 A 1/6页 4 异步远程复制系统及其维护数据一致性的方法 技术领域 0001 本发明涉及计算机数据存储中远程异步镜像复制技术,尤其涉及异步。
11、远程复制系 统及其维护数据一致性的方法。 背景技术 0002 随着计算机应用的不断普及,计算机用户对数据安全的要求也日益增长。为了避 免各种天灾人祸引起的数据丢失可能给用户带来极大损失,开发出了数据实时同步到远程 服务器上的远程复制技术。在意外发生时,通过该技术能够利用备份到远程服务器上的数 据,对本地服务器上的数据进行恢复,从而保障了数据的物理安全。 0003 远程复制技术可以分为两类方法:同步复制和异步复制。其中,对于上层应用的数 据,同步复制是指远程复制软件确认数据在本地服务器和远程备份服务器上都已写入成功 后,才向上层应用报告数据写入成功;异步复制是指远程复制软件确认数据已在本地服务 。
12、器写入成功后,便向上层应用报告数据写入成功,而不是等到数据在远程备份服务器上写 入成功后再报告。由于远程复制步骤会消费一定的时间,故同步复制会对上层应用的性能 产生影响。同步复制中写入请求的执行顺序在本地服务器和备份服务器上是一致的。异步 复制对上层应用的影响较小,但网络传输、缓存机制等因素会使得备份服务器上写入请求 的完成顺序可能和本地服务器不一致。 0004 通常,上层应用的写入数据是以写入请求的形式传递给远程复制软件,当写入请 求完成即表示数据写入成功。在同步复制中,由于写入请求的执行顺序在本地服务器和远 程备份服务器上总是一致的,故上层应用发出的某个写入请求,常是基于之前某一写入请 求。
13、的完成而发出的,两个写入请求之间存在依赖关系,且一般不会被破坏。而在异步复制 中,由于操作系统缓存机制、磁盘缓存机制、网络缓存机制、网络延迟等多种因素的存在,导 致远程备份服务器上写入请求的完成顺序可能和本地服务器不一致,由此使得远程备份服 务器上写入请求间的依赖关系可能会被破坏。如果本地服务器在依赖关系在被破坏时离 线,则备份服务器上保存的数据就可能并不是本地服务器数据任何一个时刻的镜像,即数 据的一致性被破坏了。在此情况下,上层应用无法使用错误的数据恢复生产,由此会给用户 造成严重的损失。 0005 现有的一种在异步远程复制系统中保护数据一致性的方法,是通过本地服务器上 的远程复制软件对每。
14、一个写入请求打上时间戳,由远程备份服务器上的远程复制软件根据 时间戳来还原写入请求的发出顺序。这种方法由于需要在传输给远程备份服务器的写入请 求上附加时间戳信息,一方面增大了对网络资源的消耗,另一方面远程备份服务器上的远 程复制软件必须严格按照时间戳顺序执行写入请求,由此会使得其中不存在写入依赖关系 的写入请求的执行顺序无法改变,因而无法利用操作系统缓存及磁盘缓存机制提高性能。 0006 因此,需要相应地提供一种改进的远程复制系统及其维护数据一致性的方法,能 够更有效地克服写入依赖性被破坏的问题,而使得写入的数据的一致性得到维护。 说 明 书CN 102790801 A 2/6页 5 发明内容。
15、 0007 本发明所要解决的技术问题是提供一种异步远程复制系统及其维护数据一致性 的方法,能够更有效地克服写入依赖性而使得写入的数据得到一致性的维护。 0008 为了解决上述技术问题,本发明提供了一种异步远程复制系统,包括通过网络连 接的本地服务器和远程备份服务器,其特征在于: 0009 本地服务器,用于通过本地的远程复制模块将应用模块的写入请求加入到新建的 写入请求组或已建立且开放的写入请求组,将写入请求组编号携带在写入请求中发送到远 程备份服务器,并向磁盘提交该写入请求; 0010 远程备份服务器,用于通过本地的远程复制模块将接收的写入请求置入写入请求 队列中未关闭的写入请求组。 0011。
16、 进一步地, 0012 远程备份服务器的写入请求队列包括N个已关闭的写入请求组和至多一个未关 闭的写入请求组,N为大于或等于零的整数;其中,已关闭的写入请求组含有一个或多个写 入请求和一个组关闭信号;未关闭的写入请求组含有一个或多个写入请求;每一写入请求 中含有写入请求组编号以及请求写入的内容。 0013 进一步地, 0014 本地服务器的远程复制模块在收到应用模块的写入请求后,若判断当前没有开放 的写入请求组,或者判断当前有开放的写入请求组,且继续判断该写入请求组内有写入请 求已被磁盘完成,或者判断该写入请求组内没有写入请求被磁盘完成,但该写入请求组大 小已达到上限,则关闭该写入请求组停止加。
17、入新的写入请求,并向远程备份服务器发送组 关闭信号,同时将关闭的写入请求组内的写入请求仍交由磁盘完成,然后新建写入请求组 并为该请求组分配编号,将携带有写入请求组编号的写入请求加入新建的写入请求组,将 新加入的该写入请求发送给远程备份服务器。 0015 进一步地, 0016 远程备份服务器依次读取写入请求队列中的元素,若判断该元素是组关闭信号, 将该组关闭信号对应的写入请求组标识为已关闭,并停止继续读取该写入请求队列。 0017 进一步地, 0018 本地服务器的远程复制模块若判断写入请求组内没有写入请求被磁盘完成,且继 续判断该写入请求组大小尚未达到上限,则将携带有写入请求组编号的写入请求加。
18、入当前 写入请求组;将新加入的该写入请求发送给远程备份服务器。 0019 进一步地, 0020 远程备份服务器的远程复制模块在判断元素是写入请求组的组关闭信号停止继 续读取写入请求队列后,若继续判断与该组关闭信号对应的写入请求组内的写入请求全部 完成,则向本地服务器发送写入请求组完成信号,然后继续读取写入请求队列中的元素并 进行后续操作;若继续判断与该组关闭信号对应的写入请求组内的写入请求未全部完成, 则等待写入请求组内的写入请求全部完成后,执行后续的操作。 0021 为了解决上述技术问题,本发明提供了一种异步远程复制系统维护数据一致性的 方法,涉及该异步远程复制系统中通过网络连接的本地服务器。
19、和远程备份服务器,该方法 包括: 说 明 书CN 102790801 A 3/6页 6 0022 本地服务器将应用模块的写入请求加入到新建的写入请求组或已建立且开放的 写入请求组,将写入请求组编号携带在该写入请求中发送到远程备份服务器,并向磁盘提 交该写入请求; 0023 远程备份服务器将接收的写入请求置入一写入请求队列中未关闭的写入请求组。 0024 进一步地,远程备份服务器的写入请求队列包括N个已关闭的写入请求组和至多 一个未关闭的写入请求组,N为大于零或等于零的整数;已关闭的写入请求组含有一个或 多个写入请求和一个组关闭信号,未关闭的写入请求组含有一个或多个写入请求,每一写 入请求中含有。
20、写入请求组编号以及请求写入的内容。 0025 进一步地,所述本地服务器具体执行的流程包括: 0026 本地服务器在收到应用模块的写入请求后,若判断当前没有开放的写入请求组, 或者判断当前有开放的写入请求组,且继续判断该写入请求组内有写入请求已被磁盘完 成,或者判断该写入请求组内没有写入请求被磁盘完成,但该写入请求组大小已达到上限, 则关闭该写入请求组停止加入新的写入请求,并向远程备份服务器发送组关闭信号,同时 将关闭的写入请求组内的写入请求仍交由磁盘完成,然后新建写入请求组并为该请求组分 配编号,将携带有写入请求组编号的写入请求加入新建的写入请求组,将该写入请求发送 给远程备份服务器。 002。
21、7 进一步地,本地服务器具体执行的流程还包括: 0028 本地服务器若判断写入请求组内没有写入请求被磁盘完成,且继续判断该写入请 求组大小尚未达到上限,则将携带有写入请求组编号的写入请求加入当前写入请求组;将 该写入请求发送给远程备份服务器。 0029 进一步地,该方法还包括: 0030 远程备份服务器依次读取写入请求队列中的元素,若判断该元素是组关闭信号, 将该组关闭信号对应的写入请求组标识为已关闭,并停止继续读取该写入请求队列。 0031 进一步地,远程备份服务器在判断元素是所述组关闭信号,将该组关闭信号对应 的写入请求组标识为已关闭,并停止继续读取写入请求队列后,还包括: 0032 若继。
22、续判断与该组关闭信号对应的写入请求组内的写入请求全部完成,则向本地 服务器发送写入请求组完成信号,然后继续依次读取写入请求队列中的元素并执行后续流 程;若继续判断与该组关闭信号对应的写入请求组内的写入请求未全部完成,则等待写入 请求组内的写入请求全部完成后,执行后续的流程。 0033 本发明通过识别写入请求流中写入请求的完成顺序对写入请求进行分组,可有效 识别出所有潜在的写入依赖关系,解决了因写入依赖关系而缺乏数据一致性保护的问题, 能够可靠地保证异步远程复制数据的一致性。由于本发明只在远程复制软件中增加了写入 请求组关闭和写入请求组完成两种简单信号,对网络传输增加的负担可以小到忽略不计; 并。
23、且通过将同一写入请求组内的写入请求直接提交给底层磁盘,而毋需按照一定顺序执 行,由此可以充分地利用操作系统、磁盘的缓存机制来提高写入性能。 附图说明 0034 图1为本发明的异步远程复制系统实施例的结构框图; 0035 图2为图1所示的系统实施例所使用的写入请求队列的结构示意图; 说 明 书CN 102790801 A 4/6页 7 0036 图3为异步远程复制系统维护数据一致性的方法中本地服务器执行实例流程图; 0037 图4为异步远程复制系统维护数据一致性的方法中远程备份服务器执行实例流 程图。 具体实施方式 0038 以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以。
24、 下列举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。 0039 本发明的异步远程复制系统实施例其结构如图1所示,包括通过网络连接的本地 服务器和远程备份服务器,其中: 0040 本地服务器,用于通过本地远程复制模块将应用模块的写入请求加入到新建的写 入请求组或已建立且开放的写入请求组,将写入请求组编号携带在写入请求中发送到远程 备份服务器,并向磁盘提交该写入请求; 0041 远程备份服务器,用于通过本地远程复制模块将接收的写入请求置入写入请求队 列中未关闭的写入请求组。 0042 在上述系统实施例中,远程备份服务器的写入请求队列的结构如图2所示,它包 括N(N为大于或等于0。
25、的整数)个已关闭的写入请求组和至多一个未关闭的写入请求组, 其中已关闭的写入请求组含有一个或多个写入请求和一个组关闭信号;未关闭的写入请 求组仅含有一个或多个写入请求;每一写入请求中含有写入请求组编号以及请求写入的内 容。 0043 在上述系统实施例中, 0044 本地服务器的远程复制模块在收到应用模块的写入请求后,若判断当前没有开放 的写入请求组,或者判断当前有开放的写入请求组,且继续判断该写入请求组内有写入请 求已被磁盘完成,或者判断该写入请求组内没有写入请求被磁盘完成,但该写入请求组大 小已达到上限,则关闭该写入请求组停止加入新的写入请求,并向远程备份服务器发送组 关闭信号,同时关闭的写。
26、入请求组内的写入请求仍继续由磁盘完成,然后新建写入请求组 并为该请求组分配编号,将携带有写入请求组编号的写入请求加入新建的写入请求组;将 该写入请求发送给远程备份服务器。 0045 在上述系统实施例中, 0046 远程备份服务器依次读取写入请求队列中的元素,若判断该元素是写入请求组关 闭信号,则将该组关闭信号对应的写入请求组标识为已关闭,并停止继续读取写入请求队 列。 0047 本发明通过上述做法实现了有效地识别所有写入请求潜在的写入依赖关系,避免 出现因写入依赖关系混乱而导致数据一致性被破坏的问题。也就是说,本地服务器的远程 复制模块一旦发现当前写入请求组内有写入请求被磁盘完成,便关闭该写入。
27、请求组停止加 入新请求,并向远程备份服务器发送组关闭信号;远程备份服务器根据从写入请求队列中 读取的该组关闭信号来关闭该写入请求组,并停止继续读取写入请求队列。这样就可以完 全避免写入依赖关系产生混乱,从而有效地维护数据一致性。 0048 在上述系统实施例中, 0049 本地服务器的远程复制模块若判断该写入请求组内没有写入请求被磁盘完成,且 说 明 书CN 102790801 A 5/6页 8 继续判断该写入请求组大小尚未达到上限,则将携带有写入请求组编号的写入请求加入当 前写入请求组;将该写入请求发送给远程备份服务器。 0050 在上述系统实施例中, 0051 远程备份服务器的远程复制模块在。
28、判断写入请求队列中的该元素是组关闭信号 后,停止继续读取写入请求队列,若继续判断与该组关闭信号对应的写入请求组内的写入 请求全部完成,则向本地服务器发送写入请求组完成信号,然后继续从写入请求队列中依 次读取写入请求组内的元素及其后续操作;若继续判断与该组关闭信号对应的写入请求组 内的写入请求未全部完成,则等待写入请求组内的写入请求全部完成后,执行后续的操作。 0052 本发明针对上述系统实施例,相应地还提供了异步远程复制系统维护数据一致性 的方法实施例,涉及通过网络连接的本地服务器和远程备份服务器,其流程包括: 0053 本地服务器将应用模块的写入请求加入到新建的写入请求组或已建立且开放的 写。
29、入请求组,将写入请求组编号携带在该写入请求中发送到远程备份服务器,并向磁盘提 交该写入请求; 0054 远程备份服务器将接收的写入请求依次置入写入请求队列中未关闭的写入请求 组。 0055 在上述方法实施例中,本地服务器具体执行的流程如图3所示,包括如下步骤: 0056 110:接收上层的应用模块发出的写入请求; 0057 120:判断当前是否有开放的写入请求组,是则执行下一步骤,否则执行步骤150; 0058 130:判断该开放的写入请求组内是否有已完成的请求,是则执行下一步骤,否则 执行步骤170; 0059 140:关闭写入请求组,并向远程备份服务器发送请求组关闭信号; 0060 关闭写。
30、入请求组即停止加入新的写入请求。 0061 150:新建写入请求组,并为该请求组分配编号,携带在写入请求中加入到新建的 写入请求组; 0062 160:向远程备份服务器发送写入请求,结束流程; 0063 170:判断写入请求组大小是否达到上限,是则执行步骤140,否则执行步骤180; 0064 180:将当前写入请求组编号携带在写入请求中加入该写入请求组,执行步骤 160。 0065 在上述方法实施例中,远程备份服务器具体执行的流程如图4所示,包括如下步 骤: 0066 200:判断是否接收到写入请求,是则执行下一步骤,否则执行步骤210; 0067 201:将接收的写入请求置入写入请求队列中。
31、未关闭的写入请求组; 0068 210:从写入请求队列中读取一个元素; 0069 远程备份服务器预先配置一写入请求队列,该队列包括N(N为大于或等于0的整 数)个已关闭的写入请求组和至多一个未关闭的写入请求组,其中已关闭的写入请求组含 有一个或多个写入请求和一个组关闭信号;未关闭的写入请求组仅含有一个或多个写入请 求;每一写入请求中含有写入请求组编号以及请求写入的内容。 0070 220:判断该元素是否为组关闭信号,是则执行下一步骤,否则执行步骤260; 0071 230:停止读取写入请求队列; 说 明 书CN 102790801 A 6/6页 9 0072 240:判断与该组关闭信号对应的写。
32、入请求组的写入请求是否已全部完成,是则执 行下一步骤,否则执行步骤270; 0073 250:向本地服务器发送写入请求组完成信号,返回步骤200执行; 0074 260:向磁盘提交该写入请求,返回步骤200执行; 0075 270:等待请求组内的写入请求完成,返回步骤240执行。 0076 本发明通过对写入请求流中的写入请求的完成顺序进行识别,将写入请求分组排 列在写入请求队列中,可有效避免写入请求潜在的写入依赖关系发生混乱,由此解决了异 步远程复制系统中对写入依赖关系而缺乏保护的问题,保证了异步远程复制系统中的数据 一致性。由于本发明只在远程复制软件模块中增加了组关闭和写入请求组完成这两种简。
33、单 信号,对网络传输增加的负担可以小到忽略不计。并且同一写入请求组内的写入请求直接 提交给底层磁盘,并不非得按照顺序执行,由此可充分利用操作系统、磁盘的缓存机制来提 高磁盘的写入性能。 0077 虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采 用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本 发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。 说 明 书CN 102790801 A 1/3页 10 图1 图2 说 明 书 附 图CN 102790801 A 10 2/3页 11 图3 说 明 书 附 图CN 102790801 A 11 3/3页 12 图4 说 明 书 附 图CN 102790801 A 12 。