zp_ccc
作者zp_ccc·2017-02-27 11:15
高级技术主管·国内某金融科技公司

灾备难点攻克系列之连续数据保护技术的痛点分析

字数 12258阅读 4368评论 1赞 7

各行各业对灾备的意识越来越高,对业务连续性的关注度越来越高。

灾备技术涉及的领域很多,有很多厂商提供了多种技术解决方案,当前比较常见的数据复制技术有几大类,例如基于传统存储的复制技术,技术数据库的复制技术,基于存储虚拟化网关的复制技术,基于主机卷管理的复制技术,基于备份的复制技术等等。

在以往的讨论中,我们都是在谈某个厂商或者某个技术的优点,今天我们换个角度,我们来谈谈这些厂商产品的缺点。客观的讲每一个厂商的产品都不完美,都有他们的最佳实践应用场景,我们借分析产品的缺陷,展示产品的应用不当之处:一方面可以为广大用户提供警示作用,改进用户的使用方法或提前规避风险;另一方面可以刺激广大厂商能够不断改进产品,使得产品更加完善。

由于灾备领域的技术和产品众多,我们分期来进行讨论。

上一期我们在讨论存储复制的时候提到了具有可追溯功能的灾备方案,连续数据保护(CDP)技术是一种持续保持数据变化的技术,应用于灾备领域可以提供过去时间点的数据恢复功能。我们知道任何技术和产品都不完美,都是有其适应的场景,我们这一期的讨论主题是连续数据保护技术的灾备解决方案的痛点。例如近几年和CDP相关的最为著名的事件就是国内某银行核心系统宕机事件(银监办发2014第220号文件)。本期会针对类似的问题加以深入剖析,找出根源。警示厂商改进产品!提醒用户规避风险!

涉及的产品包括,国外知名的EMC recoverpoint,falconstor CDP,IBM Fastback,Datacore,vision double-take,DELL也包括自主可控的国内火星高科,柏科数据,信和数据,合力记忆,英方软件等等厂商。

下面我就对本期的主题“连续数据保护技术在灾备领域应用的痛点分析”相关的问题和观点加以梳理和总结,如有疏漏不妥之处,还请不吝赐教。

首先先简单介绍一下什么是连续数据保护技术, SNIA数据保护论坛(DMF)的持续数据保护特别兴趣小组(CDP SIG)对CDP的定义是: “持续数据保护是一套方法,它可以捕获或跟踪数据的变化,并将其在生产数据之外独立存放,以确保数据可以恢复到过去的任意时间点。持续数据保护系统可以基于块、文件或应用实现,可以为恢复对象提供足够细的恢复粒度,实现几乎无限多的恢复时间点。” 持续数据保护技术是对传统数据保护技术的一个重大突破。传统的数据保护解决方案专注在对数据的周期性备份上,因此一直伴随有备份窗口、数据一致性以及对生产系统的影响等问题。现在,CDP为用户提供了新的数据保护手段,系统管理者无须关注数据的备份过程(因为CDP系统会不断监测关键数据的变化,从而不断地自动实现数据的保护),而是仅仅当灾难发生后,简单地选择需要恢复到的数据备份时间点即可实现数据的快速恢复。连续数据保护技术最主要的特点是,可以大大提高数据恢复时间点目标(RPO),和缩短数据恢复时间目标(RTO)。

关于连续数据保护的痛点,大家主要关心如下几个方面。

  1. CDP对生产性能影响的痛点
  2. CDP可靠性方面的痛点。
  3. CDP应用场景中遇见的痛点。
  4. CDP数据恢复的痛点
  5. 多种灾备技术混合使用时兼容性的痛点
  6. 双活数据中心架构中应用CDP的痛点
  7. 两地三中心灾备架构中应用CDP的痛点

一、对生产性能影响的痛点

【议题1】CDP是否成为性能瓶颈?

{问题描述}
很多用户都认为CDP产品会成为性能瓶颈,在灾备解决方案中的应用时,对主机,存储的性能是否有影响,我们在这个议题里就来讨论一下CDP性能到底有多差,如果差,为什么差,差在哪里,使用过程中如何优化。

