首页 > 编程知识 正文

容灾备份软件,数据库读写分离,主从同步实现方法

时间:2023-05-06 20:30:29 阅读:58806 作者:3666

7.2.3异步数据复制方式

从前面的分析来看,同步数据的灾难恢复一般只能放在较短的距离(10KM-100KM ),大于这个距离就没有实用价值。 因为无论是在1,000 km的距离,还是以4.5MB的速度将数据复制到异地,每个I/O的响应时间都将超过10ms,而且该响应时间太慢。

异步数据灾难是在“线路带宽和距离确保数据复制过程完成,同时异地数据复制不影响生产系统性能”的要求下提出的。 考虑到异步数据的容错能力,必须注意以下技术条件和事实:

带宽必须将本地生产数据几乎完全复制到异地灾难恢复站点,并考虑距离对传输能力的影响。

根据上述估算,在1000公里范围内,能够支持足够带宽线路的I/O通信量最大(块大小10KM ),为1.4MB3600秒24小时=120GB/天

异地灾难恢复远程数据比本地生产站点上的数据延迟一定的时间,具体取决于所使用的技术、带宽、距离和数据流。 一般来说,基于软件的数据复制技术完全提供了排队数据包和重新发送断点的机制,以确保灾难发生时的数据一致性。

异步灾难对本地系统的性能几乎没有影响。

与同步传输方案相比,异步传输方案对带宽和距离的要求非常低,只要在一段时间内可以将所有数据复制到异地即可,异步传输方案也不会对APP应用系统的性能造成很大影响。 缺点是,如果本地生产数据发生灾难,异地系统上的数据可能会暂时丢失。 如果广域网速度较低且事务未完全发送,则不影响一致性。 类似于本地数据库主机的异常关闭。

在异步传输模式下进行异地数据复制的技术包括

基于主机逻辑卷的数据复制方案

基于磁盘系统I/O控制器的数据复制方式

基于主机逻辑卷的数据复制方案

首先,关于这种方法,这是以VERITAS VVR为例的,但并不是所有其他进行基于主机的复制的软件都采用相同的方法,这也确保了其他软件具有APP应用程序的价值

VERITAS卷复制器(vvr )利用基于卷和日志的复制技术,确保即使本地系统发生自然灾害,异地数据也始终可用。

VERITAS VVR在异步模式下使用Log技术跟踪未及时复制的数据块。 此日志是按到达顺序排列的服务堆栈,每个I/O操作首先放在此日志中,然后按到达顺序复制到异地服务器系统。

下图是其结构的原理。

存储工程师可以验证整个I/O和复制过程,如下所示:

本地主机系统向逻辑卷发出第一个I/O请求a。

逻辑卷向本地磁盘系统发出I/O请求;

在对本地磁盘系统进行I/O的同时,逻辑卷向本地磁盘系统上的VVR Log发出相同的写入请求。

本地磁盘系统完成I/O; 向逻辑卷通知“I/O完成”;

VR完成对此I/O的远程操作并通知逻辑卷;

卷向主机确认“I/O完成”。

服务器的另一个进程: VVR进程。 将Log队列中的I/O复制到异地服务器。 此过程与上述I/O过程在时间上无关。 上图标记:“I”和“II”。

I:本地VVR进程从Log队列中检索第一个到达的I/O,并将其复制到异地服务器

II:异地服务器从本地服务器VVR接收I/O请求,将适当的数据写入异地磁盘系统,然后通知本地系统VVR进程请求下一个I/O。

在此,跟踪没有及时复制的数据块的Log技术是确保异地数据的利用的必要条件。 数据库的I/O有严格的顺序。 这个顺序是保证数据库完整性所必需的。 完整性受损的数据库一般不可用。 例如,无法启动或打开数据库,也无法修复。 本地数据库的完整性由数据库本身维护。 如果数据库实时复制到异地,则异地磁盘I/O上的I/O顺序和本地I/O顺序必须完全相同,以确保异地数据库的完整性。 否则,无法保证异地数据库的完整性。

VERITAS VVR使用日志技术(支持先到先得服务)提供I/O控制机制,无论异地数据比本地数据晚多少,VERITAS VVR都可以保持异地数据库数据的完整性例如,如果本地系统在12点发生自然灾害,并且某些数据未及时复制到异地,因此未复制10分钟的数据,则异地系统中会存在11点50分以前的所有数据,并且此数据库

目前基于磁盘系统的异地数据复制技术采用了Bitmap和Timestamp技术。 这两种技术都不能确保异地本地数据复制的顺序严格且与本地I/O的顺序相同,因此不能保证异地数据库的完整性。

在位图(Bitmap )技术中,未被复制的数据块在一个比特中与每一块(例如,32KB )相对应,并且如果某个比特被设置为“1”,则相应的数据块被修改,等待处理) 可以看出,如果一个或多个数据块没有立即复制,则系统选择任意块,在到达的时间前后不进行复制,因为系统不能确认应该先将哪个数据块复制到异地。

可见,这种方法不能从根本上保证异地数据库数据的完整性、一致性。

时间测量

amp 方式是对每个未及时传送的数据块盖上一个时间戳。从表面上看,由于时间戳的关系,好像能确定一个数据块被修改的时间顺序了。其实不然:当一个未被及时复制的数据块被第2 次修改,并盖上新的时间戳时,数据复制的顺序就被破坏了。例如:

现在有10 块数据块未被复制,编号“1、2、3、4、5、6、7、8、9、10”;这时,第3 块数据被再次修改,并被盖上一个新的时间戳“11”;这时,系统会按这样的次序进行复制:“1、2、(没有3)、4、5、6、7、8、9、10、11”。存储工程师可以看到,在复制进行到“4~10”之间时,异地数据的完整性被破坏。

事实上,在一个运行繁忙的系统中,出现这种情况机率极高,甚至每时每刻都处在这种状态之下。所以,本着严格的,对系统可用性负责任的态度,可以认为“Timestamp”的技术虽然比Bitmap 技术有一定优势,但实际上也无法保证异地数据的完整性和可用性。

Bitmap 和Timestamp 方式的技术弱点:没有log;

作为磁盘系统内置的数据复制功能,传统的磁盘管理模式没有考虑在磁盘系统内部开辟出一个磁盘块给磁盘系统控制器本身使用,所以,磁盘系统无法采用log 模式进行异步数据复制。

磁盘系统保留异步传输模式的目的:复制,但不是容灾复制;

数据复制的目的不仅仅是容灾。数据容灾要求两地时时保持连接,数据复制过程在任一时间都在进行(除非有线路或设备故障)。而非容灾性复制只要求在某一个时间段里将数据复制到异地,复制告一段落后(在某一时刻完全同步),复制工作会暂停。这种复制可能是为一个特殊目的只做一次,如在线业务迁移;也可能每天或每月追加一次。这样,在异地就会存在一份最大损失数据量为1 天或1 个月的生产数据复制品,其对数据的保障能力,如同磁盘备份。这种方式复制数据的目的包括:1)在异地保存一份备份数据(如同磁带备份异地保存)。2)在线业务迁移,当信息中心或其中的一个服务要迁移到另一个地方,又希望少停机(实际上也可用磁带备份和恢复来实现)。3)利用与磁盘快照技术结合,为异地开发中心提供一个与生产数据尽量相同的测试数据源。当然,也可用于其它可能的目的。

综上所述,可以看出,虽然基于磁盘系统的异地数据复制功能有异步传输模式,但实际上并不支持异步数据容灾,只有像VERITAS Volume Replicator 这样基于先进先出的Log 技术的解决方案才真正支持异步数据容灾

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。