平台人生
作者平台人生2016-11-18 10:30
软件开发工程师, 平台人生

控制主机资源使用的几种方案介绍

字数 3854阅读 5899评论 0赞 0

作者:庹艳林

IBM主机(MainFrame) 具有高可用性和高吞吐率的优势,在在我国大型银行中得到了大量的使用,保障了银行核心业务系统的稳定运行。从目前来说,IBM主机还是具有无可替代性。但是IBM主机技术封闭,技术人才逐步匮乏,更重要的是使用费用十分高昂,单纯从CPU运算能力来说,提供10万MIPS处理能力(注:MIPS是主机运算能力的一种计量单位,IBM公司主要也是根据MIPS的使用量来收费)的IBM主机可能仅相当于10台高性能PC服务器,但是购置10万MIPS的主机所花的钱估计可以买来成百上千台的PC服务器。

由于IBM主机单位成本的处理能力有限,因此随着企业用户数和业务量的增长,以及来自互联网支付交易的冲击,如何控制主机资源的消耗,控制主机投入的成本也就成为非常重要的话题。国内外众多使用IBM主机的企业都在探索和践行如何行之有效的办法,IBM公司也推出了一些方案,用以挽留客户。下面就一些有代表性的方案进行简单介绍。

移动工作负载定价

移动工作负载定价是IBM公司2014年推出的一种新的定价模型,用以鼓励互联网移动支付等交易场景在主机平台上的使用。对于移动设备(手机、平板电脑)所发起的交易,IBM公司向企业承诺给这些交易所耗MIPS资源在计价时享受4折的优惠(60% off)。由于目前各企业业务量的增长主要是来自互联网的支付,比如双11秒杀等,这项政策对使用主机平台企业来说还是非常实惠的,可是这种定价模型有以下条件:

1) 企业必须通过按月租用主机的协议(MLC)来使用主机;企业如果是通过一次性买断协议(OTC)来购买主机平台的则不适用。

2) 客户有责任去标记这些来自移动端的负载,这样在主机上才能对这些负载区别计价。为此需要对应用进行少量修改(比如定义特定的交易码、给移动端负载定义特定的网络端口、隔离这些应用到特定的LPAR等等)。

3) 需要按月使用IBM提供的工具收集主机运行信息,用以计算每个月应该支付的主机租用费用。

由于中国的企业跟国外不同,基本都是通过买断方式(OTC)来购买主机资源的,因此就无法享受到这项互联网的福利政策。鉴于互联网金融在国内具有越来越广泛的使用场景,也许将来中国各企业可联合起来跟IBM谈判,从而争取到这一福利政策。

zCAP定价

zCAP定价是IBM公司推出的又一项福利政策,不过这一政策只针对VIP客户。IBM对VIP客户宣称:对于部署到现有逻辑分区中的平台上的任何新应用程序,都将在子容量报告中获得100% 的折扣。也就是说,如果VIP客户在现有分区中部署新的应用程序,主机MIPS的消耗可以不要钱。从这来看,这项政策应该也是基于按月租用协议的。看来IBM为了挽救主机市场还真下了一番功夫。这项政策应该也跟中国企业无关。

zIIP协处理器

前面提到,IBM主机主要是通过出售计算能力来收费的,可能价格昂贵到连他们自己都有些不好意思,并且也担心老客户因为承担不起日渐增长的费用而放弃主机,就基于主机推出了zIIP协处理器(主机上原有的处理器就叫做通用处理器)。zIIP处理器也能提供计算能力,并能访问主机平台的网络、存储和其他资源,从使用者角度来说功能和通用处理器没什么太大区别,但是使用价格估计只是通用处理器的1/30左右,是不是相当的便宜?(其实还是比X86芯片贵很多)。运行在zIIP上的IBM软件也是不需要单独计价的(运行在通用处理器上的软件是根据通用处理器上的计算能力来收费的,也是一项很大的成本支出)。因此,对于使用主机平台的企业来说,大量使用zIIP协处理器还是可以节省开支的。不过IBM公司也有些限制:

1) zIIP协处理器的数量不能超过通用处理器运算能力的一定比例;

2) 主机的设计使得不可能完全使用zIIP实现业务功能,对于某些系统操作还得通过通用处理器来完成。

IBM公司也希望通过zIIP的推出,吸引客户把商业智能、CRM、ERP等大运算量的系统搬到主机上去。对于企业来说,则可以合理的使用zIIP协处理器,来削减对通用处理器的计算需求。

主机平台上COBOL转JAVA

由于老牌的COBOL语言专家日渐凋零,新的程序开发人员大都热衷于使用JAVA开发应用系统。IBM公司为了吸引JAVA开发人员加入到主机应用开发中,从而避免企业把应用下移到开放平台中,又放出大招:支持在主机上运行JAVA,如果主机平台购买了zIIP协处理器,并且使用JAVA进行开发,那么实现同样的业务功能,理论上可降低到75%左右,一般来说可降低主机计算资源40%的消耗。这种方案得到了很多企业的青睐。因为:

