王海波,南京邮电学院硕士研究生,中国移动(深圳)有限公司研发中心软件工程师,研究方向为计算机软件应用。
容灾的重要性
随着企业信息系统的普及和整个社会电子商务的发展,现代企业的运作日益依赖于信息技术。越来越多的关键数据被存储在计算机系统中,这些数据的丢失和损坏将对企业造成难以估量的损失。同时企业对于数据可用性的要求也大为提高,因为即使是短时间的系统停机也将造成业务停顿和经济损失。
传统的数据备份技术和服务器集群(Cluster)技术足以避免由于各种软硬件故障、人为操作失误和病毒侵袭所造成的破坏,保障数据安全;但当面临大范围灾害性突发事件,如地震、火灾、恐怖袭击时,上述技术就无能为力了。此时若想迅速恢复应用系统的数据,保持企业的正常运行,就必须建立异地的灾难备份系统——容灾系统(Disaster Recovery)。比如在美国“9. 11”事件中,驻扎其间的几千家跨国企业集团的电脑系统数据资料顷刻间化为乌有,很多公司多年积累的经营数据毁于一旦,公司处于崩溃的边缘;而一些建立了容灾系统的公司,却在第二天就恢复了正常运转。此次事件再次唤起了人们对数据安全性和容灾技术的重视。
一旦IT 系统和数据遭到灾难性打击,企业将面临破产的威胁,因此数据资料的完好保存是企业在灾难后能够继续生存的保证。虽然企业不能控制或防止灾难的发生, 但如果灾难发生时已做好了相应的准备,已将业务数据备份存储在距离主要业务中心数里之外的远程备份中心,就可以保护重要数据,就可以保持企业的持续运作,从而轻松面对各种灾难。
近年来我国移动通信的快速发展,业务量迅猛增长,新业务不断出现,由此对移动电话漫游计费清算系统提出了更高的要求。由于计费清算中心担负着计费数据的采集、接收和处理工作,以及国际、国内漫游计费功能等,因此对其运行可靠性要求很高。为了使我国的移动电话计费结算系统能够适应未来移动通信业务发展的需要,计费结算处理时间缩短,资金回收加快,提高移动通信的服务水平,就需要建立健全的数据管理策略, 避免各种灾难带来的数据丢失和业务中断。中国移动通信公司在对全国移动计费清算中心进行了大规模容灾化改造,已经获得了良好的效果。以下对计费结算中心的容灾中心建设方案进行简要论述。
容灾技术的基本原理
传统的数据系统的安全体系主要有数据备份系统和高可用(HA)系统两个方面。备份系统提供应用系统的数据后援,确保在任意情况下数据具有完整的恢复能力。高可用(HA)系统确保本地应用系统在多机环境下具有抗御任何单点故障的能力,一旦系统发生局部的意外(如操作系统故障、掉电、网络故障等) ,高可用系统可以在最短的时间迅速确保系统的应用继续运行(热备份) 。它们属于容错系统, 就是系统在运行过程中, 若其某个子系统或部件发生故障, 系统将能够自动诊断出故障所在的位置和故障的性质, 并且自动启动冗余或备份的子系统或部件, 保证系统继续运行, 自动保存或恢复文件和数据。容错的机制, 就是为系统提供关键子系统或部件的冗余或备份资源, 如电源、磁盘驱动器、中央处理器、控制器、存储器以及网络交换部件等。容错和容灾共同之处都是为了保证系统的安全可靠; 其主要的区别是所针对的导致系统中断的原因不同, 容错是为了防止网络内部的某些子系统出现故障, 而容灾是为了防止由于自然灾害等导致的整个系统全部或大部分发生问题。
容灾技术则是通过在异地建立和维护一个备份系统,利用地理上分散性来保证数据对于灾难性事件的抵御能力。容灾系统在实现中可分为两个层次:数据容灾和应用容灾。数据容灾指建立一个异地的数据系统,作为本地关键应用数据的一个备份。应用容灾是在数据容灾的基础上,在异地建立一套完整的与本地生产系统相当的备份应用系统(可以是互为备份),在灾难情况下,远程系统迅速接管业务运行,因此,应用容灾是更高层次的容灾系统。
应用级容灾的实现
本期容灾备份工程的总体建设目标是:在尽量不影响原来系统业务功能的条件下,在北京中心和深圳中心之间,分别为国内漫游业务系统和国际漫游业务系统建立容灾备份机制,以确保当主系统发生意外灾难或有计划的长时间停机的情况下,备系统能够在短时间内接替、延续主系统的生产任务,并保证主系统以前的处理结果在备系统中能够继续使用,同时与备系统的后续处理保持数据一致。
实现应用系统的容灾可以采用多种技术手段,如基于数据库复制的方式;基于操作系统文件系统复制的方式;基于高端联机存储设备(磁盘阵列)之间的数据写操作同步的方式,以及应用软件数据同步的方式。各种实现手段均有其各自的优缺点。
采用硬件同步方式的优点是对应用程序透明,在日后增加新业务时的软件维护费用很低。但由于北京和深圳地理位置相距2000多公里,TB一级的数据传输量,每天将产生上千万张的用户话单,如果采用采用传统的磁盘镜像、数据库复制、操作系统级同步等低层次的数据同步方案主备系统之间2000多公里的距离上实现完全同步,即使使用光纤,延迟会比较大,等待同步的握手时间会比较长,这样每天传输TB级的数据在实现上是有一定困难的,并且由于网络传输距离远,使得延迟增大,会影响主系统生产性能;另外,建设成本也过于庞大,经过初步测算,如果使用硬件同步的方式,按照TB级数据的量,它在北京和深圳要申请的线路(广域网络专线租用)带宽要超过100兆,这就需要投入很高的日常运作成本,这笔投资非常大,而这不仅仅是一次性投资,它要租用一个上百兆的线路的话,每个月还要交付数目不菲的线路租用费,所以使用成本难以令人接受,因此采用通常意义上的数据镜像备份技术是不现实的。
应用级同步处理方式是指北京和深圳都采用相同的应用软件,对主系统和备系统两个中心的软件、硬件进行扩容改造,使得两套系统具有相同的处理能力,并具有数据同步处理的能力,进而实现容灾备份。这种方案全部依赖于应用软件,根据业务处理的特点来完成系统和数据处理的同步,从而大大减少主系统和备系统同步所需的信息,降低了对网络带宽的需求和运营成本,其缺点是系统的软件复杂度较高,从而导致日后在增加新业务功能时软件维护费用增加。
经过对主系统中心和备系统中心现状全面的分析和综合考虑,决定采用应用级同步处理的方式来实现中国移动通信计费结算中心容灾备份。
应用级容灾系统方案的结构如图1所示。基于应用的容灾方案就是不使用硬件技术和中间件技术,只是通过修改它的计费清算软件来达到主系统和备系统同时处理移动计费清算业务的目的。这样最主要的是会节省客户的运营成本,最主要的是客户不需要在北京和深圳之间租用几十兆甚至上百兆带宽的线路,另外这种同步的效率可靠性也能够达到用户的满意程度。主备双方采用完全相同的应用软件,这个方案的核心是要在应用程序当中嵌入数据同步的功能。在文件传输模块中,要求省中心同时向主系统和备系统发送上发文件,一般情况下,国际运营商/国际清算中心的数据文件只发送到主系统,主系统通过传输网络将数据传送到备系统。在正常情况下,仅主系统将处理结果文件向各省或国际运营者下发,而备系统只生成结果文件但不下发。
在应用系统开发中将涉及对应用程序的容灾化改造,而且对以后的新业务功能的开发、维护、版本更新等,都必须遵照一定的容灾设计规范,确保在实现新的业务功能的同时保证主备系统数据处理的同步。应用级数据同步一般有两种方案:一是采用复制和导入主系统处理结果的方法;二是备份中心对输入文件进行同步再处理。其中第一种方法的优点是灾难切换后新主系统与原主系统的数据一致性较好,缺点是切换时备系统的内部数据同步较复杂。第二种方案的优点是内部数据一致性较好,但主备系统的数据一致性的同步机制比较复杂。综合考虑这两种方案的优缺点,我们决定将两种方案相结合,针对不同应用程序的特点,选择相应的实现方案。
应用级容灾系统所要解决的首要问题是在日常情况下如何保持主备系统同步处理数据并且保证主备系统处理结果相同。要达到这个目标,需要解决以下几个核心问题:
1.主备应用系统软件更新随机性
由于原有的清算系统的业务在不断更新和演化,软件版本会不断更新,若要确保备系统与主系统具有相同处理能力和处理行为的等价系统,首先必须建立起一套有效的主备系统版本更新和监控的控制机制和管理规章制度。软件版本控制包括源代码、目标码、开发和生产环境的控制。
2.主生产系统处理的数据随机性
主生产系统在处理数据时有相当多的随机数据,主要包括:运行环境数据,包括系统时间等操作系统或其他调用返回的数据;公共参数,即数据库公参表;子系统私有参数,应用程序配置文件等相对静态的参数等等。如果备系统采用同步处理的方式运行的话,必须确保使用与主系统完全相同的随机数据,才能得到相同的处理结果。
例如,若备系统在处理某一话单文件时使用与主系统不同的处理时间,则有可能对过期话单有不同的判断结果,从而造成主备系统的结算帐目差异。
为保证备系统在完成同一数据处理时使用与主系统完全相同的随机数据,必须将主系统中所使用的上述随机数据传递到备系统,备系统依照此随机数据进行处理,才可以确保主备系统处理结果的一致性。我们将这些由主系统产生并传递到备系统的随机数据称为同步索引(SyncIndex),简称IDX。
对于前面过期话单检测的例子,解决的办法是将主系统处理该文件的处理时间传递到备系统,备系统放弃自己的系统时间而使用主系统的时间来检测过期话单,这样就可以保证主备系统处理结果是完全一致的。这里的处理时间就是IDX所包含的随机数据。
3.与外部系统的接口数据的同步
三期系统的主要外部接口包括31个省中心和上百个国际运营商(包括国际清算中心),为实现容灾备份,备系统必须同这些外部系统具有与主系统相同的接口,接收和处理相同的数据,并且需要建立起一套校验机制以确保主备系统接收和处理的是完全相同的数据。
容灾同步机制的目的是要保证主备系统的处理同步和结果一致,现在系统的每个业务线处理由多个子系统合作完成,而且各个子系统之间是相互依赖的,即一个子系统的输出是另一个子系统的输入。因此为了保证主备系统的处理同步和结果一致,就需要保证主备系统各个子系统对应进程处理同步和结果一致,由此我们引入了同步机制。
同步机制包括:同步索引(IDX)机制、结果导入机制及准同步索引机制。
同步索引(IDX)机制的原理是在主系统处理的过程中不断产生同步信息,并发给备系统,同步信息中包含对上述处理随机输入数据的描述。备系统在接收到此同步信息后触发相应的处理模块,该处理模块根据同步信息中包含的数据进行相应的业务处理,从而保证主备系统处理的同步和结果的一致性。
结果导入机制:理论上讲,上面所述的IDX同步处理方式,可以实现各种应用系统的同步,其前提条件是,所有的随机变量都需要由主系统记录到IDX中并传递到备系统,备系统严格按照IDX进行处理。但是,如果需要传递的随机变量数目过多,会导致IDX过于巨大,主备系统处理逻辑和处理性能都会因此受到很大影响,从而导致同步索引机制难以实施。对于这种情况,可以考虑使用结果导入机制,即直接将主系统处理的结果数据发送到备系统。在此同步机制下,备系统只需将主系统传递过来的结果数据导入而不进行其它任何处理,就可以得到与主系统完全一致的结果。
准同步索引机制:结果导入机制虽然可以在对系统性能以及处理逻辑影响较小的情况下,保证主备系统处理结果的一致性,但系统只有最终结果,没有中间结果,系统内部数据(数据库表与表、表和文件之间等)难以一致;导致主备切换后备系统不能接续原主系统进行处理。因此为了解决在灾难切换时的数据一致,这里提出结果导入方式和半同步处理方式互补的方式:准同步索引机制。即使用结果导入来备份主系统的处理结果,使得在灾难情况发生后可以查看以前的处理结果。而备系统使用简化的IDX进行同步处理,从而得到另一套处理结果。这套结果可能同主系统的处理结果略有不同,但不会丢失话单等重要数据,而且其结果数据是内部一致的。在灾难切换后使用内部一致的数据来继续处理可以大大简化切换时的数据一致化操作。
容灾平台
远程应用级容灾系统实施的关键是容灾平台(Disaster Recovery Platform)的构建。
容灾平台完成同步数据的生成、管理、传输及应用系统的同步功能,保障主备系统间的应用程序同步跟从及备份功能,所提供的功能在主备系统是有所差异的。
在主系统,应用系统与容灾平台协作,调用容灾平台的应用程序接口(DR API),获取同步信息,如输入参数、系统时间、环境变量、处理文件名、生成结果等,经DR平台将同步数据打包生成同步数据文件,通过同步数据管理器及文件传输系统,将同步信息传输到备系统。
备系统的容灾平台在接收到同步数据信息后,通过同步数据管理器进行解包验证处理,并且按照主系统的处理顺序,交给DR API同步索引执行器,备系统应用系统通过DR API获得同步信息,执行信息服务处理程序,完成与主系统一致的操作,达到同步跟从功能。
考虑到某些数据量较小的结果是无法通过DR API的同步索引生成机制获得备份的,就考虑添加DR API结果导出功能,应用系统通过DR API的结果导出功能,将结果导出后,交给结果导出管理器管理打包,再通过传输系统传送到备系统,备系统的结果导入管理器接收到主系统的导出结果,在备系统进行相应的导入工作,完成主系统关键数据的备份功能。
除了同步数据生成及结果导入导出模块外,还需要考虑主备系统软件版本同步控制、容灾监控与切换以及容灾前台维护界面与报表功能。
综上所述,远程容灾平台实施模型如图3所示。
该容灾平台实施模型包括以下几个功能模块:
1.容灾应用程序接口(DR API)
即容灾系统开发平台,功能主要包括IDX生成和执行API、容灾结果导出API,这些API需要嵌入到三期的应用程序中去,并且在以后新业务开发过程中都要遵守依据此平台所制定容灾开发规范,在新业务的应用程序中适当地嵌入DR API,来保证主备系统处理的同步。
2.同步数据管理模块
包括同步数据文件生成(在主系统中根据容灾API所产生的同步数据生成同步数据文件以便向备系统传递),公共参表数据版本管理同步,同步数据解释执行(在备系统中),业务程序间依赖关系检测等功能。它是容灾平台的核心,负责协调各个子系统,对备系统有调度功能,它负责启动或触发所有的三期需同步的应用程序。
3.Exporter/Importer结果导出/导入模块
依API导出结果数据生成数据映像文件,从映像文件导入数据库等,作为DR API的补充。结果导入也利用同步数据管理器来调度协调主备系统。
4.软件版本控制
用于控制和监控容灾系统源代码、执行码的版本确保主备系统使用相同版本的软件,包括软件的包装、安装和升级等过程控制。软件版本的更新必须遵循严格的规范。
5.容灾前台维护界面
容灾前台维护界面用于配置容灾同步管理平台,使其满足三期系统的容灾需求,并与被应用系统调用的容灾应用程序接口(DR API)相配合。前台维护界面包括应用系统同步数据参数配置,结果导出/导入参数配置,软件版本管理与安装界面等。
6. 容灾文件传输
容灾文件传输的主要功能包括广域网中转、主备同步信息文件传输。
由于备系统需要建立和外部系统(省中心和国际运营者)的网络连接以及主备系统之间的热线网络,因而在广域网物理拓扑结构上已经建立了一套备份网络,从而可以在某省中心与主系统之间发生网络传输故障时通过备系统来中转省上发文件,这样可以充分发挥容灾备份的潜力,提高主系统的生产可靠性、稳定性和及时性。
主备同步信息文件传输主要负责将主系统产生的同步数据文件(包括IDX文件、结果导出映像文件、公参表映像文件、软件版本更新文件等)传递到备系统。
7. 系统管理与高可靠性控制
系统操作员可以通过该功能模块管理控制主系统和备系统,诊断故障,保障系统的高可靠性,系统对可预见故障,自动修复错误,如果出现较大故障,系统进行高可靠性本地切换或主备系统切换。
结束语
基于本文研究的远程应用级容灾系统,目前已经在实际计费工程项目中取得了良好的效果,在实际的容灾系统中得到了充分的运用,备系统实现了业务数据实时跟从处理,生产结果数据实时备份,并且在系统维护和管理决策人员做出灾难决策后,系统执行切换的时间将不超过2小时,完全能够抵御百年一遇的灾难攻击。该技术也可以广泛运用于银行、证券、电信、军事指挥、机密通信等大型计算机信息系统之中,为预防灾难性事件提供了有力保障。该系统的建立使中国移动的计费清算系统可实现系统永续运行的需求,极大的提升了在其国内外电信运营企业之间的信誉与地位,增强了用户的安全感,坚定了持有中国移动股票的股民们的信心。在电信运营商越来越注重用户满意度的今日,中国移动远程计费清算备份中心的建立,加强了中国移动的市场竞争力,进一步提升了中国移动的行业地位,将有利于其国际间业务的开展,另外,GPRS、移动短消息、移动数据业务等新业务正不断增长,良好的业务支撑系统的建立,也为中国移动进一步的业务拓展打好了坚实的基础。
据悉,这也是国际上两地距离相距最远、传输数据量最大、采用技术最新的远程备份系统之一。远程应用级容灾:移动通信计费清算的得力助手
----《中国移动通信》
|