{问题描述}
还有的用户认为CDP可以保障数据连续性的同时,还可以全面接管业务,但是在业务接管时性能是否存在问题。

{观点总结}
观点一:CDP在数据保护的时候有可能会有性能影响,不过现有的CDP产品中,对影响业务正常运行的性能问题,都有所解决,例如数据传输的压缩,带宽提升,时间限制等。但是如果出现CDP接管业务的时候,这个肯定会有性能问题,CDP的硬件配置和高端存储还是不能相提并论的。

观点二:当前存储的CDP技术大多使用存储作为拆分器,对应用的性能无直接影响。存储拆分会耗损一小部分存储CPU和内存资源,这和IO密集度有关。但一般存储cpu利用率在合理范围内,都对业务的性能没有影响。

观点三:既然考虑了用CDP来实现逻辑性保护,还那么在乎性能吗?在乎性能的客户,有用CDP的吗?某些CDP解决方案中,对数据分流有一些特定的方法,例如通过主机端安装agent方式实现主机数据分流一份到CDP设备,对于这种方法,肯定消化CPU,但是这种架构现在几乎很少了。大部分都在存储端做IO截获,对源存储或CDP引擎的CPU资源消耗,要看具体的应用场景.如果是密集写IO场景,相信CPU使用率会较高。

观点四:基于True CDP的产品并不是特别多,主要原因是True CDP对空间需求太大,此外实时记录会消耗整体架构的性能,对业务肯定是有影响的。

观点综述:
性能瓶颈和性能影响,我认为需要区分来看。
性能影响:我认为CDP产品产生性能影响是正常的,很多厂商说没有性能影响,或者性能影响微乎其微,我觉得不客观。为什么这么说,我们可以简单分析,由于CDP设备和存储设备有很多相似之处,这里我们仅从IO设备这一层来谈性能,存储设备有存储数据的功能,如果单纯的存储设备,只完成读和写的工作,不同的存储,不同的RAID方式,不同的数据分布方式,有着不同的读和写的消耗。谈到CDP的性能影响通常会和单纯的存储来对比,为什么说CDP性能会比单纯存储差能,其实很简单,目前业界大部分CDP产品都采用快照技术,来实现连续数据保护,不但快照增加了读写消耗,而且CDP作为灾备技术应用于远程数据灾备,那么复制工作也增加了读写的消耗。有一些CDP设备不仅仅作为一套数据保护设备,还提供存储功能,那就是在单纯存储设备提供的存储功能基础上增加了快照,复制等等的IO消耗,这么来说CDP有性能的影响是必然的。

那么性能影响是否是性能瓶颈呢,我的观点是如果性能影响到一定程度已经影响生产业务不能正常运行,那么这种影响是严重的,是性能瓶颈,是需要改进的。如果影响在可控范围内,那么需要在鱼和熊掌之间进行取舍。

性能影响如果是在合理范围内的,能够被接收的,可以无需担心,不过也希望厂商能够优化技术,尽可能的降低影响。如果在应用过程中出现瓶颈,我觉得需要重新审视CDP应用方案的正确性和合理性,对不合理的方面进行改进,如果是不具备优化条件的,寻求其他解决方案。

二、可靠性方面的痛点

【议题2】CDP解决方案中是否有可靠性缺陷?
在这个议题里我们深度挖掘一下CDP解决方案中的可靠性缺陷。那些产品,那些解决方案是有这方面缺陷的,我们如何应对。

{问题描述}
在CDP技术中,是如何保证业务系统数据一致性的?在CDP实现架构中,采用异步复制的方式居多。基于距离远等因素,源端与容灾端会存在一定的延迟等。影响CDP数据完整性、一致性的要素不仅仅是延迟。在这些外在因素影响下,CDP技术从原理上又是如何保证容灾端数据的完整与一致性的?

{问题描述}
业务系统不停地升级,数据也有结构和非结构。CDP功能是让人觉得已经不需要本地备份了吧。但是CDP在能不能保证千变万化的业务系统数据的一致性完整性?它是怎么来保证?

