说起大型机,许多人一定记得System/360开始的一系列IBM计算机。大型机英文名叫mainframe,作为活跃在上世纪中期的庞然大物,曾经历了与小型机DEC搏斗的时代,又历经IBM PC兼容机时代依然存活至今。在电子终端丰富多元的今天,我们很难再看到大型机活跃的身影,但是它确确实实依旧存活在某些领域。那么问题来了,大型机是如何存活至今的?今天的大型机与上世纪中期的IBM System/360又有哪些变化呢?
当年的IBM大型机源自20世纪50年代第一台计算机的演变。然而时至今日,它并没有被简化成个人桌面或服务器设备,而是演变为用于处理海量数据工作负载,例如金融交易领域的工具。
在早期计算机行业,IBM有很多竞争对手,包括Univac、Rand、Sperry、Amdahl、GE、RCA、NEC、Fujitsu、Hitachi、Unisys、Honeywell、Burroughs和CDC。当时,所有这些公司在大型机市占份额加起来大约是20%,IBM则占据了近80%的大头。如今,IBM 是唯一一家主要且大规模开展各种业务的大型机制造商,而它事实上的竞争对手已经变成了各种云产品和集群。一些特殊领域至今仍在沿用大型机的原因之一是,切换到云计算平台并不总是具备成本效益,而且云平台无法提供大型机的可靠性。
● 大型机的可靠性设计
今天的大型机可拥有多达240个服务器级CPU、40TB纠错 RAM以及许多PB级闪存作冗余辅助存储。它们的设计目的是处理大量关键数据并保持99.999%的正常运行时间——每年停机时间略多于五分钟。一家中型商业银行可能会使用大型机来运行50个或更多独立的金融应用程序和业务支撑流程,并雇用数千名技术人员来保持业务顺利开展。
RAM、CPU和硬盘都是热插拔的,因此如果某个组件出现故障,可立即将其拉出更换而无需关闭机器。事实上,大型机被分成不同分区,每个分区都有独立的RAM、存储、CPU,甚至不同的操作系统,这有点像今天的集群设计;而某些分区则以操作系统补丁、硬件修复和升级的形式进行维护。专用的Telum处理器可以纠正RAM中的错误位,专用内存可以检测故障的硬件内存通道、DIMM内存芯片和CPU故障恢复。
当检测到CPU处理过程中出错时,核心可以执行冗余的恢复操作。这种操作可以看成是核心重启,程序状态、位置和所有寄存器内容都能被恢复。这个过程对软件层面相当于黑箱操作,所以叫“核心恢复”。如果某个核心经历了过多的重启,则可将该核心的内容迁移至备用核心,这叫“大脑移植”。
通过I/O控制器、机器权限和可配置CPU资源创建许多份单元逻辑分区 (LPAR)。每个LPAR都可单独运行一个隔离的Z/OS(大型机操作系统)实例。这些实例可用于开发、测试或运行单独的应用程序。LPAR还可运行不同的操作系统,例如Linux,并且每个LPAR配备独立的硬件资源。如果其中一个分区崩溃维护,其他分区不会受到影响。LPAR还通过权限进行分隔,例如一组用户可以访问测试区域 LPAR,但不能访问生产LPAR。
● 专有CPU、操作系统、文件系统等等
大型机一般采用专有设计处理器,比如IBM大型机当前基于最新一代Z系列CPU称为Telum。它是一款主频5.2GHz的现代处理器芯片,采用三星7nm工艺制造,并针对单线程性能进行了优化。Telum与Intel、AMD CPU的不同之处在于拥有更高的时钟频率、更多的缓存、更复杂的硬件设计比如用于移动数据的PCI通道等。
Telum八核处理器每个核心都是双向多线程的,配备256KB的L1缓存和32MB的L2缓存,支持超标量指令执行。Telum内部每个芯片插槽可供两个芯片,每个抽屉有四个插槽,四个抽屉组成一个系统。满载的主机可支持250核心,其中190个由用户控制。I/O由两个PCI Express 4.0控制器处理。
新的Telum缓存设计通过特殊的缓存管理策略针对异构单核性能进行了优化。每个核心都有自己的32MB二级缓存,当缓存行从L2溢出时它会转移到另一个L2缓存并标记为L3缓存行。这意味着八个二级缓存可以组合成一个256MB的虚拟共享三级缓存,八个核心中的任何一个都可以访问该缓存。当缓存行从虚拟的L3缓存中溢出时,该行将会在系统中寻找到另一个核心的缓存,从而创建虚拟L4缓存。结合系统上的L2缓存可提供高达8192MB的L4虚拟缓存。
操作系统方面,为了充分利用大型机CPU资源而设计使用了专有的操作系统,比如IBM 64位Z/OS。该系统支持用COBOL、C、C++、Fortran和PL/1编译的应用程序,以及Java在服务器上的应用。如前所述,Z/OS可以划分为单独的逻辑分区,每个分区配备各自的硬件、权限、工作负载,甚至不同的分区操作系统比如红帽Linux。
大型机上的文件称为数据集,每个文件都通过其完整路径引用,该路径最多由8个“限定符”组成,每个限定符最多由8个字符组成,限定符可以包含数字、字母以及符号@、# 和$。
比如一个数据集完整路径示例:
TEST1.AREA1.GHCC.AMUST#.T345.INPUT.ACC$.FILEAA
操作系统所有字符均采用EBCDIC码(扩展二进制编码十进制交换码)来替代ASCII的8位字符编码。EBCDIC码将小写字母放在大写字母前,将字母放在数字之前,这与ASCII正好相反。
尽管大型机走过了半个多世纪的历史,但其终端形态始终饱受挑战,业界一直在预测大型机的完全退出计算舞台的时间。由于本身的成本和运维成本都相当高昂,而且由于历史遗留原因还在使用COBOL这样的古董级编程语言。大型机无论在人力、物力所负担的成本方面还是当代技术进程的现实当中,都处于一个尴尬的地位,特别是在云计算、分布式计算大行其道的今天,大型机的作用已然被极大地边缘化。也许在不久的将来,我们能够亲眼见证大型机作为计算机历史的产物彻底结束其自身的使命。
文/水哥
领取专属 10元无门槛券
私享最新 技术干货