居安思危——“震痛”下的灾备建设

标签:
灾备it |
分类: 云计算 |
文/Neocean
- 2000年美国8大网站遭到了拒绝服务攻击,部分停顿达3天,损失总额达到12亿美元。
- 存储系统故障,导致台北桃园机场宕机36小时。
- 电脑瘫痪,伦敦交易所停盘近7小时。
- 9.11事件,世贸大厦70%公司完全不可恢复,从此破产。
-
……
天灾人祸,世事无常。有调查显示,某行业内如果在灾难发生之后两个星期内无法恢复信息系统的使用,将有75%的公司业务完全停顿,并直接使43%的公司倒闭,而金融业在此期间所遭受的损失将高达日营业额的50%。在灾难面前,如何进行政府、企业及各单位职能的快速恢复,尤显得至关重要。灾难备份从宏观上来看,对国家经济、信息化建设和抵御灾难的能力都有莫大帮助。
1. 灾备建设目标
《信息系统灾难恢复规范》( 2007年7月国务院信息化办公室发布的国家标准GB/T 20988-2007《信息系统灾难恢复规范》)已经给需要做灾备的企事业单位一个明确的方向和思路。在灾备建设中需遵循三步七要素,三步即新建物理灾备中心、完成两个数据中心同步以及后期运维体系及决策,其覆盖了建设灾备系统所包含的七要素:备用基础设施、备用网络、数据备份系统、备用数据、技术支持、运行维护管理、灾难恢复预案。两者之间的关系如图1所示:
http://www.h3c.com.cn/res/200910/13/20091013_854840_image001_650646_30008_0.png
灾备建设是以“恢复”为目标,“备份”是手段。不同的业务系统,存在不同的安全需求、不同的保护等级,因此需要选取不同的灾备模式、不同的灾备标准,完善并实现各系统的灾难恢复。经过分析,灾备建设需要考虑的重点如下:
-
灾备模式
灾备类型不同,应对的策略也不尽相同。对于IT系统灾难和人为灾难,可以在本地数据中心或同城灾备中心完成灾难恢复;而对于自然灾害、社会灾难,则需要通过异地灾备系统,对业务运营进行保障。比较典型的方式是“两地三中心”,即设立主生产中心、同城灾备中心和异地灾备中心。建立异地灾备中心的优势在于它具有强大的跨地域灾难抗御能力,能够有效防止物理设备损伤所产生的灾难后果,同时实时数据复制提供强大的数据交换能力。
由于信息系统应用规模越来越庞大,同单位跨广域会有多个数据中心,如果单独建立一对一的灾备,在投入成本、管理、维护上显然存在极大难度。因此多对一的运营级灾备系统成为了灾备领域发展的重要趋势之一,目前在国内已有多个成功实践案例,也成为后续灾备领域的新兴关注重点。
-
灾备等级
灾难恢复等级的确定是信息系统灾备建设的重要考虑因素。《信息系统灾难恢复规范》将灾难恢复能力划分为6级,灾难恢复能力等级越高,对信息系统的保护效果越好,但同时成本也会急剧上升。因此,需要根据成本风险平衡原则(即灾难恢复资源的成本与风险可能造成的损失之间取得平衡),确定业务系统合理的灾难恢复能力等级。对于多个业务系统,不同业务可采用不同的灾难恢复策略。
灾难本身是个小概率事件,但影响却是巨大的,提高投资回报率是必须考虑的重点。因此,灾难恢复等级的确定是信息系统灾备建设的重要考虑因素。灾备等级主要从RTO(恢复时间目标)和RPO(恢复点目标)来考虑,需要对业务和数据进行重要性评估和分级,以确定相应的RPO和RTO目标。对于多业务系统要按需划分灾备等级,灾备等级应与业务和数据的重要程度相匹配。确定级别后,需要调研IT应用环境,确定合适的灾备技术,并检查灾备建设成本是否符合预算并作相应调整,最终达到保护等级与成本投资的平衡点,获得最高的投资回报率。
根据对数据业务恢复的RPO和RTO的不同要求,灾备业务建设一般可分为:应用级灾备、数据级灾备和备份级灾备。保护等级越高,成本会呈级数增长。没有任何一种技术或方法能适应所有业务的灾难备份需求,最好的解决方案是采用不同等级灾难备份与恢复的组合,实现最大业务范围的灾难恢复和最少的成本投入。
-
灾难恢复
灾备的最终目标是业务的恢复和连续运作能力。达到这个目标,需要从两个维度来考虑。
第一,从灾备实施技术上看,异构系统、灾备链路、数据一致性、应对软灾难/硬故障的安全策略等等,都是业务是否可恢复的考虑重点。除了恢复所需要的数据资源,IT设施(如服务器、网络、机房、办公管理系统等)的备份、人员的备份、预定的日常维护与灾难应急处理流程对于成功的灾难恢复实施而言同样必不可少。
第二,如果缺乏实战应急演练,灾备建设也将只是纸上谈兵。因此,灾备演练是最重要的保障灾难恢复的手段之一,目的就是为了在平时锻炼人员、测试系统、发现问题,并不断改进。根据演练的不同投入和应用阶段,分为桌面演练、模拟演练和实际切换演练。这三种演练方式对于成本、人员等投入和涉及的内容都不同,满足对不同等级的灾备演练需求。
2.解决传统灾备建设难点
从技术的角度看,在灾备建设的三步曲中,最复杂的环节是第二部——两个数据中心的同步。因为此步骤面临着诸多技术上难题,这也是传统灾备系统建设复杂性的根源。
在传统的灾备部署中,主要会遇到三大难题。首先是灾备距离,灾备半径的大小是衡量灾备的重要指标之一,灾备系统跨广域部署的时候,如何能够克服FC技术在传输距离上的限制?其次,面对本地生产中心多业务系统、七国八制的异构封闭环境带来的兼容互通性问题,如何进行系统的整合?再者,灾备技术广泛,实现的方式有基于网络层、存储层、应用层等,实现的级别有应用级、数据级、备份集,该如何选择才能避免初期的技术选择在方向上不出现偏差?针对这三大难题,《信息系统灾难恢复规范》给出了指导方针:“统筹规划、资源共享、平战结合、等级容灾”。为了解决这些问题,如今的灾备建设就必然要完成三大跨越:
-
从局域到广域的跨域
为了达到远距离传输目的,若采用传统的FC技术,就必须购买协议转换设备,实现FC协议和IP协议的转换。不仅增加了故障点、增加了投入,还增加了后期维护成本。同时,传统的灾备方式很少考虑远距离灾备中心的数据是否可恢复以及验证灾备数据是否可用。
因此,实现从局域到广域的跨越,是实现灾备的必然过程。IP存储大幅度简化了灾备的远程部署,基于IP的远程复制技术克服了灾备距离的限制,只要IP可达均可进行灾备系统建设,而不需要任何的协议转换设备。
同时,根据灾备广域网链路带宽的不同、应用系统对RTO/RPO要求的不同,H3C能够在传统数据同步方式如镜像等基础之上,提供更高效、灵活的策略复制、自适应复制(如表1所示),适用于不同的灾备等级需求。
http://www.h3c.com.cn/res/200910/13/20091013_854841_image002_650646_30008_0.png
表1:数据同步方式对比
在链路优化上,H3C的微扫描和块增量技术与传统方式相比,能把数据进行以字节为单位的细粒度划分。广域网上仅对变化的数据量进行复制,在低带宽的情况下也能轻松实现远程灾备,最终实现效果类似于传输中的“重复数据删除”。
如何保障灾备系统的数据一致性,确实是个很大的难题。为什么这么说呢?数据中心运行中,有大量的中间状态数据,即存放在CPU、内存、控制器缓存的数据,一旦业务突然中断,以上数据没有及时存到存储阵列上,对于数据库这样的应用系统来说,极有可能因为数据不一致而导致应用无法启动。H3C通过一致组、快照代理等技术保障所有中间状态数据一个也不落下,确保灾备数据可用、可恢复。
-
从封闭到开放的跨越
数据中心的发展必然是一个循序渐进、逐步建设的过程,在此期间,数据中心会在不同时期采用一系列不同品牌、不同技术的服务器、数据库、应用系统、存储等产品。由于不同厂商在技术兼容性上很难实现互联互通,使得我部署灾备的时候非常棘手,很难达到平滑兼容现有生产环境,进行灾备演练等一系列灾备目标。
存储虚拟化是解决互联互通难题的最有效手段之一,通过虚拟化实现了三方面的开放:网络层、存储层和主机层。不仅消除了应用层和存储层的限制,在完成系统整合的基础上,通过标准化的开放平台实现生产中心和灾备中心的无缝对接。H3C基于存储和主机的虚拟化进一步丰富了标准化平台的选择。
-
从复杂到简单的跨越
对于灾备系统的RTO和RPO目标,一般都希望RTO=0,RPO=0。这个目标固然好,但理想和现实总有差距。数据丢失量=0,切换时间=0,不仅意味着技术实现困难,同时也需要以付出巨额的投资为代价。每个行业每种业务对灾备的等级要求不尽相同,如何选择最合适的灾备方案,往往让信息主管们陷入多难状态。
在进行灾备技术选择的时候,需要细致分析各单位IT系统的危险程度,有效区分关键业务和非核心业务系统,最终达到业务系统的实际需求和总体成本的平衡点。
在此基础之上,H3C制定了灵活的灾备技术体系,提供了灵活的备份级、数据级和应用级解决方案,覆盖灾备恢复规范的6个等级。最重要的是不同等级的灾备方案可以进行灵活地提升,可有效地保护灾备建设的前期投资,使得整体的灾备技术选择不会出现方向上的问题。H3C通过基于IP存储的远程访问技术和虚拟磁带库技术解决备份级灾备的问题,通过复制、CDP等技术,可以实现数据级的解决方案。此外,通过双机双阵列以及与第三方合作的模式可以无缝升级到应用级灾备。通过成熟、灵活、标准化的解决方案,在很大程度简化灾备的技术选择。
3.数据级灾备和应用级灾备
无论是过去传统的灾备建设,还是今天跨越众多难题后的新灾备构建,很多CIO在一开始就会把异地应用级灾备放在首位,并会特别强调:数据要零丢失、应用要自动切换,这其实是一个认识上的误区。灾备的重要性是毋容置疑的,但这并不意味着灾备就一定要建应用级,从实际需求出发,“选择适合自己的”才最重要。以下将对灾备建设中最重要的两个模式——数据级灾备和应用级灾备作阐述。
灾难备份从保障的程度上一般分为三个级别:数据级、应用级和业务级。其中数据级、应用级都是在IT系统的范畴之内而言,业务级则考虑到IT系统之外的业务因素,包括备用办公场所、办公人员等。
数据级灾备的关注点在于数据,即灾难发生后可以确保用户原有的数据不会丢失或者遭到破坏。较低等级的数据级灾备可通过备份的数据以人工方式保存到异地,而较高级的数据灾备方案则依靠基于网络的数据复制工具,实现生产中心和灾备中心之间的异步/同步的数据传输。
应用级灾备是在数据级灾备的基础上,把应用处理能力复制一份,也就是在异地灾备中心再构建一套支撑系统。支撑系统包括数据备份系统、备用数据处理系统、备用网络系统等部分。应用级灾备能提供应用接管能力,从而尽量减少系统停机时间,提高业务连续性。
灾备建设中,数据级以及应用级该如何选择?我们可以从灾备的目标、投入产出比等多个角度进行分析。
- 异地灾备应对的是小概率事件,需考虑投入产出比
无论是面对占据灾难比重44%的硬件故障,还是占据49%比重的软件、人为、病毒等故障,需要的都不是远程的灾备保护,本地的数据保护就以足够;只有剩下的7%的自然灾难和社会灾难,才真正需要异地远程灾备。也就是说,通过双机热备、本地备份、CDP这些在线/近线的数据保护手段,基本能够解决93%的系统故障;而远程异地灾备,不论是数据级还是应用级,应对的都只是7%的小概率事件。
既然远程灾备的目标是应对小概率事件(同城灾备是高效率的小概率事件,异地应用级是低效率的极小概率事件),那么,灾备的投入产出比就非常重要。一般而言,应用级灾备的投入会是数据级灾备投入的2-3倍,甚至更高,而且每一次从生产中心切换到异地灾备中心都需要耗费的大量人力、物力和时间,回切的过程也同样复杂而耗费精力巨大。
相对于应用级灾备而言,数据级灾备的投入产出比会更高。与其建设昂贵的异地应用级灾备,不如做好本地的数据中心保护,再配合远程的数据级灾备。因此,在现实环境中,“本地CDP+远程数据级灾备”是比较常见的数据保护模式。
- 灾备建设需要考虑循序渐进,分级建设
灾备建设的投入很大,不能一蹴而就,需要循序渐进。数据级灾备是应用级灾备的基础,应用级灾备是数据级灾备延展,两者并不冲突。很多用户在建设灾备系统时,会先做数据级灾备,后续再扩展成应用级灾备。分析其原因及好处如下:
一,与异地应用级的灾备相比,异地数据级灾备的投入比较小,却可以在极端情况发生时起到作用。在出现如地震等大面积的自然灾害的情况下,用户是可以接受一个相对比较长的业务恢复时间,外界也会有较大容忍度。有了异地数据备份后,就可以用几天或更长一点的时间来恢复业务,而不至于彻底瘫痪。
二,灾难备份建设不是一个简单的技术方案,而是一项系统工程,灾备中心的基础建设、IT系统需要一个逐步建设的过程,运行维护团队、技术支持力量需要长期培养锻炼才能具备理想的应急能力。因此,先做数据级灾备,积累建设经验,培养灾备队伍,具备相当的能力之后,再建设应用级灾备系统就会容易很多。
三,在从数据级灾备向应用级灾备过渡的过程中,还要根据业务系统按需划分灾备等级,不能一刀切。即使在同一个单位或者部门内,也存在多个应用系统。这些信息系统的重要性、复杂度都各不相同,对应的灾备等级也不相同。因此,需要根据业务系统的实际需求来逐个确定灾备等级。一般而言,“2/8原则”是比较常见的,也就是20%的应用是关键和核心的,需要应用级灾备,80%的应用是非关键的,数据级灾备则足够。在实际的异地灾备中心建设中,这种应用级和数据级混合的建设模式是最典型的。
在应用级灾备的建设过程中,存在一些常见的误区,它们是:
(1)
应用级灾备就是业务自动切换; (2)
应用级灾备就是数据零丢失; (3)
应用级灾备就是通过应用层(服务器或者应用软件)来做灾备; 就第一个误区而言,灾备中心的业务接管是一个管理和决策的过程,绝不是某一项具体的技术。技术不能替代管理,技术也不能替代决策,这早已成为了业界的共识。完善的灾备预案、适时的灾备演练、专业的技术支持队伍才是保障应用级灾备发挥作用的关键。
- 灾备切换是一系列操作的组合,不是单一的技术动作
无论是生产中心还是灾备中心,彼此的业务之间都有逻辑的联系,服务的启动顺序也有严格的要求。比如数据库必须先启动,之后才能启动应用程序;应用服务器接管完成,才能进行网络的切换。如果应用程序先于数据库启动,结果肯定会是出错。在进行实际的灾备切换过程中,操作员都会有一本完整的切换操作手册,上面说明了软件、硬件、服务的启动顺序,每一步的操作内容和预期的目标等等。只有严格按照流程操作,才能确保灾备的顺利切换。
- 灾备切换是一个决策的过程,不能依靠单一的技术实现
灾难的类型多种多样,不是每一种灾难都需要启用灾备中心。而每一次灾备中心的启用,都需要耗费大量的人力和物力。因此,在发生灾难时,首要的是快速判断灾难的类型、可恢复性和后果等内容,然后根据灾备预案来决定是否启用灾备中心。比如,通过本地备份只需要半小时就能在本地恢复业务,就完全不需要启用灾备中心。此外,应用级灾备的对象往往是关键的业务。越关键的业务,切换就越需要慎重,因此不能根据单一的个人意愿,需要的而是集体的决策。
说到第二个误区“应用级灾备就是数据零丢失”,很多CIO都认为难以理解。应用级灾备当然要求数据零丢失,这一点通过磁盘阵列的同步镜像软件就能实现,技术上根本没有难度,为什么说这是误区呢?让我们从技术上做一些分析。
- 镜像并不能保证数据的完全同步
磁盘阵列具备同步镜像功能,能够实现主备磁盘阵列的完全数据同步。但是,磁盘阵列的数据同步并不意味着应用的数据也是同步的。为了提高性能,服务器一般都采用了写缓存,写缓存的数据并没有实时的真正写入到磁盘阵列上。因此,磁盘阵列上的数据与应用的数据是存在差异的。如果生产中心发生了故障,即使磁盘阵列的数据是同步的,也无法保障应用服务器的缓存数据同步传输到了灾备中心。
- 镜像会降低生产中心的性能
镜像的实现机制是:一个写IO要同时得到主备磁盘阵列的响应后,才能返回给服务器写OK。也就是说,对数据的一个写操作,需要主备磁盘阵列的二次写操作确认和主备站点的来回传输,时延会是普通写操作的3-5倍,甚至更高。因此,采用数据镜像后,会给生产中心带来比较明显的性能影响。此外,如果链路不稳定,出现闪断、抖动等情况,就会进一步加大生产中心的影响。
从上述的分析可以看出,镜像方式并不像想象的那么完美。那么什么机制才是比较有效的呢?
一些厂家采用的准实时复制技术可以给出答案,比如H3C的自适应复制技术。这种技术中,IO写入主磁盘阵列就返回OK,然后复制模块再将这个写IO采用异步复制的方式传输到灾备阵列。这种方式不会降低主磁盘阵列的性能,还能做到准实时的数据同步。如果把自适应复制技术和快照技术相配合,还能保证灾备中心的数据一致性,从而实现灾备中心的数据丢失量最少,数据肯定可用。
第三个误区也是我们经常碰到的,主要是把数据同步和应用接管两个概念混淆了。应用级灾备包括两个方面:数据同步和应用接管。其中数据同步是应用接管的基础,但数据同步和应用接管是两种不同的技术。
数据同步的技术多种多样,既可以基于存储阵列的复制软件实现(如EMC MirrorView、H3C Replication等),也可以基于服务器或者应用软件实现(如Veritas VVR、Oracle DataGuard等)。但不管采用何种技术,都只是在不同的层面实现了数据的同步。如果要具备应用接管的能力,还需要其他组件的配合,比如DNS域名切换解析、备用网络启用、应用服务切换等等。在现实环境中,最常见的应用级灾备方案是“磁盘阵列的数据复制+备用服务器”,也就是通过磁盘阵列来实现数据同步,通过备用服务器提供业务接管能力。
由于灾备所承担的是用户最关键的核心业务,其重要作用勿庸置疑。灾备涉及到众多技术以及众多厂商的各类解决方案,其复杂性也不言而喻。其中,数据级灾备是应用级灾备的基础,数据级灾备关注于数据的备份和恢复,应用级灾备提供比数据级灾备更高级别的业务恢复能力,用户需要根据自身的需求选择合适的灾备技术,建设适合自己的灾备系统。
结束语
灾备事关我们能否迅速从突发事件中扭转困局,关系到企业的业务能否持续经营。因此,灾备对于各行业的信息化建设乃至企业进步,是机会与责任并重!