{观点总结}
观点一:
对于数据的绝对完整性和一致性来讲,有两个点需要保证。一是,数据复制同步完成。二是,事务层面存在数据正确性校验。这两点来讲没有一个产品能完美实现,更不用说CDP了。

观点二:
CDP理论上是可以保证业务连续性RPO和RTO=0的,理论上是没有缺陷的,而且不占用业务流,不影响网络现有架构。

观点三:
数据的物理一致性不能完全保证逻辑一致性之外,存储产品和CDP产品在做快照和复制的时候,大多采用一致性组的机制来保证多磁盘卷的数据一致性。异步复制架构中,数据一致性不应该是复制源端和目标端的数据比较,而是某一端,要保证多卷在某一时刻的一致性状态。

观点总结:
CDP的可靠性可以从几个方面来探讨

  1. 高可用性:
    CDP本身需要具备高可用特性,消除单点故障风险,目前市场上面向企业级的高端产品基本具有此架构,而低端产品还存在单点故障的风险。

2.稳定性:
可以通过MTBF来考量CDP产品的稳定性,作为企业级的产品,应该减少产品本身的问题对业务的影响。这方面还是需要厂商加大研发力度。

3.安全性:
主要是CDP产品本身的使用安全,还包括数据安全,CDP产品应提供一些保障数据安全的功能。

4.可用性
CDP最主要的功能就是连续数据保护,能够恢复所保护的数据,是价值所在,这里提到的可用性,主要想表达,当需要用到CDP恢复功能的时候,应该能够进行恢复,并且恢复的数据是符合预期并正确的。希望厂商加强技术投入,在尽量小的代价下,提高恢复成功率。

5.完整性
数据完整性和数据一致性可以从物理层面和逻辑层面两方面来解释。上一期我们谈到存储复制技术的应用和本期的CDP技术的应用,我们发现大部分市场上CDP产品还都类似与存储,基于底层数据块的技术。当然也有逻辑层的CDP产品,逻辑层的CDP产品类似与时间密集型的备份集。如果是基于物理层的技术,目前我们看到不管是存储还是CDP均发现过逻辑层面数据不正确的情况。可以说物理层面的一致性不能百分百保证逻辑层面数据一致性和完整性。虽然这是小概率事件,从技术上实现物理层和逻辑层之间实时的检查还是略难实现,虽然有些厂商已经进行了优化,但是经常性的在逻辑层面做数据验证不管是存储还是CDP产品都是有必要的。

三、应用场景中遇见的痛点

【议题3】在何种场景里CDP不适用?

{问题描述}
IT环境复杂,不可能有哪家产品适用所有的环境,这个议题里主要讨论一下在哪些环境下哪些厂商的产品天生就不适用。

{问题描述}
目前企业中使用CDP数据备份应用多吗?主要用于什么行业?能否提供具体的实现案例?

{问题描述}
在VMware虚拟化环境中,部分虚拟机实施CDP的这种情况该如何解决?

{观点总结}
观点一:
这个话题转换为CDP适用哪些场景,可能更为合适。对性能要求低,不在乎性能影响,非常在乎逻辑恢复能力,尤其对像录像回放功能非常着迷的客户,非常适用于选择CDP。

观点二:
有一部分客户使CDP技术。例如核心数据库或VMware虚拟化应用场景,一般金融,政府行业使用较多。EMC有款产品叫Recoverpoint,可以结合存储或存储虚拟化网关实现本地数据连续保护,异地复制的连续数据保护。国外还有飞康,国内有厂家如华为,浪擎等在做。

观点三:
就像基于存储的灾备技术,基于数据库的灾备技术一样,基于CDP技术的灾备技术也应用于各种领域,这不是一个新兴技术,是一个已经比较成熟的技术了,在国内的各行业都有成功案例了。

观点四:
据我所知,EMC 的Recoverpoint在金融,政府行业应用较多。一般场景为核心数据库,虚拟化场景+存储同步异步复制/存储虚拟化网关+持续数据保护设备(CDP/CLR) 构成主备或两地三中心容灾。

观点五:
对于VMWARE环境,建议使用飞康NSS。功能与飞康CDP基本一致,但是NSS必须直连接入。(CDP可做旁路)

