|
|
内存镜像的方案
使用第三方软件实现双机热备有数据不同步的隐患,所以 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 个小时,就一次迁移成功,第二天早晨顺利投入生产,没有出现任何意外。 ”
|
|