从小型机到x86:四川电信核心数据库迁移到虚拟化平台刀片服务器
从近两年开始,一场起源于国内某知名互联网企业的“去IOE(代指由IBM小型机、Oracle数据库和EMC高端存储为代表的封闭式高成本IT架构)”运动在国内引起了巨大反响,一些传统企业也开始纷纷效仿,希望通过去掉IOE实现成本的降低,并让IT架构更灵活可控。
然而对于一些IOE的重度用户,比如金融、电信企业等,去掉已经采用多年且磨合成熟的经典组合谈何容易。将核心的业务应用迁移到新的平台上,需要考虑的问题很多,这使得大部分企业对去IOE只能纸上谈兵。当然,在这个方向上总要有先行者。据了解,四川电信在今年5月,成功将核心CRM系统的Oracle数据库从IBM P595小型机迁移到基于x86的私有云平台上。对于这次成功的去“I”项目,TechTarget记者也有幸采访到了四川电信企业信息化部总经理梁天健和运维部经理李华,让他们来讲述一下项目背后的故事,以及对去IOE的看法。
小型机vs. x86虚拟化平台
究竟是小型机还是x86?对于这个问题,梁天健说:“只有大金主才有实力不必纠结于这些事情,我们不是。”
在大家的印象中,国内的电信运营商应该是不差钱的,但事实并非如此。为了提升数据库的缓存命中率,为了增加数据库的并发连接数,这些都需要对小型机进行内存等硬件资源的扩容,动辄几十、上百万的预算对四川电信来说已经成为一种压力。梁天健测算了CRM系统数据库向x86迁移带来的成本节省:采用x86平台,以设备生命期周期3年计算,服务器+虚拟化软件+电费+维保费用,9年的成本是700万左右 ;采用小型机,以设备生命周期8年计算,服务器+电费+维保费用,8年的成本是1800万左右。当然,成本只是一方面的考虑。在梁天健看来,从小型机迁移到x86 PC服务器上还存在着诸多的好处。
“四川电信这次向x86平台的迁移,并不是去IOE大潮下的一场秀,而是IT基础平台发展的必然选择。”梁天健说。
据了解,四川电信在08、09年就已经开始在IT系统中引入x86及虚拟化;2010年实现了将web服务器还有小型数据库运行在x86虚拟化环境上;2011年实现了重要系统J2EE Server、应用、非关键系统数据库运行在x86虚拟化环境上;同时又在前两年实现了x86虚拟化环境向统一私有云平台的转换。因此这次将核心数据库迁移到基于x86的私有云平台上是一个合乎发展进程的必然事件。
四川电信分公司核心数据库迁移现场
在梁天健看来,使用虚拟机在满足四川电信的业务需求上没有任何问题。从可用性来说,自2010年以来,Oracle数据库还没有出现过由于虚拟机层面导致的问题;而对于性能,单纯的虚拟化在I/O方面的确会有些损失,但带来的影响并没有足够大到引起I/O不足的地步。
实际上,使用虚拟化平台还有以下几个明显的好处:
1、实现标准化管理:在某些大型企业管理里面,数据库的部署可以说是五花八门,跟部署人员的水平和习惯有很大关系,安装目录、版本、补丁、系统参数以及部署不当导致问题和隐患的情况是非常多的。使用虚拟机模板来部署,版本、补丁等实现了标准化,这是系统运维和管理标准化的基础。高
2、可用性:对于物理机,特别是小型机,如果机器故障或者是停机维护,时间是相对较长的。而对于虚拟机来说,换一台资源池中的其他机器来启动虚拟机,停机时间相对可控、较短。对于重要系统,虚拟机本身(主要操作系统)也是可以备份的。将一个稳定系统备份之后,即使发生rm /这样的错误命令,恢复起来也比重装或从磁带恢复要快。
3、硬件升级更为方便:如果物理机的性能不足以支持系统,或者机器老化,再或者购置了新的机器用来代替原来的设备,只需要将虚拟机在新的机器上运行即可。迁移十分方便快捷。
4、集中管理,集中监控,提高运维效率:虚拟化平台本身带有集中管理和监控功能,这对大型企业环境来说是非常具有价值的。 着手去掉小型机
梁天健表示,对于电信运营商、银行这种大型企业来说,系统的可用性是运维部门KPI的重要组成部分,一个系统的运行稳定与否,通常是与系统的负荷有关。比如一些BUG(包括操作系统的BUG)就是在高并发高负载下出现的。越大型的系统,影响可用性的因素就越多。对于IT部门来说,可能会面临着这样的情况:辛辛苦苦几个月,熬了几个通宵,结果系统中断时间过长,抹杀了所有的努力。因此到目前为止,在国内电信、银行等企业将核心业务系统的Oracle数据库迁移到以x86为核心的虚拟化平台上,这样的案例是非常少见的,而四川电信就是其中之一。
据了解,为了保证整个迁移过程的顺利进行,四川电信从去年就启动了项目计划。同时为了确保迁移后系统的平稳运行,实施优化先行的策略,四川电信还引入了专业合作伙伴对CRM系统提供优化建议,使得一期优化整体性能提升超过了30%。
“实际上因为之前已经有大量的x86虚拟机平台的实施及维护经验,因此单纯将数据库迁移到虚拟化平台并不是我们最担心的,”梁天健说:“由于此次迁移还同时将Oracle数据库的大版本升级到11g,应用上对于新版本数据库能否适应,是否会有意外的性能波动,才是最需要关注的难点,这也是我们需要聘请一些专业合作伙伴的原因,他们在项目中提供了专业咨询并负责升级迁移过程中应用系统的性能评估、优化及保障,非常感谢这些合作伙伴的辛苦付出。”
据了解,由于这是国内首次将电信级核心数据库迁移到虚拟化平台中,四川电信将CRM数据库的升级迁移分成了两个大区依次进行,在今年的5月初先进行了A大区的迁移,然后经过一段运行考验,在5月下旬继续进行了B大区的迁移。目前整个CRM系统已经在x86虚拟环境中稳定运行了一个多月,事实证明四川电信这次迁移升级是完全正确的选择。
迁移前后的性能对比
四川电信运维部经理李华是本次迁移升级项目的现场指挥,据他介绍,本次迁移项目开始之前,四川电信在IBM P595小型机上运行Oracle RAC集群,P595是Power 5时代最高端的IBM小型机,即使满配CPU才64核,而由于成本问题,最初配置的CPU不足,同样每个节点内存只有近200GB,而现在每个节点最高连接数为8000,同时由于主机上一些遗留配置问题,结果只能给数据库分配不到50GB的缓存,这就导致了高端设备配置低端化,资源紧张。
在迁移之后,两节点的Oracle RAC升级为11.2.0.3,运行在以PC服务器为物理机的虚拟化环境中,每个节点内存为256GB(物理机实际有1TB内存),给数据库分配了128GB SGA,内存剩余量还很多(80G以上),这就是开放式架构的低端设备配置高端化,性价比相当优越。
由于低端设备高配化,在业务高峰期,新系统中两个节点的CPU利用率都不超过20%,即使一个节点发生故障宕机,由单一节点来负载所有业务,CPU也不会超过40%。而原运行在P595小型机上的系统,在业务高峰期单个节点的CPU占用通常会在50%以上,如果高峰期一台机器意外宕机,实际上剩余单机面临的压力会十分巨大。
最后如果再从性价比来看,这样一台几乎顶配的x86 PC服务器的价格远远低于同等计算能力的IBM小型机,价格大约在30万人民币左右,而后者的价格通常都是数百万。
对于更详细的性能对比,TechTarget记者还采访到了负责本次迁移升级项目系统优化及性能保障的云和恩墨公司西区总经理熊军,他向我们展示了两幅性能图表:其中CPU Time技术指标是衡量一个数据库系统在CPU上花费了多少时间,在同等业务负载的情况下,如果CPU Time越低则意味着CPU的使用效率越高。从迁移前后两幅图标的对比可以看出,迁移前CPU Time的平均使用为10左右,而迁移后降为平均7.5,也就意味着CPU效率提升大约25%。这样的数字再参考上面的硬件价格比,实际上是以更低廉的价格换来了更卓越的性能。
图一 迁移前CPU性能图表
图二 迁移后CPU性能图表
“去O”不如“减O”
在成功去掉小型机之后,TechTarget记者还向梁天健询问了关于去E(EMC存储)和去O(Oracle数据库)的话题。
梁天健认为,四川电信的私有云平台是架构在高端存储上的,去E实际上成为一个难题。不过在去E之前,对于IT基础架构还有其他可以做的事,比如将网络从1Gbps升级到10Gbps,以适应数据爆炸对网络带宽越来越多的要求。如果要去E,那么存储虚拟化、软件定义存储也许是可以实施的方向。而如何用好SSD硬盘来提升存储的IO能力比去E更重要。目前四川电信已经在这个层面开始探讨,计划孕育下一轮存储层面的技术变革。
再谈到去O,梁天健的态度很明确,从技术层面来讲,目前很多企业连Oracle这样具有高可用、高性能、易用性强的数据库都没有用好,去O根本无从谈起。对于这些企业,他们的首要目标应该是提升运维和开发水平,而不是为了去而去。真要谈去O,可能MySQL会是首选。而MySQL数据库在复杂SQL、数据存储等方面都有着不少的缺点。从成本上说,除了国有几大行和中移动等少数“土豪”之外,其他企业在Oracle上所花的成本相对于其他投入来说,并不算高。如果真换成MySQL,每年所花的成本可能会远远大于使用Oracle的成本。
那么是不是在数据库层面,传统企业已经没有可以改善的余地了?梁天健认为答案是否定的:“我们不去O,但是我们可以尝试减O。何谓‘减O’?就是将假设现在的200个独立的Oracle数据库整合到20个更大型的Oracle数据库中去。”这样做的好处是显而易见的:
1、减少硬件开销,合理利用硬件资源池。很多独立的Oracle数据库系统只使用了5%的CPU,只用了20%的内存,只用了几十GB甚至几个GB的存储,但是它用不到的硬件资源也无法简单地分享给其它系统使用。整合在一起,正可以高效利用所有硬件资源。
2、减少管理困难度。管理数百个独立的Oracle数据库在复杂度上超过管理几十个数据库。
当然,“减O”同样具有风险,实施需谨慎。梁天健认为,以前一个系统出现故障,也就是影响这一个系统,但是整合在一起,一个系统的数据库占用了100%的I/O,会导致其它的系统也同样受到干扰。这需要专业的资源控制来尽量降低风险。此外,多个数据库整合在一起,新的硬件到底该具备怎样的计算能力、存储能力?性能容量规划具体该如何计算?这需要更加专业的规划设计才能做到。对于这样的方案,梁天健称四川电信还会继续大力发展跟第三方专业服务商的合作,以期在不远的将来可以开始逐步实现“减O”工程。
“总而言之,到底要不要去IOE,是由企业IT平台架构和业务发展需要决定,而不是一场运动,企业切忌盲目跟风。”梁天健说。