当前位置:首页 > 壁挂炉 > 文章正文

详解容灾架构中的数据复制技能

编辑:[db:作者] 时间:2024-08-25 05:16:41

① 构造化数据:以构造化数据为主的数据复制技能。

详解容灾架构中的数据复制技能

② 分散在不同数据中央:数据副本必须分布在不同的数据中央。

就详细的实现技能而言,就目前业界发展来看,可以实现数据复制的技能多种多样,有基于数据库层面的数据复制技能,例如Oracle公司的Active Data Gurad、IBM公司的 Db2 HADR等;有基于系统层面的数据复制技能,例如赛门铁克的vxvm、传统的逻辑卷管理(LVM)、Oracle公司的自动存储管理(ASM)冗余技能、IBM公司的GPFS等;有基于存储虚拟化实现的数据复制技能,例如EMC公司Vplex Stretch Cluster、IBM公司SVC Split Cluster、NetAPP公司Metro Cluster等;也有基于存储底层实现的数据复制技能,例如IBM公司的DS8000 PPRC技能、EMC公司的SRDF技能、HP公司的CA技能等等。
每一种技能都有实在现的条件条件,也有各自的技能特点和实现的不同效果。

2. 企业容灾中的数据复制技能的分类

2.1 同步复制和异步复制

从RPO维度来划分,大的方面可以分为同步复制和异步复制。

① 同步复制:哀求每一个写入操作在实行下一个操作处理之前,在源端和目标端都能完成。
特点是数据丢失少,会影响生产系统性能,除非目标系统物理上离生产系统比较近。

② 异步复制:在处理下一个操作前, 只须要完成源端数据写入即可, 不等待数据复制到目标系统中。
特点是复制的数据与源数据有韶光差,但这种复制对生产系统性能影响较小。

那么这里有一个问题“如何界定一个写入操作完成?”,一样平常来讲,存储真个写入以存储设备的缓存写入为标准,数据库的写入以数据库的事务日志落盘为标准。

如果用图的办法来差异同步和异步之前的差异就在于:同步须要等待玄色和赤色的ACK返回才会实行下一个IO,而异步只须要等待玄色的ACK返回即可实行下一个IO。
从结果上来看,等待赤色的ACK返回显然须要花费更多韶光,由于A和B分别位于不同的数据中央;但是等待会带来RPO=0的回报。

2.2 根据实现复制的手段来划分

根据上图,数据复制终极完成的结果是在两个磁盘介质上完成同一个IO数据,但是将来自客户真个单个IO要求镜像为两个IO的源头可以有三种不同的选择:操作系统层面、数据库层面以及存储层面。

1). 操作系统层面的复制技能:以LVM、VXVM等逻辑卷镜像为根本,IO写入的时候可以在组成同一个逻辑卷的物理镜像上同时写入数据,底层数据写入是须要通过SAN协议完成的。

2). 数据库层面的复制技能:一种是类似操作系统逻辑卷的模式,比如ORACLE的ASM,它也是一种逻辑卷管理模式,同样也可以通过多个物理镜像来组成一个逻辑卷,从而通过镜像复制的办法完成数据副本的同时写入。
实质上它与操作系统层面的逻辑卷镜像技能没有差异,只是它离数据库更近,数据库更懂它。
其余一种是通过数据库事务日志复制的办法将数据修正行为在其余一个备库上重新演绎一遍,终极可以达到使数据结果同等的目的。

3). 存储层面的复制技能:一种是通过存储网关将两个物理存储卷组成一个逻辑存储卷,通过镜像复制的办法完成数据在存储落盘时的双写。
实质上它与操作系统层面的逻辑卷镜像技能也没有差异,只是它选择在存储层面实现。
其余一种是通过存储介质之间以块拷贝的办法来实现数据副本的冗余。

究其事理,实在无论从哪个层面来实现,这些技能从事理上可以划分为三种类型:

1、IO双写(操作系统逻辑卷镜像、ASM、存储网关镜像.etc)

2、事务回放(以Oracle ADG为代表.etc)

3、数据单元拷贝(以存储CA、DP技能为代表的存储复制技能)

3. 系统层如何实现数据复制?

3.1 通过操作系统逻辑卷镜像实现数据复制

对付操作系统层面的逻辑卷管理器LVM模式来讲,是将底层来自不同数据中央的的两个物理存储卷作为物理镜像( PV) 组合成一个可用的逻辑存储卷( LV) 供应给上层运用来存放数据,本地物理卷和远程物理卷分别是由存储经由本地SAN环境以及跨数据中央SAN环境供应给做事器操作系统层。

