活到今天的大型計(jì)算機(jī)與“上古時(shí)代”有何不同?

說起大型機(jī),許多人一定記得System/360開始的一系列IBM計(jì)算機(jī)。大型機(jī)英文名叫mainframe,作為活躍在上世紀(jì)中期的龐然大物,曾經(jīng)歷了與小型機(jī)DEC搏斗的時(shí)代,又歷經(jīng)IBM PC兼容機(jī)時(shí)代依然存活至今。在電子終端豐富多元的今天,我們很難再看到大型機(jī)活躍的身影,但是它確確實(shí)實(shí)依舊存活在某些領(lǐng)域。那么問題來了,大型機(jī)是如何存活至今的?今天的大型機(jī)與上世紀(jì)中期的IBM System/360又有哪些變化呢?
當(dāng)年的IBM大型機(jī)源自20世紀(jì)50年代第一臺(tái)計(jì)算機(jī)的演變。然而時(shí)至今日,它并沒有被簡(jiǎn)化成個(gè)人桌面或服務(wù)器設(shè)備,而是演變?yōu)橛糜谔幚砗A繑?shù)據(jù)工作負(fù)載,例如金融交易領(lǐng)域的工具。
在早期計(jì)算機(jī)行業(yè),IBM有很多競(jìng)爭(zhēng)對(duì)手,包括Univac、Rand、Sperry、Amdahl、GE、RCA、NEC、Fujitsu、Hitachi、Unisys、Honeywell、Burroughs和CDC。當(dāng)時(shí),所有這些公司在大型機(jī)市占份額加起來大約是20%,IBM則占據(jù)了近80%的大頭。如今,IBM 是唯一一家主要且大規(guī)模開展各種業(yè)務(wù)的大型機(jī)制造商,而它事實(shí)上的競(jìng)爭(zhēng)對(duì)手已經(jīng)變成了各種云產(chǎn)品和集群。一些特殊領(lǐng)域至今仍在沿用大型機(jī)的原因之一是,切換到云計(jì)算平臺(tái)并不總是具備成本效益,而且云平臺(tái)無法提供大型機(jī)的可靠性。

● 大型機(jī)的可靠性設(shè)計(jì)
今天的大型機(jī)可擁有多達(dá)240個(gè)服務(wù)器級(jí)CPU、40TB糾錯(cuò) RAM以及許多PB級(jí)閃存作冗余輔助存儲(chǔ)。它們的設(shè)計(jì)目的是處理大量關(guān)鍵數(shù)據(jù)并保持99.999%的正常運(yùn)行時(shí)間——每年停機(jī)時(shí)間略多于五分鐘。一家中型商業(yè)銀行可能會(huì)使用大型機(jī)來運(yùn)行50個(gè)或更多獨(dú)立的金融應(yīng)用程序和業(yè)務(wù)支撐流程,并雇用數(shù)千名技術(shù)人員來保持業(yè)務(wù)順利開展。
RAM、CPU和硬盤都是熱插拔的,因此如果某個(gè)組件出現(xiàn)故障,可立即將其拉出更換而無需關(guān)閉機(jī)器。事實(shí)上,大型機(jī)被分成不同分區(qū),每個(gè)分區(qū)都有獨(dú)立的RAM、存儲(chǔ)、CPU,甚至不同的操作系統(tǒng),這有點(diǎn)像今天的集群設(shè)計(jì);而某些分區(qū)則以操作系統(tǒng)補(bǔ)丁、硬件修復(fù)和升級(jí)的形式進(jìn)行維護(hù)。專用的Telum處理器可以糾正RAM中的錯(cuò)誤位,專用內(nèi)存可以檢測(cè)故障的硬件內(nèi)存通道、DIMM內(nèi)存芯片和CPU故障恢復(fù)。
當(dāng)檢測(cè)到CPU處理過程中出錯(cuò)時(shí),核心可以執(zhí)行冗余的恢復(fù)操作。這種操作可以看成是核心重啟,程序狀態(tài)、位置和所有寄存器內(nèi)容都能被恢復(fù)。這個(gè)過程對(duì)軟件層面相當(dāng)于黑箱操作,所以叫“核心恢復(fù)”。如果某個(gè)核心經(jīng)歷了過多的重啟,則可將該核心的內(nèi)容遷移至備用核心,這叫“大腦移植”。
通過I/O控制器、機(jī)器權(quán)限和可配置CPU資源創(chuàng)建許多份單元邏輯分區(qū) (LPAR)。每個(gè)LPAR都可單獨(dú)運(yùn)行一個(gè)隔離的Z/OS(大型機(jī)操作系統(tǒng))實(shí)例。這些實(shí)例可用于開發(fā)、測(cè)試或運(yùn)行單獨(dú)的應(yīng)用程序。LPAR還可運(yùn)行不同的操作系統(tǒng),例如Linux,并且每個(gè)LPAR配備獨(dú)立的硬件資源。如果其中一個(gè)分區(qū)崩潰維護(hù),其他分區(qū)不會(huì)受到影響。LPAR還通過權(quán)限進(jìn)行分隔,例如一組用戶可以訪問測(cè)試區(qū)域 LPAR,但不能訪問生產(chǎn)LPAR。

