使用第三方软件实现双机热备有数据不同步的隐患,所以GAMECO采用了硬件级别的Cross Site Mirroring方案,这个方案能够彻底避免在事务性处理频繁的时候丢数据的隐患吗?
GAMECO的选择
广州飞机维修工程有限公司 (GAMECO)于1989年10月成立,是一家合资的飞机及机载零部件维修企业,其维修工程服务包括各种级别的飞机维修、飞机零部件测试与维修、飞机整机喷漆、航材的采购\报关\库存管理等,是亚洲最大的飞机维修企业之一。
一架飞机,仅零部件数量就是数万计的,所以GAMECO库房里的常备件数量之庞大是可想而知的。另外,对于飞机维修在时间上的要求非常严格。所以,要管理这样庞大的库房,一是要精准;二是不能任何时间断点,对于IT平台的要求也是以这两个关键要素衡量。
所以,在飞机维修行业,诸如ERP平台等涉及到核心业务的系统,一般都运行在小型机上,GAMECO也不例外。据GAMECO电脑部经理陈英念介绍,从1993年GAMECO就引入了一套类似ERP的系统,叫PMI,专门用于飞机维修从备件到全部流程的管理,这个系统当时用的硬件平台是IBM的AS/400。
上一次PMI系统所运行的硬件平台的升级,是在1998年,当时升级到了IBM的新一代AS/400平台上,采用的是两台服务器热备份的冗余结构,利用一套第三方的软件来实现服务器的高可用性。
在使用过程中,问题就出来了。因为实现两台服务器的热备份,实际上是两台机器一台为主、一台为辅,一个第三方软件把主机这边所做的所有交易通过日志的方式在另外一台辅机上重做一遍。因为要写日志,所以两台服务器之间的数据同步就有间隔,快的时候可能几秒,慢的时候可能超过二、三十秒。在这个时间间隔里,如果主机产生大量的日志,但是不能及时同步到辅机上,这时候如果主机宕机了,那么辅机的数据是不完整的,“如果丢失的量比较大,就会影响我们后续的一些工作。特别担心的是,有时候这些不同步的数据复制可能会检查不出来,就不能保证数据的完整性。”
对于GAMECO来说,虽然由于AS/400系统的高度稳定可靠,这个问题还没有带来过诸如影响生产等严重的后果,但总是犹如头顶悬剑,一直是担着一份心的。从大概2年前开始,随着新的飞机维修库的落成,GAMECO的业务量也快速增大,PMI系统也需要一个更强大的硬件平台来支撑,所以,陈英念开始带领他的团队对购买哪种服务器进行了评估。
“购买服务器的过程中有几个方面考虑,一个是要看到新的服务器必须能够满足今后几年的增长需求,另外一方面我们的目标是有一个很好的平台,而不单是服务器的概念,让我们能利用这个平台把不同应用、不同系统集成在一起。”
选择之一是Unix平台,“这就意味着我们的核心系统PMI需要有另外一个系统取代,这牵扯到投资问题,不过更重要的是,我们看到IBM对于AS/400平台也就是现在的i系列平台在技术上的持续投资,所以最后还是决定用i系列。”
另外,GAMECO还看到了i系列的新特性如逻辑分区等,“它能够同时支持i5/OS,也能支持IBM的AIX操作系统、Linux甚至Windows,对我们来讲,可以看到规划当中的其他核心业务应用系统可以集成到这个平台上。”
不过,陈英念坦言,“如果i系列没有很大的突破,还是原来的AS/400的话,那我们可能会转向Unix或者其他平台。”
2005年上半年,GAMECO引进了两台AS/400的“最新升级版”之一――i520。陈英念说,当时也有担心,例如从旧的系列到全新的i5系列,操作系统版本从4.3到5.3,版本跨度很大,原有的应用软件,包括数据、程序等是否能够无缝地转移过来?另外PMI软件使用的时间比较长,完全是二进制级的,不能像其他系统一样可以重新定义编译,所以陈英念的团队跟IBM工程师在IBM广州实验室进行了大量的测试,几乎把所有的程序、报表都进行了测试,最后确定完全可以无缝迁移过来,才确定选择i520作为升级平台。
平台选定,下一个关键是要解决双机热备的问题。
双机热备中的学问
使用第三方软件实现双机热备有数据不同步的隐患,所以GAMECO在选择升级方案的时候,就向IBM询问是否有其他的方式。
得到的答案是IBM已经推出了自己的一个解决方案,叫Cross Site Mirroring,这是一个硬件级别的方案,通过镜像方式来实现两台服务器之间的数据同步复制,可以弥补软件方式带来的潜在问题。
“不过一开始我们也很担心,因为这是国内第一家采用Cross Site Mirroring方案的,不知道这个方案到底有多可靠,也不知道这种是否能够彻底避免在事务性处理频繁的时候有可能会丢数据的问题,所以就跟IBM的工程师甚至跟他们美国的实验室进行了很多次的讨论,对可行性进行研究。最后我们有信心采用这个方案,一个是对方案的研究比较深入,另外这个方案在国外也有了不少的用户,包括一些关键任务的用户”,陈英念说。
据他介绍,Cross Site Mirroring实现双机热备的时候,并不是依靠日志方式使两台服务器同步,而是在操作系统级从内存级别实现两台服务器的数据同步,所以在同步的过程中时间间隔非常小。“当然很难说百分百可以保证绝对不丢数据,我们经过实验,相信在这种级别的数据同步中,丢失数据的机会低很多,所以最后决定用这个方案”,陈英念说。
经过反复而漫长的测试和认证后,2005年10月4日晚上,GAMECO开始把PMI系统从旧服务器平台上迁移到新的i520上。“我们花了大概10个小时,就一次迁移成功,第二天早晨顺利投入生产,没有出现任何意外。”
尝试“分区”
“i520的分区功能在GAMECO也派上了用场”,陈英念说。现在,GAMECO的每台i520都分了四个分区,其中两个是i5/OS的分区,一个运行GAMECO自己的PMI系统,另外一个划给航空公司管理航材,另外还有AIX分区和Linux分区。
“我们已经增加了一些与PMI系统相配合的新系统,就可以整合到AIX分区中,例如我们现在已经在机库中建立了无线局域网,通过移动控制站来对飞机维修过程中的问题作出快速反应,还有其他一些业务如财务系统等也打算整合到这台服务器上”,陈英念说。
Linux分区,现在还没用起来,陈英念说:“目前除了PMI系统外,公司内部还有几十个各种各样的小系统,有的是外围系统; 有的是跟其他公司的一些接口系统; 有的是需要从核心系统里取数据出来做分析的。这么多的系统跑在不同的硬件平台上,造成的一个问题就是要维护好几十台PC服务器,我们建立Linux分区的目标就是希望把这些系统整合起来,在Linux的环境下,利用Java的技术,重新构建这些系统并整合在统一的平台之上。”在GAMECO的规划中,这些小系统最终将有相当大部分整合到i520的Linux分区中,“如果不整合,管理成本很高,有大约10个人在做日常维护,并且最头疼的问题是补丁、病毒等,而AS/400的管理员还不到两个,因为有一个是兼职的,所以仅从这方面讲,也一定要整合;另一方面,整合后的信息对业务流程将会有更好的支持,其价值更要远远大于管理维护成本的直接节省”,陈英念说。
GAMECO的整合工作刚开始。
GAMECO i520的四个分区
操作系统
主要业务
分区一
i5/OS
运行GAMECO自己的PMI系统
分区二
i5/OS
运行南航广州总部以及十几个分公司的航材管理系统
分区三
AIX
运行与核心PMI系统紧密配合的一些新业务系统
分区四
Linux
整合运行在50多台PC服务器上的多种子系统