在容灾的方案中,用户每每会根据预算和业务不一样的安全等级要求,制定不一样级别的容灾方式,更有一部分最终用户,对安全及潜在的风险知之甚少,至少我遇到部分客户是这样的。
一般我比较中意与金融行业的客户讨论方案,我想这一态度会有不少同行与我达成共识,最主要由于他们一般走在技术最前沿,更快的尝试新技术(毕竟人家有钱嘛),可以更好的找到方案的切入点,而且管理人员可以更专业的提出一些需求,一般这些需求他们已经认识到,在技术上已经能够解决。
若是咱们不考虑客观因素,如何提供一个高安全级别的方案给用户 ?
分享下以往的方案,以及我对容灾安全方面的一些认识,在内容里我刻意省去一些宏观的理论,好比RPO,RTO,或投资回报率之类的,缘由在于,我想更贴切的表达我想要表达的内容,而那些一般我只是在方案里面凑字数。
前端
High Availability+Remote Replication +CDP数据库
-至少我认为这是目前最佳的业务连续性方案
安全
--------------------------------------
网络
(一)High Availability__高可用
对于高可用性的理解,集成商常常会经过不一样的方式展示给用户,而不管如何展示,都是在尽最大力度包装其方案,使其更完美。致使一些潜在问题没法被客户重视,在从此的运行中,必须花更多时间修复这些“方案Bug”。SNIA权威的定义了高可用性的概念,而目前技术则可以作的更出色,咱们升级这个概念为:架构
当主机意外停机时,业务可以无缝转为连续性,而且可以自动的同步增量数据,无需人工干预。负载均衡
应用主机:运维
可使用应用业务自己的集群功能,如MS Failover Cluster,AIX HACMP,Oracle RAC,VMware vSphere等等,这样可以保障应用主机方面的高可用性。采用第三方集群软件可能要考虑到兼容性和监听参数,而且市场绝大部分的集群软件并不支持-负载均衡机制,仅仅作到应用主机之间的Failover,而这一点Oracle RAC和vSphere绝对会更有优点。异步
存储层:ide
在高可用性的方案中,对存储设备提出了更高,更苛刻的要求,而不只仅基于RAID磁盘的保护。咱们但愿应用主机集群之间的共享卷时刻响应服务。若是不可以作到这一点,主机已经部署的集群系统将会荡然无存,所以,存储层的高可用更为重要。
工具
关于存储层的高可用性方案,咱们有不少选择的余地,可是哪些是咱们想要的?
如下有三种方案可选:
1)基于CDP高可用性方案,目前仍然有普遍的市场,这些产品一般会在应用主机安装代理软件,分拆IO至CDP的设备,待主存储故障,由CDP设备进行指定时间点的回退。由此咱们须要至少考虑4个问题:须要手动挂在备援卷时间一般是多久?对主机原有性能的影响,甚至说最初设计主机硬件平台时,咱们须要把CDP所损耗的性能计算进去?与操做系统的兼容性?支持多少个主机集群?按照自身的经验来讲,我认为这对主机性能是个不小的损耗,而且产生恶性的放大效应,尤为是CPU。当主机业务繁忙时,一定会产生更多的IO,此时主机须要更多的性能处理业务,而就在此时,CDP的代理软件一样提出了更高性能需求,由于有更多的IO要处理,看来EMC当初把分拆IO的工做交给SAN Switch确有优点。另外,分拆IO到CDP的设备是实时写入的吗?这一点很重要。若是是实时的,意味着CDP存储设备写入的性能至少要高于主存储,不然会下降原有的IOPS。若是不是实时写入的,意味著在应用主机会有Buffer,当主机意外停机后,会致使数据丢失,而丢失的程度却居于Buffer到底有多少东西。
经过以上来看,依靠CDP高可用架构设计,考虑的因素确实不少,有更简单的吗?往下看:
2)经过应用主机来完成高可用,IBM在一些方案但愿那些小型环境用户经过AIX逻辑卷管理工具(LVM)完成存储与存储之间的Mirrored,因为两套存储之间是Mirror,当一台存储设备故障,而第二台则能够接管。
VERITAS则是在应用主机完全安装一个文件系统,容许添加更多的存储设备进行Mirror,或者包含了更多的功能。这两方面来看,应用主机在承载业务同时还充当一个软RAID的,这对主机性能影响会比CDP来的更沉重。
不管是CDP或者基于应用主机卷镜像,可以带来不少的思考,若是咱们的容灾节点创建的两个数据中心,好比100km,业务是否会所以而形成隐患,尤为是面对巨大,且没法估算的延迟。其二,为何不能把这些工做单纯的交给存储层来作,而应用主机主机专心的提供生产服务。
3)基于存储层的高可用性方案,目前一线存储厂商均可以提供此方案,依靠中,高端的存储产品。使用两台或多个存储节点集群,存储阵列所提供给应用主机的每个共享卷会Mirroring到另一套存储设备,应用主机不会感知镜像卷的不一样,照常进行读写操做,不少时候依靠应用主机的MultiPath Software对镜像卷进行聚合与Failover工做,只是当一台存储节点故障,MultiPath Software会及时切换至另外一健康路径,而这条路路径有可能指向另外一台存储节点。存储节点之间能够部署在同一个机房,或者有限距离内的同城之间。一些高端的容灾存储已经扩展到了远程复制功能,容许再次把镜像卷复制到另外一个地区来减少灾难影响。这类厂商和技术相似:IBM PPRC,HDS TrueCopy,EMC SRDF......。总之,整个数据同步周期彻底脱离应用主机,彻底由存储之间,及存储之间的高效链路来完成。
用于高可用的存储节点之间,若是支持负载均衡,那就再好不过。咱们都知道,这与存储阵列的双控之间双活彻底不是一个概念。在位于两个站点之间的独立的存储设备,在任意时间,彻底容许应用程序写入数据,而不是一台Active,另外一台等待Failover,这是实际意义上的双活,当与那些具有负载均衡高级集群程序配合,可发挥更大效益,如Oracle RAC,VMware vSphere等等。
基于存储层的高可用无疑是一个不错的选择,是否还有其它注意的?
首先,一般来讲,客户必须购买两个或多个同厂商,同型号的设备,这是被绑定的,其次须要一笔昂贵的预算,由于这类方案的设备一般是中,高端的。再有就是目前已有的存储设备,没法再利旧,或与其相容性的工做等等;(这些问题也可以规避,我写在另外一篇博文)详见存储虚拟化。
若干个容灾存储设备之间,为了保障及时Failover响应,节点之间数据任什么时候刻都会是一致的。OK,这也延伸出来第二个问题,若是位于主存储上面一个卷,遭受到网络***,病毒蠕虫,或者误操做呢?毋庸置疑,备援存储节点也会更改这些数据同步主存储上面的更改,这个问题必须引发关注。
所以,咱们仍然须要借助快照进行辅助,当相似问题发生时,让咱们的数据可以回退到上一个时间点。对于一些关键的业务及要求性比较高的IT组织,CDP技术将是一个不二的选择,在于其提供更密集的时间点,稍后聊CDP。
----------------------------------------------------------------------------
(二)Asynchronous Remote Replication_异步远程复制
以前讨论的高可用方案,很大程度的使咱们业务连续性的需求获得知足,可是一些细节也很重要。好比采用实时镜像的2套设备,一般规定了一个有限的距离。这是由于2套实时镜像的设备之间的线路不只仅是传统的心跳线,而是Mirroring Link's。线路里面每每跑的是信息数据,更远的距离意味着更大的延迟,因此我看到的厂商每每把距离限制在有限距离以内,例如200km。这也是为何咱们看到不少用户的同城容灾中心之间,没有太多超过100km的主要缘由。
当一个地区,或城市发生灾难,意味着咱们将失去全部的数据,哪怕是高可用方案也是荡然无存,因此客户但愿可以再次建立副本,放置在一个更远的地区:另外一个省市或国家。
此时咱们须要使用Remote Replication方案来实现,一般使用Asynchronous Replication(异步复制)技术:较以前者,不会对数据采起回环的验证,对线路的要求固然就没有这么苛刻,而且可以把数据备份到一个理想的场所,关键在于主中心与灾备中心通常使用IP 网络进行数据的,因此消除的距离限制。
另外:以前有供应商提到,远程备份是为了提供灾难后数据可以最快的挂载。我本身不承认这种观点,而且对最终用户我也不会承诺。
1.若是真的了解Asynchronous这种技术,您就会明白,"不会对数据采起回环的验证"是它最大的硬伤,这也是咱们为何不直接使用远程复制,而刻意在本地使用高可用的主要缘由。简单来讲,不少状况下,远端的备份数据与本地的主/副本数据有多是不一致的。在这种状况下,即便挂起远端的数据,也未必会有咱们预想的结果。这种状况的产生多是故障时,数据停留在缓冲区没有传过去,或者在IP网络里。
2.还有更现实的一点,不要更多的追求智能,挂在远程数据中心的备援卷给Standby应用主机。道理很简单,当须要启动远程灾备中心时,一般是本地数据不可用的状态,好比洪灾,火灾,地震。而此时远程数据则是惟一剩下的副本数据,因为上述介绍了远程复制的传输机制,灾难有可能会带来与源数据不一致,若是未做任何计划挂载远端的数据副本颇有可能会形成写入错误,破坏仅剩的数据,最好借助快照或CDP更为安全。
-----------------------------------
(三)CDP_持续数据保护技术
快照功能是一个很古老的技术,可是并无由于岁月流逝被运维人员舍弃,至少我我的仍是比较青睐的。它可以在故障发生时,回滚到上一个时间点,减小了误删除,病毒,文件。但随之业务关键性,时间窗口成为没法忍受之痛。逻辑性损坏带来的损失。
在容灾上,不管是基于哪一种技术的复制,或是基于Block的更新都不会进行数据可靠性的验证。
这里的可靠性我指的是,若是咱们在一个源数据上误删除一个文件,那么同步的副本数据也会执行删除动做。因此咱们须要一个用于回滚的机制,在由于数据逻辑错误而没法挂载时,返回上一个时间点。快照虽然能够提供上一个时间点的回滚,可是对于客户更高级别的要求,早某些状况可能会力不从心,好比快照没法提供一个密集的恢复时间,对一个大容量的卷。假如:作一个快照窗口须要1分钟,那么后面59秒的数据意味着丢失,对于大型数据库系统会有更大的损失。
CDP技术完全的改变了传统数据回滚的方式,使用时间轴进行恢复,用户能够回拨到须要的一个时间点,再也不有时间的备份窗口。弊端每每是损耗一部分空间进行I/O的log记录。若是把快照比做照相机,那么真正的CDP技术则无疑是持续录像机,咱们能够更加密集回放和提取每个帧的镜头。
在这个议题上至少有两点须要先声明:
1)较以前提到CDP,这个议题仅仅是用于对存储之间高可用的一个补充,而不是彻底用于容灾。下图可以看出,数据实时同步和高可用部分,依靠的仍然是存储之间。也所以,在众多的CDP产品方案中,能够选择那些依靠存储层,彻底脱离应用层的产品,也就说CDP执行周期对应用主机彻底透明,更是无需在应用层安装代理软件,使用主机性能分拆IO等等。记住,彻底独立。
2)CDP产品目前不少,可是这里讨论的是SNIA True CDP技术,而不是某些依赖于连续快照的准CDP。
在下图可以看到,防止存储系统意外宕机的——高可用部分仍然是依靠独立的,具有实时复制的节点进行做业(这些节点或许是某些同型号的高端存储,或许是位于存储前端的引擎,又或是内置存储虚拟化技术的网关)。而CDP仅仅是高可用部分的一个附加技术,只是当面临应用主机遇到如:软件升级过程bug(如,数据库),病毒蠕虫,网络***,人为逻辑错误等等,以后才会进行数据状态时间点的回退。但凡发生存储意外停机,或者同城的某个site瘫痪CDP技术将不参与恢复做业,而是依靠高可用的核心部分实时复制,最终,这是一个完善而又无需争议的聪明作法。
------------------------
High Availability+Remote Replication +CDP
注:上述引用的“实时复制”技术SNIA标注是synchronous replication。大意是数据副本被实时的更新在额外节点。
-------------------------------------------------------The end........