建立逻辑卷的时候就已经定义好LV和PV的映射关系,并且逻辑页(LP ) 和物理页(PP ) 的映射关系也已经完备定义好了。
这种复制只能采取同步复制机制,复制工具为逻辑卷层的变革Block,其过程为:捕获逻辑页( LP) 当中的变革块,同步写两个物理页( PP) ,即是在一个主机年夜将同一数据写入两个不同的磁盘,本地写完得到ACK确认,并且远端写完也得到ACK确认,才能算是一个完全的写入。
假设远端存储卷写入超时就会被标为故障或者是离线状态,当远端存储写入规复之后,对付LVM来讲须要重新进行手动同步实现镜像副本完备同等。

3.2 通过数据库逻辑卷镜像实现的数据复制

对付ASM模式来讲,实在事理与LVM基本相同,创建DiskGroup的时候,将冗余策略选择为Normal,也便是所有业务数据担保两份镜像。
这样的话,我们可以将相等数量的磁盘分别归入不同的故障组( Failure Group) 。
ASM对Oracle数据文件( Data File) 进行修正的时候,以AU为单元进行实时双向写入,本地写完得到ACK确认,并且远端写完也得到ACK确认,才能算是一个完全的写入。

比较LVM的上风在于两点:ASM会有一个短韶光内的写事务日志记录,它会帮助规复离线镜像规复数据,但是如果超过这个韶光,同样须要一个全新的同步来担保数据的同等性。
其余一点,AU并非建立数据文件的时候就已经映射好了,ASM是在数据写入时才会分配详细的AU,完备可以做到通过指针转移的办法避免坏块儿导致的数据写入失落败问题。

3.3 通过分布式文件系统文件镜像实现的数据复制

对付GPFS模式来讲,它是通过将底层来自不同站点的两个物理存储卷归属到不同的Failure Group当中,然后由这些物理存储卷经由文件系统格式化形成分布式文件系统,供应给上层运用以文件的形式写入数据。
文件本身会被GPFS文件系统打散形成多少文件碎片,这些碎片在落盘时分别落入不同Failure Group当中的物理磁盘,从而担保底层数据的双副本。
这种模式与前两种模式的最大差异在于它的数据落盘是根据NSD磁盘定义的做事实例顺序来决定的,正常情形下我们须要定义本站点的做事节点为磁盘的主理事节点,这样的话两个镜像写入的时候是靠GPFS位于不同中央的两个做事实例节点分别写入,两个做事实例之间也须要私有协议的交互,相称于数据的双写多了一个环节。

4. 数据库层如何实现数据复制?

4.1 通过数据库日志回放模式实现数据复制

对付事务日志的复制技能,可以分为绝对同步模式、近似同步模式和异步模式三种。

对付Oracle DB来讲,客户真个数据更新要求首先要由日志写入进程( LGWR) 从重做缓存刷到重做日志文件当中,然后由数据写进程再周期性地写入数据文件当中。
重做日志当中以SCN为数据库独占的韶光戳序列来记录所有数据库更新的先后顺序,从而保障数据库规复能够按照精确的顺序实行保障数据同等性和完全性。
也便是说在数据库的认知当中,只要事务日志写入重做日志文件,这个IO就算完成。

如图,对付配置了Data Guard绝对同步模式的数据库,在以上所述过程中,写入进程( LGWR) 在本地日志文件并不能结束,日志传输进程( LNS) 会将缓存里面的重做日志通过TCP /IP 网络传输给灾备站点的备库实例的日志接管进程(RFS ) ,备库实例的日志吸收进程( RFS) 根据接管到的重做日志在备库上重新实行数据库的更新操作,然后将ACK回传给日志传输进程( LNS) ,日志传输进程( LNS) 再关照写入进程( LGWR) ,才算是一个完全的IO完成。

这样做可以担保主库和备库的事务性更新行为实时同等,终极担保数据的同等。
当然也有一个条件条件,那便是在Data Guard开始同步复制之前,必须担保备库的数据保持与主库的某一固定时间点的完全副本,这须要靠传统数据备份技能来实现备库的初始数据复制。
由于事务复制的实质是行为复制,那么行为浸染的初始数据副本必须保持同等,才能担保终极两副本的同等性。