{观点总结}
任何产品,任何技术都不可能十全十美,也不可能适应全部环境。每一种产品都有其自身适用的场景,通过这个议题主要是想发掘一下现在灾备应用的那些场景是CDP不适用的,避免用户使用上出现误区,同时也希望厂商关注进一步拓展适用领域。

大家对CDP产品的适用场景描述的都比较多,综合来看,如果对数据保护的频率要求不高,对数据恢复的快捷性要求不高的场景,都大可不必采用CDP产品。

目前通用的开放平台的IT系统,市场上CDP产品的兼容性还是比较好,非开放平台,专属IT系统,CDP产品支持的有限,所以也不适用。

目前分布式存储架构中,还有没有CDP产品的相关应用,未来分布式架构的应用场景会越来越多,希望有相关的连续数据保护解决方案的出现。

四、数据恢复的痛点

【议题4】:连续数据保护在什么情况下不能恢复数据?

{问题描述}
连续数据保护的设计初衷就是能够实现保护的时间点的数据恢复,那么有没有需要恢复的时候却不能恢复的情况发生呢,我们在这个议题里可以深入进行讨论。

{问题描述}
存储的同步复制技术,一般是底层数据块的复制,对上层应用是无感知的,那上层应用如果是数据库的话,数据库是有缓存的,如果在没有commit之前主机房发生故障,系统宕机,那在灾备端恢复的数据是完整的吗?如何保证数据一致性呢?

{观点总结}
观点一:
1、CDP服务器宕机了就不能恢复了
2、CDP和前端的保护主机链路出现故障了
3、CDP保护的数据本身有问题

观点二:
超出保存周期的数据不可恢复

观点三:
数据库事物虽然没有没有COMMIT,但是事物日志中有记录,基于同步复制,灾备端的存储上也会有相应的事物日志记录,如果这时主机故障宕机,灾备端的数据库是可以根据该事物日志的记录进行自我恢复的。就如同该宕机主机启动后恢复的过程一样。

观点四:
如果是作为整个事务提交,然后出现这个现象,是可以恢复的。这需要数据库这边的恢复操作。但如果不是作为事务提交,很可能产生脏数据。

观点综述:

  1. CDP本身损坏,数据不能恢复。
  2. 超出CDP保护周期的数据不能被恢复。
  3. 减少数据库未提交的数据没有被灾备保护,开发人员应该减少长事务的运用。
  4. 存储同步复制中,有一些高端产品,号称未提交到磁盘,在内存中的数据依然能够复制。然后大部分基于磁盘卷保护的产品,存储,CDP都认为没有提交到磁盘的数据属于脏数据。如果谈到两个数据中心的灾备保护,那么CDP产品多数应用于异步环境,那么未提交的数据在这种场景下没有保护的必要。

五、多种技术混合使用时兼容性的痛点

【议题5】:CDP技术和其他灾备技术能否同时使用,使用过程中会不会出现问题?

{问题描述}
多种灾备技术运用,多个灾备副本保护,是提高业务连续性的保障。那么CDP技术和其他灾备技术结合运用的时候会不会相互冲突呢?我们在这个议题里大家可以分享一下使用心得和想法。

{问题描述}
还有朋友通过实测的案例,描述CDP与SVC产品混合使用时出现的问题。
CDP一般的实施方案是利用操作系统的LVM实现主存储与CDP接管后的存储镜像,但这点对于两个存储间的性能要求一致性,不然主机的读写性能就取决于最慢的那个存储了,这点可能也是CDP的最大弊端了,想必宁夏银行那次的故障也是因为此,而且LVM没有缓存机制,对于读来说,当然没问题,但对于写操作来说,必然是写要求两个存储都写完成,才会完成整个写操作。而对于企业来说,想必不可能就两个性能一致的存储吧?各类低端、中端、高端存储,为了做CDP保护,总不可能买一堆不一样的存储下挂至CDP,分别镜像吧?基于此,我们测试是否能通过SVC再接管CDP接管后的存储,这样通过SVC VDM来实现两份存储数据保护,其中一份存储还可以通过CDP做快照,这样一来,因为SVC的优秀品质,存在写缓存,还有镜像写延时保护参数等,主机的性能也基本不受影响,也不会因为CDP故障或者时延,或者时断时连的现象等造成主机读写中断,但是在测试中发现,三套SVC版本,SVC6.4和SVC7.2是可以兼容CDP的,SVC7.4则不兼容,是否可以理解为IBM为了排除异己,已经悄悄的不支持CDP了?基于SVC版本不可能不升级,而且SVC随着版本的更迭,功能也越来越强大。但是目前国内除了CDP的呼声高一点,用户多一点,实际案例更多,其他产品真的没怎么听说过,或许我比较孤陋寡闻吧。

