一、电力企业面临的挑战
对于电力企业赖以运行的数据来说,灾难涵盖了所有可能导致数据遭到破坏的计划外事件都属于灾难的范畴,其中包括自然灾害(地震、台风、火灾、水灾等),企业运行所依赖的服务的中断(电力中断、网络中断等),IT系统故障(IT设备硬件、软件故障),人员错误操作,恶意攻击(黑客、病毒),以及恐怖袭击等。
随着数据的可用性成为区别电力企业信息化水平的重要指标,企业正在将越来越多的资源用于确保业务的连续运营。而数据的丢失必然会导致企业正常的业务运作中断,带来巨大的经济损失、声誉损失、以及客户忠诚度下降等各种损失。
据IDC的统计数字表明,美国在2000年以前的10年间发生过灾难的公司中,有55%当时倒闭,剩下的45%中,因为数据丢失,有29%也在两年之内倒闭,生存下来的仅占16%。Gartner Group的数据也表明,在经历大型灾难而导致系统停运的公司中有2/5再也没有恢复运营,剩下的公司中也有1/3在两年内破产。
或许以上案例颇有危言耸听之嫌,毕竟山崩地裂大火熊熊的场面不常出现。但造成损失的不止是这些恐怖性的灾害,失手按错键、错点鼠标、或者失手打翻一杯水泼到笔记本电脑上,都可能给带来巨大的麻烦。因此,对容灾来说,“亡羊补牢,犹未晚也”的观点显然已经过时,“防患于未然”才能做到未雨绸缪。
国务院信息化工作办公室发布的《重要信息系统灾难恢复指南》中,这样定义了容灾——“由于人为或自然的原因,造成信息系统运行严重故障或瘫痪,使信息系统支持的业务功能停顿或服务水平不可接受、达到特性的时间的突发性事件,通产导致信息系统需要切换到备用场地运行”。
因此,任何必须恢复的数据访问中断都是灾难。进一步分析各种可能导致灾难的发生的原因,灾难可以分为以下几种:
i. 自然灾难:包括火灾、台风、水灾、地震等突发自然灾害造成的业务系统的灾难,而不同地区的自然灾害的发生有一定的统计概率,而且自然灾害的影响范围是有一定区域的。
ii. 社会灾难:包括企业运行所依赖的服务的中断(电力中断、租用网络中断等)、恐怖分子制造的爆炸、战争引起定点破坏等灾难,国内外社会不安定因素的存在,必须引起足够的忧患意识。美国“911”事件就是一个很好的例子,一些没有采取任何容灾措施的企业由于核心业务数据的破坏而最终破产,而一些采用了容灾措施的企业得以生存,有的建立了备用业务系统的企业的业务能够很快恢复。
iii. IT系统灾难:包括IT设备硬件、软件故障等。
iv. 人为灾难:包括IT系统管理人员的误操作、来自网络的恶意攻击、计算机病毒发作造成的数据灾难。近几年,人为灾难更为突出,特别是计算机病毒造成的数据损失触目惊心。采用后发制人策略的防计算机病毒系统难以保证数据的安全,有必要建立数据的备份机制。
显然,影响电力信息系统安全的因素是多方面的,需要采用不同的技术手段来解决。所谓容灾,就是为了防范由于自然灾害、社会动乱、IT系统故障和人为破坏造成的电力企业信息系统数据损失的一项系统工程。
通常,把正常情况下支持日常业务运作的信息系统称为生产系统,而其地理位置则称为生产中心。当生产中心因灾难性事件(如火灾、地震等)遭到破坏时,为了迅速恢复生产系统的数据、环境,以及应用系统的运行,保证系统的可用性,这就需要异地容灾系统(其地理位置称为灾备中心)。
建立异地灾备中心的优势在于:
i. 强大的一级灾难抗御能力。
ii. 有效防止物理设备损伤产生的灾难后果。
iii. 提供99.9999%的安全机制。
iv. 实时数据复制提供强大的数据交换能力。
显然,建立灾备中心可以应对绝大部分的灾难(包括火灾、自然灾害、人为破坏等意外事件)。除了从容面对上述突发式灾难的威胁,一个完备的容灾系统还应该能够处理各种渐变式灾难,能够从病毒损害、黑客入侵、或者系统软件自身的错误等导致的数据丢失的状况 下,快速重建生产中心。
通常,应用服务器通过SAN访问存储资源的拓扑结构图如图3-1所示。
图3.1:SAN存储结构
SNIA(Storage Networking Industry Association,存储网络工业协会)针对SAN共享存储模型进行了进一步的细化,把SAN存储分为:
i. 应用层
ii. 文件/记录层
iii. 块管理
iv. 物理存储设备
如图3.2所示。
图3.2:SNIA共享存储模型
因此,可以从文件/记录层、块管理层来实现容灾,如图3.3所示。根据容灾的发起端来进行划分,容灾可分为:
i. 数据库级容灾
ii. 卷管理级容灾
iii. 网络级容灾
iv. 存储设备级容灾
图3.3:容灾的实现方式
以Oracle数据库为例,数据库级容灾方式的主要由第三方的软件或者Oracle自带的Data Guard 中的Logical Standby来实现,其传输的是SQL指令或者重做日志文件。下面以第一种方式进行详细说明。
这类第三方软件的原理基本相同,其工作过程可以分为以下几个流程:
第1步:使用Oracle以外的独立进程,捕捉重做日志文件(Redo Log File)的信息,将其翻译成SQL语句
第2步:把SQL语句通过网络传输到灾备中心的数据库,在灾备中心的数据库执行同样的SQL。
显然,数据库级容灾方式具有如下技术特点和优势:
i. 在容灾过程中,业务中心和备份中心的数据库都处于打开状态,所以,数据库容灾技术属于热容灾方式;
ii. 可以保证两端数据库的事务一致性;
iii. 仅仅传输SQL语句或事务,可以完全支持异构环境的复制,对业务系统服务器的硬件和操作系统种类、以及存储系统等都没有要求;
iv. 由于传输的内容只是重做日志或者归档日志中的一部分,所以对网络资源的占用很小,可以实现不同城市之间的远程复制。
其实现方式也决定了数据库级容灾具有以下缺点:
i. 对数据库的版本有特定要求;
ii. 数据库的吞吐量太大时,其传输会有较大的延迟,当数据库每天的日量达到60G或更大时,这种方案的可行性交差;
iii. 实施的过程可能会有一些停机时间,来进行数据的同步和配置的激活;
iv. 复制环境建立起来以后,对数据库结构上的一些修改需要按照规定的操作流程进行,有一定的维护成本。
v. 数据库容灾技术只能作为数据库应用的容灾解决方案,如果需要其他非结构数据的容灾,还需要其他容灾技术作为补充
卷管理级容灾有多种实现方式,而基于主机逻辑卷的同步数据复制方式以VERITAS Volume Replicator(VVR)为代表。VVR是集成于VERITAS Volume Manager(逻辑卷管理)的远程数据复制软件,它可以运行于同步模式和异步模式。在同步模式下,其实现原理如图3.4所示。
图3.4:应用服务器实现同步远程复制
当应用程序发起一个I/O 请求之后,必然通过逻辑卷层,逻辑卷层在向本地硬盘发出I/O请求的同时,将向异地系统发出I/O 请求。其实现过程如下:
第1步:应用程序发出第一个I/O 请求;
第2步:本地逻辑卷层对本地磁盘系统发出I/O 请求;
第3步:本地磁盘系统完成I/O 操作,并通知本地逻辑卷“I/O 完成”;
第4步:在往本地磁盘系统I/O 的同时,本地主机系统逻辑卷向异地系统发出I/O 请求;
第5步:异地系统完成I/O 操作,并通知本地主机系统“I/O 完成”;
第6步:本地主机系统得到“I/O 完成”的确认,然后,发出第二个I/O 请求。
因此,必须在生产中心和灾备中心的应用服务器上安装专用的数据复制软件以实现远程复制功能,并且两个中心之间必须有网络连接作为数据通道。
使用这种方式,对存储系统没有限制,同时可以在服务器层增加应用远程切换功能软件从而构成完整的应用级容灾方案。
但是,这种数据复制方式也存在一些明显的不足:
i. 对软件要求很高,生产中心和灾备中心的每一台应用服务器上都需要安装专门的软件,随着服务器数目的增加,成本也线性增加。因此需要考虑软件的采购成本,以及对应用服务器平台的支持。
ii. 每一个应用服务器对应一个节点,需要考虑实施、管理和维护的复杂性。
iii. 需要在服务器上运行软件,不可避免的对服务器性能会有影响,占用服务器宝贵的CPU、内存等资源。
iv. 不管是同步、还是异步方式,必须要考虑网络性能。由于这些复制软件是基于应用级别的(在设备级别以上),当在网络情况不佳的情况下,主机操作系统或者某个硬件的故障,会造成整个复制数据的不一致或完全损坏。而且,这类软件也无法提供基于时间点的快照功能。
v. 存储目标数据的逻辑卷不能被业务系统所使用,属于冷容灾方式。
网络级容灾主要是指基于虚拟存储技术的容灾。使用虚拟化数据管理产品实现的远程复制原理如图3.5所示。
当应用程序发起一个I/O 请求之后,向本地硬盘发出I/O请求必然经过虚拟化数据管理产品,虚拟化数据管理产品向本地硬盘写入数据,同时把数据的变化量保存到特定区域,通过不同的方式灵活的把数据同步到灾备中心。其实现过程如下所示:
第1步:应用程序发出第一个I/O 请求,本地逻辑卷层把I/O 请求发送给虚拟化数据管理产品;
第2步:虚拟化数据管理产品向本地磁盘系统发出I/O请求,同时把数据的变化量保存到特定区域;
第3步:本地磁盘系统完成I/O 操作,并通知虚拟化数据管理产品“I/O 完成”;
第4步:虚拟化数据管理产品通知本地逻辑卷层“I/O 完成”,本地主机系统得到“I/O 完成”的确认,然后,发出第二个I/O 请求;
第5步:同时,虚拟化数据管理产品根据预设的策略把数据变化量同步到灾备中心;
第6步:异地系统完成同步,并通知本地系统“I/O 完成”。
可以看出,数据的写入必须由虚拟化数据管理产品进行转发,存储路径变长,因此会对性能有些影响。
但是从容灾的实现角度来说,存储虚拟化容灾基于存储虚拟化技术,因此具有应用层容灾和存储设备容灾无法比拟的优势:
i. 整合各种应用服务器(包括不同的硬件、不同的操作系统等),并且无需在应用服务器上安装任何软件,远程复制的过程不会对应用服务器产生影响。
ii. 整合各种存储设备(包括不同的厂商、不同的设备接口等),因此存储设备可以完全异构,不同厂商不同系列的阵列可以混合使用,大大节约客户方案复杂程度和实施难度。
iii. 方案的实施可以完全不在乎客户现有的存储设备是否支持远程数据容灾,大大保护客户投资,增加了投资回报率。
iv. 生产中心和灾备中心的多个存储设备可以作为一个统一的存储池进行管理,存储空间利用率和存储效率大大提高。
v. 针对不同的应用服务器通过统一的平台实现容灾,管理维护大大简化。
vi. 通常存储虚拟化产品能够支持复制、镜像等主流的容灾技术,用户可以为不同应用灵活选择,制定“最适合”的容灾方案。
通过存储控制器实现的设备级数据远程镜像或复制是传统容灾方式中最高效最可靠的方式。基于磁盘系统的同步数据复制功能实现异地数据容灾,其实现原理如图3.6所示。
当应用服务器发出一个I/O 请求之后,I/O 进入本地磁盘控制器。该控制器一方面在本地磁盘系统处理I/O,同时通过专用通道、FC光纤通道(IP over FC)或者租用线路,将数据从本地磁盘系统同步复制到异地磁盘系统。其实现过程如下:
第1步:应用服务器发出第一个I/O 请求;
第2步:本地磁盘系统在处理I/O请求的同时,会向异地磁盘系统发出I/O 请求;
第3步:异地磁盘系统完成I/O 操作,并通知本地磁盘系统“I/O 完成”;
第4步:本地磁盘系统向应用服务器确认“I/O 完成”,然后,主机系统发出第二个I/O 请求。
因此,远程复制由生产中心和灾备中心的存储系统完成,对应用服务器完全透明。其缺点主要在于:
i. 不能跨越品牌,只能在相同的产品甚至是相同的型号之间实现容灾。
ii. 无法提供足够的灵活性,且成本很高,并不能保护用户之前在存储上的投资。
iii. 两个中心之间必须有专用的网络连接作为数据通道,使得该容灾系统对通信线路的要求较高,初期成本也非常昂贵。
iv. 由于这些设备往往采用的是一些专用的设备和通信方式,安装维护都比较复杂,往往由于设置的不周全或者通信距离或线路的限制,造成容灾系统实施的失败。
综合比较数据库级容灾、卷管理级容灾、网络级容灾、以及存储设备级容灾,几种方式的差异如表3.1所示:
比较项 | 数据库级容灾 | 卷管理级容灾 | 网络级容灾 | 存储设备容灾 |
理想距离 | <1000km | <100km(同步) <1000km(异步) | 无要求 | <100km(同步) <1000km(异步) |
链路要求 | 已有FC/普通IP网络 | 专用链路 | 已有FC/普通IP网络 | 专用链路 |
对软件的要求 | 专用软件 | 专用软件 | 无 | 无 |
对应用系统性能的影响 | 很大 | 很大 | 无 | 无 |
是否需要专用存储系统 | 否 | 否 | 否 | 是 |
实施简单性 | 复杂 | 复杂 | 简单 | 复杂 |
维护简单性 | 复杂 | 复杂 | 简单 | 复杂 |
成本 | 软件成本较高 | 软件成本较高 | 低 | 硬件成本、部署成本较高 |
表3.1:容灾方式比较