如图,对付配置了Data Guard异步模式的数据库,日志传输进程( LNS) 会将缓存里面的重做日志以及被LGWR归档的重做日志文件通过TCP /IP 网络异步传输给灾备站点的备库实例的日志接管进程(RFS ) ,备库实例的日志吸收进程( RFS) 根据接管到的重做日志在备库上重新实行数据库的更新操作,但是并不会实时给日志传输进程( LNS) 进行ACK反馈,PrimaryDB只要完本钱库的事务更新就认为IO结束。
但是备库日志接管进程(RFS ) 会定期将进度信息反馈给主库进程。

当主备库传输管理剥离之后,主库会主动通过以下两种办法探测并考试测验重新和备库建立联系,第一是归档日志进程会周期性ping备库,成功情形下,它会根据得到的备库掌握文件的记录的末了归档点和自己的归档日志决定向备库推送哪些归档日志。
第二这天记发送进程会在重做日志准备发生归档的时候点主动去ping备库日志接管进程并把剩余的重做条款发送给备库接管进程。

近似同步模式是指在传输正常情形下保持与绝对同步模式一样的模式,在网络传输超时的情形下,就会剥离备库重做日志的过程,只要担保主库重做日志落盘就可以了。

5. 存储层如何实现数据复制?

5.1 通过存储网关逻辑卷镜像实现数据复制

所谓存储网关双写复制技能,便是在物理存储层之上增加一层网关技能,用以形成存储资源透明抽象层,即存储虚拟化是做事器与存储间的一个抽象层用以实现存储底层的虚拟化以及高可用镜像,它是物理存储的逻辑表示方法。
其紧张目的便是要把物理存储介质抽象为逻辑存储空间,将分散的物理存储管理整合为集中存储管理并且由存储网关来掌握镜像写入的策略和模式。
IBM、EMC、NETAPP 、 HUAWEI、英方等公司都有相应容灾技能方案及相应产品 。
基于写入事理及策略的不同, 各自方案又各有一些差异。
但是抛开细节究事理,归类总结之后有两种模式 。

模式 1,如 图中所示,因此 EMC Vplex为代表的分布式存储卷技能。
在存储网关VPLEX上重新定义虚拟存储卷,该虚拟卷由分布在两个数据中央的物理存储卷以1:1办法映射组成,并且以共享模式供应给VPLEX的两个引擎,引擎之间类似Oracle RAC的事理来共享全局缓存、心跳信息以及分布式锁的信息。
两个引擎同时可以写IO,对付Block级别的并发写操作,是通过分布式锁及全局缓存机制来完成。
以是这种双写是可以做到IO级别。

模式 2,如图中所示,因此 IBM SVC为代表的虚拟存储卷技能。
在存储网关SVC上重新定义虚拟存储卷,该虚拟卷由分布在两个数据中央的物理存储卷以1:1办法映射组成,并且归属同一个IO Group,并且以共享模式供应给SVC的两个节点,虽然两个节点都可以写操作,但是对付某一个IO Group来讲,只能通过一侧节点进行物理层面的双写操作,这样就避免了两个节点的在Block级别的并发掌握。
以是这种双写只能做到运用级别,做不到IO级别。

当然还有一些类似的架构,在某些细节上更前辈,比如NetApp的容灾方案MCC架构,它在此根本之上可以将卖力存储写操作的实例节点做到VM级别,VM卖力以卷为粒度的双写,同时VM可以在存储网关的物理引擎或节点之间进行漂移和重组,这样的话以运用为粒度的写操作的容灾切换更加平滑。

5.2 通过存储介质块复制实现数据复制

对付存储存储底层的块儿复制技能来讲, 它的数据复制是完备分开了上层的运用层、系统层、数据库层。
紧张是依赖存储层两个物理存储设备 来完成源到目标 设备 的 Block 复制。

如图所示,从组成上来看,只有两个同型物理存储设备,数据复制跟上层没有任何关系,只须要存储层从一边的物理卷捕获 Block变革,复制到其余一边的物理存储卷,全体复制行为通过源真个日志文件来记录进度以及保障故障规复。
根据全体复制过程是否须要等待复制完成的ACK返回可以分为同步复制和异步复制。
复制过程依赖的传输环境可以是远间隔的以太网也可以是近间隔的SAN网络。

但是这种数据复制技能和上层的联系险些是割裂的,基本很难与上层的容灾切换合营。

作者:赵海

来源:twt社区

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/bgl/137087.html

XML地图 | 自定链接

Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码

声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com