另外我又有了新的想法,因为逻辑保护是必须要做的,备份虽然是一种逻辑保护,但是时效性不高,那么可能的办法是通过将数据库复制一份出来,比如通过数据库日志的方式,如DB2 HADR、DB2 CDC等,ORALCE也有,具体忘记了名字。再利用复制出来的那份数据与CDP做LVM镜像,但是这样的想法前提是,如DB2 HADR不能是同步复制,不能是准同步,必须是异步的方式,而且是超异步,这样主机复制数据时,只要把日志commit至另一端,无需等待回应,这样一来的话,对原主机无任何影响,而且还可以起到数据库逻辑保护,实时性相对更高,起码通过CDP可以恢复至10-20分钟之前。但是这种基于日志复制的方式,前提是应用对数据库的更新、删除和插入操作都是记日志的方式,而且没有XML格式和大对象格式的数据,相对来说有点受限。

{观点总结}
观点一:
CDP可以作为本地的重要的数据保护和异地的容灾,比如银行的核心系统数据,在有CDP的同时,也用数据级的灾备复制技术。我们采用emc的recoverpoint作为核心系统数据库的本地保护和异地容灾,同时采用EMC的vplex网关做同城的数据级容灾。开发人员需要提数,可以通过CDP恢复到之前某个时间点的数据,从而提高工作效率。

观点二:
一般除了CDP保护,客户都会额外选择一种传统的备份容灾技术作为最后的防线。 CDP保护,着力点是短周期内数据保护,高效、几乎实时。若是用CDP解决方案作长期的数据保障,其成本指数型增长,并且会拉低其架构性能。既然能上CDP,那么其系统必然重要,跨越长周期的FLASHBACK也基本不可能发生。采用True CDP技术的保护,在长周期的数据保护上更显乏力,尤其是在空间需求上。采用Near CDP技术的保护,近些年技术已经逐渐趋于成熟,在效能上也与True CDP相差不远,但如果拉长了保护周期,对架构的负担也是比较沉重的。得益于CDP的保护,多地多中心的容灾也更易于实现。

传统的备份容灾,其成本低廉,保护数据的周期跨度长,正好弥补CDP保护的空白期。但传统的备份容灾对业务系统的IO影响大,需要在业务空闲时执行。另外传统的备份容灾可以实现数据离线保存。

CDP可以看做一种在线保护,其底层相当于是生产系统。传统的备份容灾技术,简单的话可以看做从生产系统抽数保存,两者互不冲突。

若是多重CDP技术或者多重传统备份容灾技术同时使用,即使抛开兼容性问题,在性能上也会彼此掐架,并不能带来强强联合的收益。

观点综述:
众所周知最好的数据保护方法就是用多种技术做多个副本,这样才能减少单一技术不能恢复的概率。不同厂商,不同产品肯定存在不兼容的情况,要想很好的一起使用,除了厂商提供的兼容性测试报告,还需要用户大量测试。另外多技术的运用还要考虑对生产的性能,安全性影响。针对有朋友提到的测试案例,看似falconstorCDP的一种应用场景。通过LVM做数据分流,仅仅是类似falconsotr CDP的一种应用场景,falconsotr CDP也有其他的解决方案,其他厂商的CDP也有不同的解决方案。.通过SVC来做数据分流,结合falconsotr CDP,确实也是一种解决方案。确实目前的最新的SVC版本和falconsotr CDP版本存在不兼容的问题,我们希望看到的是IBM能够吸取falconsotr CDP的优点,不断改进SVC。或者IBM和falconsotr都能互相兼容,为客户提供更多的选择。如果某些SVC和CDP结合的场景下应用,我建议您关闭SVC的写缓存。