1) 可以有效的利用zIIP协处理器,降低成本;

2) 系统整体结构不用做大的改变,易于实施;

3) 给COBOL程序员转型的机会,可以逐步成为JAVA开发人员。

这种方案不一定需要在主机上运行JAVA WEB服务器,可以根据实际需要使用。比如某个COBOL模块使用MIPS资源较高,则可以把这个模块用JAVA重写,其他的模块保持不变,从而达到节省MIPS的目的。
当然使用了JAVA替代COBOL,必然会带来处理响应时间的损耗,在主机上运行JAVA代码可能比运行COBOL代码多消耗一些处理时间。因此可以根据响应时间的实际需求,把一些交易或模块使用转移成JAVA代码。

开放平台应用通过DRDA技术远程访问主机数据库

IBM公司为了支持开放平台的应用程序直接访问主机数据库,提供了DARA(Distributed Relational Database Architecture)的技术方案。开放平台上的应用程序使用DRDA连接器,就能象访问开放平台ORACLE数据那样通过SQL语言访问主机上的DB2数据库。DADA的客户端支持ADO.NET、 ADO、 CLI、JDBC等接口。

使用这种方案,原来的主机应用程序就能全部或者部分的迁移到开放平台上,从而有效的减轻主机的负载;并且如果使用基于TCP/IP的DRDA访问主机DB2,应用的SQL请求的部分工作负载也会转到zIIP上运行。这样,还能再节省部分网络通讯和数据库操作在主机通用处理器上的开销,因此,这项技术有大量的企业在使用。总的来说有以下几点好处:

1) 主机上的程序还能继续运行,可以逐步的把消耗CPU较高的交易剥离到开放平台,便于实施;

2) 应用程序可以很容易实现弹性扩展和集群化部署;

3) 数据仍然保存在主机平台,可以最大限度的发挥主机平台特有的高可用性和稳定性;

4) 配置上低廉的zIIP协处理器,可以极大的节省主机通用处理器的负载。

使用这项技术可能会给主机带来40%至60%的资源节省,因此实施的性价比还是很高的。
以上提到的各种方案都是需要依赖IBM公司的产品或者方案,下面各种方案则与IBM公司的技术无关,具有较大的灵活性。

开放平台应用访问数据副本实现查询交易下移

这种方案是把主机数据库的数据通过工具复制到开放平台的数据库中,然后通过开放平台的程序访问这些数据副本。

由于一般应用系统中查询交易的占比都比较高,因此通过这种方式把查询交易下移到开放平台,也能极大的节省主机CPU资源。这种方式的好处在于:

1) 查询交易的应用负载和数据库负载均能下移到开放平台,释放主机资源;

2) 开放平台开发人员可以使用适合的语言(如JAVA)对查询交易进行重写,还能使用分库分表的技术进行分布式部署;提高开放平台上系统的扩展能力和高可用性。

这项技术的难点在于如果要实现主机数据的实时/准实时查询,那么对数据复制工具的效率和高可用性要求就比较高。目前可选的数据复制工具有: CDC、Q-rep和 Oracle Golden Gate等。

使用Micro Focus Server等产品模拟主机平台运行主机程序

Micro Focus公司推出了Micro Focus Server的产品,为主机应用下移到开放平台的市场添了一把火。可以把这个产品理解为一个Docker容器,他运行在Linux或者Windos上,实时的模拟了一个主机的运行环境。主机上的COBOL应用程序源代码基本不用修改,只需重新编译以后,就能在这个容器中启动运行,这个容器提供了IMS、VSAM、CICSSyncSort等主机平台类似的功能,因此运行在这个容器中的代码就像运行在主机平台上一样。使用这项技术的好处在于:

1) 主机源代码(包括批处理作业)几乎不用修改就能编译运行,可以最大限度的利用原有开发资源(人员/代码);

2) 交易报文可以仍然使用主机的EBCDIC编码,测试工作量小,易于实施;

3) 既能访问开放平台的数据库,也能使用DRDA技术访问主机DB2数据库,方案灵活;

4) 可以方便的集群化部署,实现高可用性和弹性扩展。

据称华尔街有些银行已经使用了这项技术把主机应用迁移到开放平台上,有些甚至放到了亚马逊云上,极大的节省了他们的运营成本。类似的技术还有Oracle公司的Tuxedo ART,韩国TMAX公司的OpenFrame等。

本文大致介绍了控制主机资源使用的几种方案,供大家一些参考,具体的可以根据系统的实际情况综合运用这些方案。这里没有提应用重构这种方案,是因为应用重构的主要推动力一般是业务发展或业务模型重构等需求。如果单纯为了控制主机资源而在开放平台进行应用重构,投入产出比可能不如前面几种方案高,也可能会遇到各方的阻力。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

相关文章

相关问题

相关资料

X社区推广