引子:古代印度的舍罕王,打算重賞國(guó)際象棋的發(fā)明者——宰相西薩。西薩向國(guó)王請(qǐng)求說(shuō):“陛下,我想向你要一點(diǎn)糧食,然后將它們分給貧困的百姓。”國(guó)王高興地同意了。“請(qǐng)您派人在這張棋盤的第一個(gè)小格內(nèi)放上一粒麥子,在第二格放兩粒,第三格放四粒……”。千百年后的今天,我們都知道事情的結(jié)局:國(guó)王無(wú)法實(shí)現(xiàn)自己的承諾。這是一個(gè)長(zhǎng)達(dá)20位的天文數(shù)字!
在北京這樣的國(guó)際化大都市,你每天都能看到鱗次櫛比的高樓大廈,最高的自然是位于CBD中心的國(guó)貿(mào)三期。但你可曾知道,高達(dá)330米的國(guó)貿(mào)三期在世界的排名只占到第23位,世界第一高樓哈里發(fā)塔有它兩個(gè)半那么高。造高樓是一門大學(xué)問(wèn),80米高的居民樓隨處可見(jiàn),但是800多米高的哈里發(fā)塔只有一座。表面看起來(lái)樓的高度只提升了10倍,但設(shè)計(jì)與制造難度卻提升了千百倍。這也說(shuō)明一個(gè)問(wèn)題,任何一個(gè)事物想“搞大”都是比較難的,特別是達(dá)到頂尖水平的那種大。
高端容錯(cuò)計(jì)算機(jī)就要玩“大”的
當(dāng)年天河一號(hào)勇奪TOP500冠軍的時(shí)候,網(wǎng)上除了贊美之聲,更多是網(wǎng)友的質(zhì)疑,許多人更認(rèn)為它是“堆出來(lái)的超算”。正如我們剛剛舉例的高樓一樣,同樣的鋼、水泥和磚瓦,我們?yōu)槭裁床荒?ldquo;堆”一座更高的高樓?道理大家都明白,人家的世界第一除了這些原材料之外,更重要的是整體的設(shè)計(jì),包括框架結(jié)構(gòu)、受力分析、抗震要求等等。同樣的道理也適用于超級(jí)計(jì)算機(jī),你怎么把計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等部件有機(jī)的結(jié)合起來(lái),實(shí)現(xiàn)高度的運(yùn)轉(zhuǎn)?這里面同樣存在設(shè)計(jì)的問(wèn)題,而且還是大問(wèn)題。
幾天前,國(guó)家召開(kāi)了科學(xué)技術(shù)獎(jiǎng)勵(lì)大會(huì),天河一號(hào)獲得國(guó)家科學(xué)技術(shù)進(jìn)步獎(jiǎng)特等獎(jiǎng);而在同時(shí)頒布的國(guó)家科技進(jìn)步獎(jiǎng)中,赫然出現(xiàn)了“高端容錯(cuò)計(jì)算機(jī)”的身影。所謂高端容錯(cuò)計(jì)算機(jī)是一類高性能、高可靠的高端服務(wù)器,比如IBM的POWER和HP的SuperDome。這種設(shè)備通常應(yīng)用在電信、銀行等關(guān)鍵領(lǐng)域,但由于這些設(shè)備都來(lái)自國(guó)外,如果有人蓄意利用后門謀求達(dá)成非正當(dāng)目的,尤其是在有政府介入的情況下,將對(duì)國(guó)家安全造成重大威脅。為此,國(guó)家863計(jì)劃設(shè)立了十一五期間863重大專項(xiàng)“高端容錯(cuò)計(jì)算機(jī)系統(tǒng)關(guān)鍵技術(shù)與應(yīng)用”,就是為了實(shí)現(xiàn)在關(guān)鍵業(yè)務(wù)應(yīng)用上的自主可控。
帶兵打仗并不是越多越好
自主可控,說(shuō)起來(lái)簡(jiǎn)單做起來(lái)難。長(zhǎng)久以來(lái)國(guó)內(nèi)服務(wù)器市場(chǎng)都是以x86服務(wù)器作為主要方向,所能實(shí)現(xiàn)的最高只能達(dá)到8路水平,也就是8顆處理器協(xié)同工作。一旦超過(guò)了這個(gè)上限,所面臨的就將是多處理器協(xié)調(diào)工作的問(wèn)題。
上嘗從容與信言諸將能否,各有差。上問(wèn)曰:“如我,能將幾何?”信曰:“陛下不過(guò)能將十萬(wàn)。”上曰:“于君何如?”曰:“臣多多益善耳。——《史記·淮陰侯列傳》
2000多年前,劉邦與韓信曾有一番關(guān)于領(lǐng)兵能力的對(duì)話,韓信自詡能夠“多多益善”。對(duì)于指揮官來(lái)說(shuō),都存在指揮能力的問(wèn)題。你如何能保證大軍聽(tīng)從你的調(diào)動(dòng),如何能保證各個(gè)部隊(duì)的統(tǒng)一協(xié)作,如何能保證打勝仗?可見(jiàn)帶兵打仗并不是越多越好。
同樣的道理也適用于服務(wù)器設(shè)計(jì)。使用更多的處理器一定能提升性能嗎?真不一定。首先要考慮的就是多處理器協(xié)同工作的問(wèn)題。處理器要協(xié)同工作,相互之間必然要通訊,而且處理器之間不僅要進(jìn)行數(shù)據(jù)傳遞,更要保持?jǐn)?shù)據(jù)一致,任何數(shù)據(jù)異步都可能會(huì)造成系統(tǒng)停機(jī),這使得處理器通訊遠(yuǎn)比一般性的通訊技術(shù)更為復(fù)雜。隨著處理器數(shù)量的增加,處理器間的通訊強(qiáng)度會(huì)呈指數(shù)形式增加,甚至是失控。
即便是處理器能夠協(xié)同工作,如何實(shí)現(xiàn)高效、穩(wěn)定的工作也是一個(gè)問(wèn)題,要知道處理器通訊的“內(nèi)耗”是相當(dāng)嚴(yán)重的。處理器完成一次本地通訊需要的時(shí)間是完成一次計(jì)算任務(wù)的200-300倍,如果是相鄰節(jié)點(diǎn)的通訊則需要400-600倍的時(shí)間,如果采用一般的處理器協(xié)同技術(shù),當(dāng)處理器數(shù)量超過(guò)8顆以后,大量的處理器資源都被通訊占用,繼續(xù)增加處理器數(shù)量時(shí),性能提高就會(huì)十分有限。由此看來(lái),系統(tǒng)增大一個(gè)量級(jí),隨之帶來(lái)的問(wèn)題就會(huì)被放大上百倍。
走在一條前人沒(méi)有走過(guò)的路上
既然原來(lái)的架構(gòu)不行,那就試試新架構(gòu)吧,當(dāng)然也是一件非常艱難的事情。在數(shù)百名工程師歷時(shí)4年的共同努力下,最終設(shè)計(jì)實(shí)現(xiàn)了“雙翼可擴(kuò)展多處理器緊耦合共享存儲(chǔ)器體系結(jié)構(gòu)”,解決了多處理器的互聯(lián)問(wèn)題,最大能夠支持64顆處理器。據(jù)負(fù)責(zé)研發(fā)的浪潮集團(tuán)首席科學(xué)家王恩東透露,該技術(shù)的特點(diǎn)在于只需要一級(jí)跳步(數(shù)據(jù)經(jīng)過(guò)一個(gè)協(xié)同芯片就稱為一個(gè)跳步,跳步越多系統(tǒng)的延遲也就越多),保證了系統(tǒng)具有良好的線性擴(kuò)展性,處理器間的互聯(lián)通道能夠隨著處理器數(shù)量的增長(zhǎng)而不斷增長(zhǎng),而且整體互聯(lián)結(jié)構(gòu)相對(duì)簡(jiǎn)單。
除此之外,研發(fā)人員還創(chuàng)建了“三級(jí)目錄兩級(jí)緩存一致性域協(xié)議”,保證處理器數(shù)量增加時(shí),系統(tǒng)通訊規(guī)模和復(fù)雜度僅有較小增加,上述兩項(xiàng)技術(shù)結(jié)合起來(lái),使得系統(tǒng)性能可以近線性提升,達(dá)到了國(guó)際領(lǐng)先水平。現(xiàn)在回頭看看,在研制過(guò)程中,浪潮共申請(qǐng)發(fā)明專利 1147項(xiàng),大大填補(bǔ)了該領(lǐng)域的科技空白。
新架構(gòu)的出現(xiàn)的確振奮人心,但還遠(yuǎn)遠(yuǎn)不夠。如果仍以蓋樓舉例的話,新架構(gòu)只是實(shí)現(xiàn)了基礎(chǔ)框架的設(shè)計(jì),保證了高樓能夠建造起來(lái);但是高樓能夠承重多少、抗震多少還是需要解決的問(wèn)題,這在計(jì)算機(jī)領(lǐng)域叫做——可用性。
高端容錯(cuò)計(jì)算機(jī)是專門承擔(dān)關(guān)鍵應(yīng)用系統(tǒng)的系統(tǒng)平臺(tái),一旦出現(xiàn)停機(jī)事故,造成巨大的損失。2012年2月2日,日本東京證券交易所,因承載交易系統(tǒng)的關(guān)鍵應(yīng)用主機(jī)發(fā)生故障,包括索尼和東京電力在內(nèi)的241支股票暫停交易。所以,能夠提供99.999%的高可用性,可以7*24小時(shí)不間斷運(yùn)行是高端容錯(cuò)計(jì)算機(jī)最基本的應(yīng)用需求。
99.999%是什么概念?——每年宕機(jī)時(shí)間5分鐘。聽(tīng)起來(lái)挺難,做起來(lái)更加難。要知道,目前品質(zhì)最高的工業(yè)級(jí)電子器件平均無(wú)故障時(shí)間在10000小時(shí)左右。另外,高端容錯(cuò)計(jì)算機(jī)的BIOS等底層代碼有幾千萬(wàn)行。據(jù)權(quán)威的Coverity Analysis集團(tuán)數(shù)據(jù)顯示,目前企業(yè)軟件的缺陷密度為 0.72,也就是平均每1000行代碼中會(huì)有0.72個(gè)缺陷,而任何一處不良代碼都是潛在的隱患。換句話說(shuō),無(wú)論在硬件還是軟件層面,要想實(shí)現(xiàn)99.999%的高可用性都要付出巨大的努力。
為此,研究人員創(chuàng)建了多層次冗余與故障管理容錯(cuò)系統(tǒng)模型,在芯片、模塊、固件、操作系統(tǒng)、業(yè)務(wù)應(yīng)用層面全面采用冗余設(shè)計(jì)以杜絕單點(diǎn)故障,采用故障診斷、隔離和恢復(fù)的全流程自動(dòng)處理技術(shù),系統(tǒng)可自我修復(fù),整體可用度超過(guò)99.9994%。或許用一個(gè)實(shí)際的數(shù)字能夠更好表現(xiàn)這些功能的價(jià)值——建設(shè)銀行新疆區(qū)分行啟動(dòng)上線測(cè)試以來(lái),已經(jīng)穩(wěn)定運(yùn)行1500余天。
如今,高端容錯(cuò)計(jì)算機(jī)已經(jīng)在建設(shè)銀行新疆分行、廣東分行,中國(guó)郵政儲(chǔ)蓄銀行,中國(guó)進(jìn)出口銀行,洛陽(yáng)銀行,國(guó)家電網(wǎng),農(nóng)業(yè)部、安徽社保等多個(gè)金融、能源、政府等領(lǐng)域投入實(shí)際應(yīng)用。由浪潮牽頭成立的國(guó)產(chǎn)主機(jī)系統(tǒng)產(chǎn)業(yè)聯(lián)盟成員也達(dá)到了58家,覆蓋了芯片、主機(jī)、數(shù)據(jù)庫(kù)、中間件等各個(gè)產(chǎn)業(yè)環(huán)節(jié),初步構(gòu)建起中國(guó)的高端計(jì)算機(jī)產(chǎn)業(yè)鏈。