六、双活架构中的痛点

【议题6】:连续数据保护技术在双活架构中的限制。

{问题描述}
双活数据中心是近几年的热门话题,涉及的技术领域和层面也比较多,这个议题我们可以对比上一个主题的存储双活技术架构,来分析CDP在双活数据中心中的差异。

{观点总结}
观点一:
“存储双活技术架构”更多的注重点在于高可用方面;CDP更多的关注在于数据保护;数据恢复时间的颗粒度和恢复占用的时间上

观点二:
就像楼上所说““存储双活技术架构”更多的注重点在于高可用方面;CDP更多的关注在于数据保护;存储双活要比CDP从数据保护,可靠性、安全等方面都要高。CDP对只是对数据的保护,当然也可以满足前端的存储主机出现故障后,CDP服务器接管,但是CDP的性能、安全等方面是否可以满足前端业务主机的要求就是个问号的了。而存储双活强调的数据和架构的高可靠,数据是同样的两份,完全镜像的两份,而且在此基础上,可以提供快照、克隆等安全措施,保证数据的业务连续性和有效性

观点综述:
谈到双活架构,从业务层面,对称工作负载模式和非对称工作负载模式都可以称之为双活架构。非对称工作负载,简单来说,生产数据中心运行一些业务系统,同城灾备中心运行另一些业务系统,两中心又互为备份。对称工作负载,是生产和同城中心,物理上是两个不同地址的数据中心,逻辑上是可以理解成一个数据中心,两中心同时通过负载均衡策略参与业务处理。

双活架构包含业务层,网络层,计算层,数据层,存储层等多个层面。我们这次主题是谈CDP技术在双活的应用,双活架构包含业务,大部分CDP产品在双活架构中和存储阵列,虚拟化存储网管比较相似,都是应用于存储层双活架构。

CDP到底在双活架构中有什么限制呢?
1、非对称工作负载模式的双活数据中心的存储层,可以理解为传统主备模式,CDP产品只要在传统模式上可以工作,在这种双活架构上也应该适用。
2、对称工作负载模式中应用CDP,纵观当前市场的各类产品,有这么几种特点:

  • a 单纯CDP产品功能定位于数据保护,偏向备份,那么在双活架构中需要借助其他虚拟化存储网关,来实现。单独产品无法完成存储功能。
  • b 某些产品CDP连续数据保护功能强大,同时存储虚拟化功能也较强,但是在对称工作负载双活架构中,数据IO只在一个双活站点,当站点发生故障,有短暂切换时间,CDP切换到另一站点,简单说双站点的存储双活层类似AP模式而非AA模式。
  • c 某些产品功能单一,侧重点在数据保护,产品本身不具备高可用架构,存在单点风险,不适用于双活存储层。
  • d 某些存储产品也具有CDP功能,同时存储功能强大,结合主机端自有的多路径软件能够适用于双活存储层架构。这类产品侧重于存储,CDP功能为辅。

七、两地三中心灾备架构中的痛点

【议题7】:同步复制是否是连续数据保护的死穴。

{问题描述}
通常技术存储复制技术的两地三中心的灾备架构中,生产到同城都采用同步复制技术,同城到异地采用异步复制技术。那么CDP的复制技术中类比存储的同步,异步复制有什么痛点呢。这个议题主要讨论同步复制是否是连续数据保护产品的致命弱点?这个死穴到底能不能破?

{问题描述}
CDP与同步远程复制的区别在那里呢?个人理解:如果CDP支持恢复到回去某个时间点的数据,其实和快照有直接的关联性,那也存在数据丢失的情况,只是根据用户设置的时间窗口相关而已。

