《详解容灾架构中的数据复制技术 - 副本.docx》由会员分享,可在线阅读,更多相关《详解容灾架构中的数据复制技术 - 副本.docx(10页珍藏版)》请在优知文库上搜索。
1、1 .什么是企业容灾的数据复制技术?企业容灾架构中,所谓的数据复制技术主要是指能够将结构化数据进行豆制,从而保证数据具备双副本或者多副本分散在不同数据中心的技术。这里面需要强调两点: 结构化数据:以结构化数据为主的数据豆制技术。 分散在不同数据中心:数据副本必须分布在不同的数据中心.就具体的实现技术而言,就目前业界发展来看,可以实现数据宜制的技术多种多样,有基于数据库层面的数据复制技术例如OraCle公司的ACtiVeDataGUrad、IBM公司的Db2HADR等;有基于系统层面的数据复制技术,例如赛门铁克的VXVm、传统的逻辑卷管理(1.VM)、Oracle公司的自动存储管理(ASM)冗余
2、技术、IBM公司的GPFS等;有基于存储虚拟化实现的数据夏制技术,例如EMC公司VPIeXStretChQUSter、IBM公司SVCSPlitCIUster、NetAPP公司MetroCluster等;也有基于存储底展实现的数据复制技术,例如IBM公司的DS8000PPRC技术、EMC公司的SRDF技术、HP公司的CA技术等等.每一种技术都有其实现的前提条件,也有各自的技术特点和实现的不同效果.2 .企业容灾中的数据豆制技术的分类2.1 同步豆制和异步复制从RP。维度来划分,大的方面可以分为同步复制和异步复制.同步且制:要求每一个写入操作在执行下一个操作处理之前,在源端和目标端都能完成.特点
3、是数据丢失少,会影响生产系统性能,除非目标系统物理上商生产系统比较近。异步豆制:在处理下一个操作前,只需要完成源端数据写入即可,不等待数据复制到目标系统中.特点是复制的数据与源数据有时间差,但这种基制对生产系统性能影响较小.那么这里有一个问题“如何界定一个写入操作完成?,一般来讲,存储端的写入以存储设备的缓存写入为标准,数据库的写入以数据库的事务日志落盘为标准.如果用图的方式来区别同步和异步之前的区别就在于:同步需要等待黑色和红色的ACK返回才会执行下一个IO,而异步只需要等待黑色的ACK返回即可执行下一个10.从结果上来看,等待红色的ACK返回显然需要花费更多时间,因为A和B分别位于不同的数
4、据中心;但是等待会带来RPO=O的回报。2.2 根据实现复制的手段来划分根据上图,数据巨制最终完成的结果是在两个磁盘介质上完成同一个IO数据,但是将来自客户端的单个10诘求镜像为两个IO的源头可以有三种不同的选择:操作系统层面、数据库层面以及存储层面。1) .躁作系统层面的豆制技术:以1.VM、VXVM等逻辑卷镜像为基础,10写入的时候可以在组成同一个逻辑卷的物理潦像上同时写入数据,底层数据写入是需要通过SAN协议完成的.2) .数据库层面的豆制技术:一种是类似操作系统逻辑卷的模式,比如ORAC1.E的ASM,它也是一种逻辑卷管理模式,同样也可以通过多个物理钱像来组成一个逻辑卷,从而通过镜像宜
5、制的方式完成数据副本的同时写入.本质上它与操作系统层面的逻辑卷钱像技术没有区别,只是它离数据库更近,数据库更佳它.另外一种是通过数据库事务日志复制的方式将数据修改行为在另外一个备库上市新演绎一遍,最终可以达到使数据结果一致的目的。3) .存储层面的豆制技术:一种是通过存佛网关将两个物理存佛卷组成一个逻辑存储卷,通过镜像复制的方式完成数据在存储落盘时的双写.本质上它与操作系统层面的逻辑卷镜像技术也没有区别,只是它选择在存储层面实现.另外一种是通过存储介质之间以块拷贝的方式来实现数据副本的冗余.究其原理,其实无论从哪个层面来实现,这些技术从原理上可以划分为三种类型:1、IO双写(操作系统逻辑卷镜像
6、、ASM、存储网关镜像.etc)2、不务回放(以OraCieADG为代表.etc)3、数据单元拷贝(以存储CA、DP技术为代表的存储复制技术)3 .系统层如何实现数据复制?3.1 通过操作系统逻辑卷镜像实现数据良制对于操作系统层面的逻辑卷管理器IVM模式来讲,是将底层来自不同数据中心的的两个物理存储卷作为物理谶像(PV)组合成一个可用的逻辑存储卷(1.V)提供给上层应用来存放数据,本地物理卷和远程物理卷分别是由存储经过本地SAN环境以及跨数据中心SAN环境提供给服务器厘作系统层.建立逻辑卷的时候就已经定义好1.V和PV的映射关系,并且逻辑页(1.P)和物理页(PP)的映射关系也已经完全定义好了
7、.这种豆制只能采用同步豆制机制,制对象为逻辑卷厘的变化Block,其过程为:捕获逻辑页(1.P)当中的变化块,同步写两个物理页(PP),等于在一个主机上将同一数据写入两个不同的跟盘,本地写完得到ACK确认,并且远端写完也得到ACK确认,才能算是一个完整的写入.假设远端存储卷写入超时就会被标为故障或者是离线状态,当远端存储写入恢宾之后,对于1.VM来讲需要重新进行手动同步实现镜像副本完全一致.3.2 通过数据库逻辑卷镜像实现的数据复制对于ASM模式来讲,其实原理与1.VM基本相同,创建DiskGroup的时候,将冗余策略选择为Normal,也就是所有业务数据保证两份镜像。这样的话,我们可以将相等
8、数量的磁盘分别归入不同的故障组(FailUreGroup).ASM对OraCIe数据文件(DataFile)进行修改的时候,以AU为单元进行实时双向写入,本地写完得到ACK确认,并且远端写完也得到ACK确认,才能算是一个完整的写入.相比1.VM的优势在于两点:ASM会有一个短时间内的写事务日志记录,它会帮助恢复离线浅像恢巨数据,但是如果超过这个时间,同样需要一个全新的同步来保证数据的一致性.另外一点,AU并非建立数据文件的时候就已经映射好了,ASM是在数据写入时才会分配具体的AU,完全可以做到通过指针转移的方式避免坏块儿导致的数据写入失败问题.3.3 通过分布式文件系统文件镜像实现的数据复制对
9、于GPFS模式来讲,它是通过将底层来自不同站点的两个物理存储卷归届到不同的FailureGroup当中,然后由这些物理存储卷经过文件系统格式化形成分布式文件系统,提供给上层应用以文件的形式写入数据.文件本身会破GPFS文件系统打散形成若干文件碎片,这些碎片在落盘时分别落入不同FailureGroup当中的物理磁盘,从而保证底层数据的双副本。这种模式与前两种模式的最大区别在于它的数据落盘是根据NSD磁盘定义的服务实例I顿序来决定的,正常情况下我们需要定义本站点的服务节点为磁盘的主服务节点,这样的话两个镜像写入的时候是靠GPFS位于不同中心的两个服务实例节点分别写入,两个服务实例之间也需要私有协议
10、的交互,相当于数据的双写多了一个环节。4 .数据库层如何实现数据复制?4.1 通过数据库日志回放模式实现数据复制对于事务日志的欠制技术,可以分为绝对同步模式、近似同步模式和异步模式三种.对于OradeDB来讲,客户端的数据更新请求首先要由日志写入进程(1.GWR)从用做缓存刷到点做日志文件当中,然后由数据写进程再周期性地写入数据文件当中.全做日志当中以SCN为数据库独有的时间法序列来记录所有数据库更新的先后顺序,从而保障数据库恢复能够按照正确的顺序执行保障数据一致性和完整性.也就是说在数据库的认知当中,只要事务日志写入歪做日志文件,这个IO就算完成.如图,对于配置了DataGuard绝对同步模
11、式的数据库,在以上所述过程中,写入进程(1.GWR)在本地日志文件并不能结束,日志传输进程(1.NS)会将缓存里面的电做日志通过TCP/IP网络传输给灾备站点的备库实例的日志接受进程(RFS),备鹰实例的日志接收进程(RFS)根据接受到的歪做日志在备阵上更新执行数据库的更新操作,然后将ACK回传给日志传曲进程(1.NS),日志传除进程(1.NS)再通知写入进程(1.GWR),才算是一个完整的10完成.这样做可以保证主库和备库的事务性更新行为实时一致,最终保证数据的一致。当然也有一个前提条件,那就是在DataGuard开始同步复制之前,必须保证备库的数据保持与主库的某一固定时间点的完整副本,这需
12、要靠传统数据备份技术来实现备库的初始数据复制.因为事务复制的本质是行为复制,那么行为作用的初始数据副本必须保持一致,才能保证最终两副本的一致性.如图,对于配首了DataGuard异步模式的数据库,日志传输进程(1.NS)会将缓存里面的正做日志以及被1.GWR归档的再做日志文件通过TCP/IP网络异步传输给灾备站点的备库实例的日志接受进程(RFS),备库实例的日志接收进程(RFS)根据接受到的电做日志在备库上里新执行数据库的更新操作,但是并不会实时给日志传输进程(1.NS)进行ACK反馈,PrimaryDB只要完成本库的事务更新就认为IO结束。但是备库日志接受迸程(RFS)会定期将进度信息反馈给
13、主库进程.当主备库传输管理剥离之后,主阵会主动通过以下两种方式探测并尝试重新和备库建立联系,第一是归档日志进程会周期性Ping智库,成功情况下,它会根据获得的备库控制文件的记录的最后归档点和自己的归档日志决定向备库推送哪些归档日志.第二是日志发送进程会在重做日志准备发生归档的时刻点主动去ping备而日志接受进程并把痫余的至做条目发送给备庵接受进程.近似同步模式是指在传输正常情况下保持与绝对同步模式一样的模式,在网络传输超时的情况下,就会剥离备库里做日志的过程,只要保证主库重做日志落盘就可以了.5 .存储层如何实现数据应制?5.1 通过存储网关逻殖卷镜像实现数据豆制所谓存储网关双写豆制技术,就是
14、在物理存储层之上增加一层网关技术,用以形成存储资源透明抽象层,即存储虚拟化是服务器与存储间的一个抽象层用以实现存储底层的虚拟化以及高可用钱像,它是物理存储的逻期表示方法.其主要目的就是要把物理存储介质抽象为逻辑存储空间,将分散的物理存储管理整合为集中存储管理并且由存储网关来控制镜像写入的策略和模式.IBM、EMC、NETAPP、HUAWE1.英方等公司都有相应容灾技术方案及相应产品。基于写入原理及策略的不同,各自方案又各有一些区别。但是抛开细节究原理,归类总结之后有两种模式.模式1,如图中所示,是以EMCVPIeX为代表的分布式存储卷技术,在存储网关VP1.EX上市新定义虚拟存储卷,该虚拟卷由
15、分布在两个数据中心的物理存储卷以1:1方式映射组成,并且以共享模式提供给VP1.EX的两个引擎,引擎之间类似OracleRAC的原理来共享全局缓存.心跳信息以及分布式锁的信息.两个引擎同时可以写10,对于Block级别的井发写操作,是通过分布式锁及全局缓存机制来完成。所以这种双写是可以做到IO级别.模式2,如图中所示,是以IBMSVC为代表的虚拟存储卷技术.在存储网关SVC上重新定义虚拟存储卷,该虚拟卷由分布在两个数据中心的物理存储卷以1:1方式映射组成,并且归属同一个IOGroup,并且以共享模式提供给SVC的两个节点,虽然两个节点都可以写操作,但是对于某一个IOGroup来讲,只能通过一侧
16、节点进行物理层面的双写操作,这样就避免了两个节点的在Block级别的并发控制.所以这种双写只能做到应用级别,做不到IO级别.当然还有一些类似的架构,在某些细节上更先进,比如NetApp的容灾方案MCC架构,它在此基础之上可以将负责存储写麋作的实例节点做到VM级别,VM负责以卷为粒度的双写,同时VM可以在存慵网关的物理引擎或节点之间进行漂移和重组,这样的话以应用为粒度的写操作的容灾切换更加平滑。5.2 通过存储介质块宜制实现数据复制对于存储存储底层的块儿基制技术来讲,它的数据基制是完全脱离了上层的应用层、系统层、数据面层.主要是依靠存储层两个物理存储设备来完成源到目标设备的Block系制。如图所示,从组成上来看,只有两个同型物理存储设备,数据复制眼上层没有任何关系,只需要存储层从一边的物理卷捕获Block