大型机,即大型计算机(Mainframe Computer),是始于System/360的一系列计算机,主要用于海量数据关键应用的计算场景,比如,银行业负责的金融交易和相关数据处理、人口普查统计等。
十六年前,在大型机上运行Linux的技术震撼了整个IT业界,从那时候起,大型机一直都是企业IT基础设施架构的重要基石之一。
2015年,基于z Systems架构的Linux大型主机LinuxONE(包括了Rockhopper和Emperor)问世,同时,提供了对开源软件和行业软件的支持,包括ApacheSpark、Node.js、MongoDB、MariaDB、PostgreSQL、Chef和Docker等技术。
与在其他平台上一样的是,在LinuxONE大型主机上,这些开源技术也能够无缝地实现正常运行。而有所不同的是,与其他平台上相比,运行在LinuxONE上的这些技术在性能上具有明显的优势(比如,运行在大型机上的数据库性能是在X86环境运行时的1.6~2.2倍)。
可以预见的是,在云计算时代,LinuxONE大型机将保持其不可撼动的地位,不仅如此,z Systems的相关技术也将不断地向前发展演进。基于这样的技术前景,又考虑到OpenStack云操作系统只对X86架构和ARM架构提供原生性的支持,企业的IT架构师开始关心一个至关重要的问题:如何将大型机无缝地融入到OpenStack云平台环境之中?
一、3类虚拟化平台
在大型机上,目前有三类虚拟化技术,分别是:PR/SM (Processor Resource/Systems Manager)、z/VM和KVM for z Systems。
为了让问题简化,先对LinuxONE大型机进行讨论,然后再将相关的结论推广到z Systems系列大型机。
在LinuxONE大型机上采用了资源共享的技术架构,具有多层级的虚拟化能力。
第一层是在固件层(Firmware)使用PR/SM技术(这是第一层的Hypervisor),实现LPAR(Logical Partitions,逻辑分区)层级的虚拟化,在LPAR层级,可实现对底层资源(CPU、I/O、网络和存储等)的跨分区动态共享。
在这第一层的虚拟化中,单个LinuxONE大型机的底层物理资源最多可以被分成85个LPARs,在每个LPAR上,都有一个运行着独立Linux操作系统的虚拟机,而且,这些操作系统看起来好像是在“裸机”上运行(虽然它们归根结底还是虚拟机)。值得注意的是,LinuxONE的LPAR已经达到了CC(Common Criteria) EAL5+的安全认证级别,隔离水平近乎于物理隔离。
第二层是对LPAR上运行的虚拟机进行虚拟化,在这个层级上,对LinuxONE大型机而言,有两个Hyperviosr可以选择:一是使用大型机原生的z/VM虚拟化软件,二是选择新的KVM for z Systems技术。无论何种选择,在一个LPAR上,一般只运行一个Hypervisor实例(ZVM或者KVM for z Systems),因此,在LinuxONE大型机上最多可以有85个Hypervisor实例。
这就是说,在LPAR上运行着虚拟机,在虚拟机中运行着一个Hypervisor,而在Hypervisor之上,运行着被称为Guests的Linux虚拟机。数据显示,在理论上,LinuxONE大型机上的每个Hypervisor可以运行1000多个Linux on z Systems虚拟机,而在一个LinuxONE Emperor大型机上,可运行Linux on z Systems虚拟机的总数值最大是八千。行文至此,必须提及另一个让人印象深刻的数字是:在同型号的大型机上,最多可以运行超过1百万个Docker容器。
第二层的虚拟化还存在着一种特殊情形,即:在z/VM上再运行一个z/VM Guest虚拟机。虽然在理论上可以创建任意深度的嵌套的虚拟化层级,但是,这有相当大的资源消耗,因此,除非是特殊的情况(测试等),一般都不会这样去做资源规划。
在第二层上的这两类Hypervisor,直接决定了将LinuxONE大型机融入OpenStack云计算环境的技术架构。以下,对此两类Hypervisor做一个概略性介绍。
1972年8月2日,最早的虚拟机产品VM/370问世,从那时起,这项技术在45年中不断进化,最终成为大型机z Systems虚拟技术的核心产品z/VM。值得一提的是,单就z/VM产品技术而言,到目前已经存在了15年有余。
2015年9月,KVM for z Systems推出(此后,大约每半年更新一次),在z Systems大型机上实现了基于KVM的开源服务器虚拟化。KVM for z Systems 能够与 z/VM虚拟化环境、Linux on z Systems 、z/OS、z/VSE(Virtual Storage Extended) 和 z/TPF(Transaction Processing Facility)共存。
在“将大型机融入云计算环境”系列文章的第二篇中,将会重点分析和比较这两类Hypervisor,并给出根据实际情况作出相应选择的标准。