{观点总结}
观点一:
存储技术和CDP技术的两类产品面向的目标是不一样的;同步复制主要是保证RPO=O;而CDP是可以恢复到任一制定的时间(不同的CDP产品精度不一样);但是有可能不能保证RPO=0,个人感觉CDP更加看重的是备份功能,和快速恢复到任一时间点的功能。同步复制更加注重与数据的完整性和快速拉起业务的功能。

观点二:
同步复制和连续数据保护产品CDP是两个类型的产品,同步复制保证是业务的连续性即RPO=0,但是对复制的内容有效性和可用性是无法保障的,以及在数据恢复方面也是有限的。CDP同样也是保障业务的连续性,CDP不是同步复制,CDP是对需要保护的数据进行实时保护,这个实时是可以定制和个性化的,并不是完全的同步的,而且CDP在数据实时保护的基础上,还可以对保护的数据建立快照等安全保护措施,对数据的有效性和可用性进行保障

观点三:
阁下描述的同步复制指的是类似:IBM PPRC,HDS True copy?而“连续数据保护产品”指的是CDP产品?
如果是的话这两者之间并不一定要处于尴尬地位。某些时候可以做到互补互足,各展所长,一套完美的体系架构。

观点四:
同步复制和连续数据保护产品是两个类型的产品。同步复制,看重的是业务的连续性以及灾难后快速回复能力。连续保护产品,看重的是业务数据的保护,是往后看的,强调的是数据的可追溯。

观点五:
同步复制和连续数据保护,从技术术语上理解,没有必然关联。同步复制面向的是容灾场景,防范生产站点存储级别/站点级别的故障。对存储层的数据而言,可以获得很低的RPO。但这个RPO不能等同于应用的RPO,因为数据的逻辑关系在AP/DB层,能否恢复到哪个时间点,取决于DB的回滚日志能否成功apply到最后一个checkpoint点。对于AP来说,如果文件系统连fsck都通不过,或者fsck时间要以天计算,那RPO就更难衡量了。RTO则取决于机器性能、处理流程,30分钟到一天,都是可能的。这个原理对连续数据保护的产品也是相通的。

考虑到产品实现,对于CDP类产品,也支持同步模式,比如E公司的RP。但应用同步模式的CDP场景几乎没有,主要是CDP的IO截获模式,导致IO处理链条过多,性能下降厉害导致的。如果一个普通存储的同步复制导致性能下降20%是可以接受的,那么下降到60%或更高,就难以接受。

对于异步复制模式,复杂的IO处理逻辑都在存储控制器内完成,对生产的性能影响比同步要小,因此就变得可以接受,那么见到适用的场景也就不奇怪了。现在吸引客户采用的特性主要是CDP类产品在传输异步复制数据时,只传输压缩后的数据,对带宽要求低。如果普通存储能在异步复制上做到很高的压缩比,或者只传送快照的差量数据,那么CDP的异步模式也没优势,最终只会退回到传统的连续快照保护能力上。

观点六:
1 关于同步和异步的问题。
我想无论是数据库的复制技术还是存储的镜像复制技术等,关键问题点是在于同步会绝对等待数据库重做IO或者是存储镜像IO的返回,才能执行下一个IO。这个会严重影响数据库的性能。尤其是在集群节点通讯环境不是非常理想情况下。而异步复制的话不会做这些绝对性的等待,对性能产生的影响不会太大,这是大家广泛接受异步复制的前提条件。

2 关于数据复制和连续性保护的问题。
复制是要保证数据容灾可用性,也就是说尽量保证一个数据点发生物理故障的时候,另外一个数据点能尽可能恢复业务。但是这两个数据点会尽可能保证一致。但是如果是人为对数据的误操作,这个完全没有保护能力的。而类似于数据库的闪回,或者是存储设备类似的功能都是以日志时间搓为基准的恢复机制。从根本上算是一种备份。当我们发现有人为数据误操作的时候,可以恢复到某一个正确时间点。但是这个是以日志存在为前提条件的。