● 專有CPU、操作系統(tǒng)、文件系統(tǒng)等等
大型機(jī)一般采用專有設(shè)計(jì)處理器,比如IBM大型機(jī)當(dāng)前基于最新一代Z系列CPU稱為Telum。它是一款主頻5.2GHz的現(xiàn)代處理器芯片,采用三星7nm工藝制造,并針對(duì)單線程性能進(jìn)行了優(yōu)化。Telum與Intel、AMD CPU的不同之處在于擁有更高的時(shí)鐘頻率、更多的緩存、更復(fù)雜的硬件設(shè)計(jì)比如用于移動(dòng)數(shù)據(jù)的PCI通道等。
Telum八核處理器每個(gè)核心都是雙向多線程的,配備256KB的L1緩存和32MB的L2緩存,支持超標(biāo)量指令執(zhí)行。Telum內(nèi)部每個(gè)芯片插槽可供兩個(gè)芯片,每個(gè)抽屜有四個(gè)插槽,四個(gè)抽屜組成一個(gè)系統(tǒng)。滿載的主機(jī)可支持250核心,其中190個(gè)由用戶控制。I/O由兩個(gè)PCI Express 4.0控制器處理。
新的Telum緩存設(shè)計(jì)通過特殊的緩存管理策略針對(duì)異構(gòu)單核性能進(jìn)行了優(yōu)化。每個(gè)核心都有自己的32MB二級(jí)緩存,當(dāng)緩存行從L2溢出時(shí)它會(huì)轉(zhuǎn)移到另一個(gè)L2緩存并標(biāo)記為L(zhǎng)3緩存行。這意味著八個(gè)二級(jí)緩存可以組合成一個(gè)256MB的虛擬共享三級(jí)緩存,八個(gè)核心中的任何一個(gè)都可以訪問該緩存。當(dāng)緩存行從虛擬的L3緩存中溢出時(shí),該行將會(huì)在系統(tǒng)中尋找到另一個(gè)核心的緩存,從而創(chuàng)建虛擬L4緩存。結(jié)合系統(tǒng)上的L2緩存可提供高達(dá)8192MB的L4虛擬緩存。
操作系統(tǒng)方面,為了充分利用大型機(jī)CPU資源而設(shè)計(jì)使用了專有的操作系統(tǒng),比如IBM 64位Z/OS。該系統(tǒng)支持用COBOL、C、C++、Fortran和PL/1編譯的應(yīng)用程序,以及Java在服務(wù)器上的應(yīng)用。如前所述,Z/OS可以劃分為單獨(dú)的邏輯分區(qū),每個(gè)分區(qū)配備各自的硬件、權(quán)限、工作負(fù)載,甚至不同的分區(qū)操作系統(tǒng)比如紅帽Linux。
大型機(jī)上的文件稱為數(shù)據(jù)集,每個(gè)文件都通過其完整路徑引用,該路徑最多由8個(gè)“限定符”組成,每個(gè)限定符最多由8個(gè)字符組成,限定符可以包含數(shù)字、字母以及符號(hào)@、# 和$。
比如一個(gè)數(shù)據(jù)集完整路徑示例:
TEST1.AREA1.GHCC.AMUST#.T345.INPUT.ACC$.FILEAA
操作系統(tǒng)所有字符均采用EBCDIC碼(擴(kuò)展二進(jìn)制編碼十進(jìn)制交換碼)來替代ASCII的8位字符編碼。EBCDIC碼將小寫字母放在大寫字母前,將字母放在數(shù)字之前,這與ASCII正好相反。

盡管大型機(jī)走過了半個(gè)多世紀(jì)的歷史,但其終端形態(tài)始終飽受挑戰(zhàn),業(yè)界一直在預(yù)測(cè)大型機(jī)的完全退出計(jì)算舞臺(tái)的時(shí)間。由于本身的成本和運(yùn)維成本都相當(dāng)高昂,而且由于歷史遺留原因還在使用COBOL這樣的古董級(jí)編程語言。大型機(jī)無論在人力、物力所負(fù)擔(dān)的成本方面還是當(dāng)代技術(shù)進(jìn)程的現(xiàn)實(shí)當(dāng)中,都處于一個(gè)尷尬的地位,特別是在云計(jì)算、分布式計(jì)算大行其道的今天,大型機(jī)的作用已然被極大地邊緣化。也許在不久的將來,我們能夠親眼見證大型機(jī)作為計(jì)算機(jī)歷史的產(chǎn)物徹底結(jié)束其自身的使命。
文/水哥