观点七:
1.同步复制
无论是存储同步复制还是存储网关的同步复制都是需要等待另一端的IO响应返回的,或者数据库的基于日志的同步复制也需要对端数据库收到日志、运行并commit后返回,才能算是真正的同步复制,但是这样一来,跟不进行同步复制比,多少会造成影响。但是为了实现灾备的RPO=0,或者应用级双活,同步复制是必须的,无可争议的选择。那么既然是为了实现RPO=0的必然之选,那就需要考虑究竟同步复制对性能有多大的影响,读IO肯定是没任何影响,只是写操作可能会存在些许影响,然而像高端存储间的同步复制或者基于存储网关的同步复制,由于高端存储和存储网关都设置了较大的缓存,写站点A的存储/存储网关缓存后,直接返回主机,再接着写站点B的存储/存储网关缓存,这样一来对主机端来说,根本没有等待站点B的写IO返回,同步复制的这一切都在存储底层处理了,主机依旧像写单台存储一样。对于OLTP这样的业务来说,读写比例大致为7:3,而且通常这样的应用或者数据库存储数据不超过500G,在日益发展的今天的,存储缓存越做越大,加上闪存将成为趋势,完全可以做到同步复制无任何性能影响。而且同步复制也不是一定非得等到对端存储IO返回,才进行下一个写操作步骤,可以设置同步的写镜像延迟属性,出现几秒钟写延迟,直接自动不同步即可。

那么CDP呢,无非就是对备份的一种补充,弥补出现数据库逻辑错误,人为误删操作错误时,缩短备份前滚的时间,提高便捷性的工具而已。为了不因CDP捕获IO时做快照时,对主机IO性能造成影响,可以将CDP放到同步复制的B站点,对B站点进行快照,出现逻辑错误时,利用B站点CDP快照拉起即可。这样一种情况下,根据上面段落所讲,同步复制不但不是CDP的死穴,我想还有可能是救星。既实现了RPO的目标,又加强了逻辑性错误的防范。

2.异步复制异步
对于异步复制来说,运用的更多,更广泛,放到CDP技术运用来讲的话,异步复制不需要考虑对主机的性能影响,如果异步复制是两端存储差异1分钟,CDP是5分钟做一份快照的话,主存储出现逻辑错误时,可以回退到6分钟之前,但是对于数据库来讲,肯定要保证数据一致性,运用了异步复制技术,要考虑到异步复制时,对端存储的数据一致性校验是否存在,是否有异步复制一致性卷组,这里需要打个问号,如果不存在,异步复制的存储数据就无法使用;如果存在,那么还需要考虑CDP快照的一致性是否存在,能否同一主机的多个卷做一致性快照卷组,如果不能,即使每个卷都做了快照,数据库也不能启动。

基于以上所说,在日益发展的今天,无论是同步复制也好,异步复制也罢,都不是CDP的死穴,复制时的一致性组校验和是否支持CDP快照卷组才是真正需要考虑的东西,这几点同时具备时,CDP的明天会更好。

观点八:
CDP类似的技术是通过截获IO来做频率很高的快照.同步复制是把生产的IO实时复制到远端存储.这是两种截然不同的技术,没有可比性,倒是可以作为组合式的解决方案存在,适用于对性能不敏感的场景.

观点综述:
这个议题是本期讨论的最为热烈的话题。
CDP产品的主要功能在于连续数据保护,由于CDP具有远程复制的功能,所以不仅仅可以用于数据的本地灾备保护,同样可以应用于数据的异地灾备保护。

复制分为同步和异步,目前市场上多数cdp产品以异步复制为主,同步复制功能弱或者不具备。还有一个现象,一些新兴的存储产品,也关注于异步复制,而轻同步复制。这是为什么呢?从技术原理上看似异步技术要复杂于同步技术,那为什么会有重异步轻同步的现象呢?可能是由于厂商认为,同步的市场没有异步市场应用场景大,也可能同步存在的风险远大于异步,还有可能根本不存在真正的同步。个人认为灾备系统不能仅从复制技术一方面考量,灾备的主要目的在于灾难发生时能够快速恢复,那么不管采用何种技术,只要在灾难面前数据可用,尽量减少数据的丢失,这才是有效的灾备解决方案。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

7

添加新评论1 条评论

cnpmccnpmc系统架构师gds
2019-09-15 00:02
看到还没有吸取当年CDP把宁夏银行搞跨的教训了
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广