目前全球高端服務(wù)器市場主要被RISC架構(gòu)的產(chǎn)品占據(jù),約占服務(wù)器市場近40%的份額。但隨著開放式系統(tǒng)應(yīng)用的深入、普通用戶對高端服務(wù)器的需求增加、集群系統(tǒng)的技術(shù)成熟,RISC的地位進一步動搖。主要體現(xiàn)在,新興行業(yè)和競爭激烈的傳統(tǒng)行業(yè)因成本帶來的巨大壓力而產(chǎn)生的對8至16路通用服務(wù)器(此處"通用服務(wù)器"是相對采用RISC架構(gòu)芯片的服務(wù)器而言,即采用x86或安騰架構(gòu)處理器的服務(wù)器。)的需求;高性能集群系統(tǒng)的成功應(yīng)用,導(dǎo)致放棄使用大型機而采用基于集群技術(shù)的通用多路服務(wù)器所形成的市場,尤其對星群的高性能集群的需求的增長。
虛擬化給高端服務(wù)器帶來機會
盡管需求一再攀升,但商用高端服務(wù)器與傳統(tǒng)的高性能計算技術(shù)的代表超級計算機一樣也面臨著困境--計算機的實際計算能力大大低于系統(tǒng)理論的峰值。不僅如此,人們在編制供它們使用的并行程序時的付出也與其產(chǎn)出不成比例。因此,滿足對高效能的需求已成為人們設(shè)計商用高端服務(wù)器的重大挑戰(zhàn)。目前高性能計算機仍沿用馮·諾依曼模型為基礎(chǔ)的以CPU為核心的計算模式。作為這一模式基礎(chǔ)的CPU技術(shù)目前已經(jīng)發(fā)展到了追求線程級并行(TLP)的多核時代,其代表就是片上服務(wù)器(server-on-chip),例如Sun的UltraSPARCT1"Niagara"處理器芯片。但是,問題仍然沒有解決--由于應(yīng)用的復(fù)雜、種類的繁多、規(guī)模的巨大,單一的編譯器或操作系統(tǒng)仍然無法智能地去挖掘蘊藏在其中的全部并行性。
利用虛擬機這一技術(shù)可以在單一服務(wù)器上支持不同的應(yīng)用軟件和操作系統(tǒng),而且還能夠動態(tài)地將資源分配到最需要的地方,可以減少數(shù)據(jù)處理過程中所需的服務(wù)器數(shù)量。有了虛擬機,企業(yè)在每次部署新的操作系統(tǒng)時,就無需遷移現(xiàn)有的應(yīng)用軟件,從而能延長那些雖然已經(jīng)過時,但仍非常重要的應(yīng)用軟件的使用周期。這樣,那些基于WindowsNT的應(yīng)用程序就可以再次煥發(fā)生機。
除此之外,人們發(fā)現(xiàn)利用虛擬技術(shù),也能進一步發(fā)掘應(yīng)用間的時間和空間的并行性。當然,虛擬機技術(shù)帶來的隔離性、安全性、靈活性更增添了這一技術(shù)的魅力。中科院計算所目前正在研究的項目的主要內(nèi)容就是圍繞如何利用虛擬機技術(shù)構(gòu)造高端商用服務(wù)器,研究新型的高端服務(wù)器和相關(guān)技術(shù),同時考慮虛擬SMP的入侵防護技術(shù)。除了這些方面,基于虛擬化技術(shù)的商用高端服務(wù)器,在各種環(huán)節(jié)的研發(fā)中還存在諸多技術(shù)挑戰(zhàn)。
虛擬機及其協(xié)同技術(shù)
虛擬機是構(gòu)造虛擬SMP服務(wù)器的基礎(chǔ),它是由虛擬機監(jiān)控(VMM)軟件創(chuàng)建和管理。傳統(tǒng)的VMM例如Xen和VMware面向單一節(jié)點,節(jié)點既可以是單一CPU也可以由SMP構(gòu)成。這時由這些VMM所構(gòu)造的虛擬機(VM)所能夠利用的資源例如CPU、內(nèi)存、磁盤、通信帶寬等就僅限于這個單一的物理節(jié)點。從這個意義上說,虛擬機間的協(xié)同也就等價于傳統(tǒng)服務(wù)節(jié)點或服務(wù)器間的協(xié)同,無法充分利用基于虛擬機技術(shù)創(chuàng)新所帶來的益處。因此,必須突破目前虛擬機構(gòu)造中資源的局限性,使得一個虛擬機不僅能夠從它的宿主物理節(jié)點上取得資源,而且能夠利用網(wǎng)絡(luò)從其他非宿主的物理節(jié)點上獲取資源,從而實現(xiàn)資源在虛擬機間的流動,實現(xiàn)部件級的虛擬化。這里的部件泛指CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等構(gòu)成傳統(tǒng)計算機的部件。
計算所要研究的分布式超級虛擬機監(jiān)控軟件(distributed hyper virtual machine monitor,DHVMM)是實現(xiàn)部件級虛擬化的關(guān)鍵支撐;贒HVM提供的強大的部件級虛擬化能力,虛擬機間的協(xié)同就轉(zhuǎn)變?yōu)橘Y源和作業(yè)的調(diào)度和遷移。該項目將強調(diào)部件在虛擬機間的流動,當一個虛擬機有大量作業(yè)到達或有繁重作業(yè)而出現(xiàn)負載尖鋒時,不采用傳統(tǒng)的方法如作業(yè)/進程的遷移,而是通過DHVMM將網(wǎng)絡(luò)環(huán)境中可利用的其他虛擬機上的空閑部件"流動"到資源緊張的虛擬機上,通過動態(tài)地增強重載虛擬機的計算能力、存儲能力、通信能力來處理其上的作業(yè)。同時,當作業(yè)的負載高峰過去后,被動態(tài)增強的虛擬機可以自由、實時地釋放"富余"的部件,供系統(tǒng)中其他虛擬機在需要的時候動態(tài)地獲取,計算所將這種技術(shù)稱為能力服務(wù)計算。
共享內(nèi)存技術(shù)
SMP服務(wù)器的核心是內(nèi)存共享技術(shù),例如著名的Snoopy或者directory協(xié)議等。這些技術(shù)通常需要一定程度硬件的支持才能獲得期望的高性能,例如SGIAltix的cc-NUMA內(nèi)存共享技術(shù),因此成本高昂、擴展性差。隨著網(wǎng)絡(luò)技術(shù)特別是Myrinent和Infiniband網(wǎng)絡(luò)技術(shù)的發(fā)展,基于軟件實現(xiàn)的內(nèi)存共享技術(shù),例如分布式共享內(nèi)存DSM技術(shù)由于成本低廉和可擴展性好而開始發(fā)展起來。
計算所研究的這個項目要求實現(xiàn)多個物理服務(wù)器的整合(8個以上),因此更適合于使用不依賴硬件支持的基于軟件的內(nèi)存共享技術(shù),以獲得更好的通用性和平臺獨立性。傳統(tǒng)的DSM技術(shù)不得不使用復(fù)雜的以lock和barrier為基礎(chǔ)實現(xiàn)的融貫性和一致性協(xié)議,導(dǎo)致延遲開銷很大。隨著UPC為代表的分割的全局地址空間模型編程技術(shù)的發(fā)展,為發(fā)展新型的內(nèi)存共享技術(shù)提供了客觀的需求。
另一方面,高效能服務(wù)器設(shè)計中的一個重要問題是提高編程的效率,而阻礙并行編程效率的首要問題就是進程或線程間的通信和同步問題,所以事務(wù)塊寄存器技術(shù)得以發(fā)展,因為它取消了過去在并行程序中必須使用的lock和barrier等同步操作。同時,由于顯式同步的減少或取消使得線程因數(shù)據(jù)依賴或同步依賴導(dǎo)致的進程等待時間大大減少,使系統(tǒng)吞吐率提高,從而使得內(nèi)核負載的飽滿程度得以大幅提升,進一步提高了系統(tǒng)的生產(chǎn)率。該項目計劃將以DHVMM為基礎(chǔ),發(fā)展全新的以軟件實現(xiàn)的內(nèi)存共享技術(shù)。
動態(tài)部署技術(shù)
在以虛擬機為基礎(chǔ)的商業(yè)高端服務(wù)器中部署技術(shù)是系統(tǒng)靈活可重構(gòu)性的基礎(chǔ),也是系統(tǒng)高可用性的保障。通常意義的動態(tài)部署技術(shù)主要指物理節(jié)點本身和其操作系統(tǒng)與應(yīng)用軟件的部署,而在計算所的研究中動態(tài)部署技術(shù)已突破了傳統(tǒng)的意義,重點是研究部件級虛擬化下虛擬機的動態(tài)部署和部件的動態(tài)部署。
虛擬化的部件部署是虛擬機部署的基礎(chǔ),而虛擬機的部署又是SMP系統(tǒng)部署的基石。虛擬機僅僅是部件在馮·諾依曼模型下的臨時、動態(tài)的聚合形態(tài),其目的是執(zhí)行指令、完成計算,同時提供指令和數(shù)據(jù)的存放和獲取,從而構(gòu)建一個以CPU為塔尖,各級緩存、內(nèi)存、磁盤構(gòu)成的存儲體系為塔身的計算架構(gòu)。因此,虛擬機在部件級虛擬化下,就成為一個臨時、動態(tài)創(chuàng)建的"數(shù)組",DHVMM為其動態(tài)地"分配"所需的"內(nèi)存"或一塊全局的"虛擬地址空間"。該項目的目標之一是研究全新的分布式部件創(chuàng)立、管理、使用、回收的技術(shù),實現(xiàn)虛擬機在SMP意義下的快速部署。
虛擬SMP高性能服務(wù)器技術(shù)
由于DHVMM提供了部件虛擬化技術(shù),由此計算所發(fā)展了新型的內(nèi)存共享技術(shù)和動態(tài)部署技術(shù),因此,傳統(tǒng)的SMP服務(wù)器的體系架構(gòu)已經(jīng)不能滿足需求,必須研究新型的體系結(jié)構(gòu)以構(gòu)建大型虛擬SMP高端服務(wù)器。完全支持目前的TCC協(xié)議的transactional sharedmemory(事務(wù)塊共享存儲)技術(shù)還是很難直接應(yīng)用在實用的高端商業(yè)虛擬服務(wù)器中,其中的原因與傳統(tǒng)的高性能計算技術(shù)一樣,還是應(yīng)用并行化的困境,還沒有高效的編譯器能夠自動將主流系統(tǒng)軟件和大型應(yīng)用軟件如Oracle數(shù)據(jù)庫事務(wù)化(transactionalize),因而不得不依賴于編程人員的經(jīng)驗和智慧。
另一個目前難以克服的障礙是事務(wù)塊共享存儲技術(shù)中引入了對要讀取的共享變量的"預(yù)測",因此就必須考慮預(yù)測失敗的異常處理。通常的做法是回溯(rollback),因而代價高昂?紤]到這些現(xiàn)實的阻礙,需要研究創(chuàng)新的基于軟件實現(xiàn)的虛擬SMP體系架構(gòu),要求能不依賴于編譯和手工進行事務(wù)塊共享存儲的優(yōu)化,要面向部件虛擬化,使其具有良好的可擴展性和高可用性,既支持傳統(tǒng)的共享內(nèi)存和消息傳遞編程模式,也支持UPC和TCC等新的編程模式,以提高系統(tǒng)的生產(chǎn)率。
對PB級存儲的支持
現(xiàn)代的高端商用服務(wù)器面臨對存儲能力的巨大需求,因此計算所研究的服務(wù)器必須能夠提供PB(PetaByte,1015)級存儲能力的支持。傳統(tǒng)的PB級存儲系統(tǒng)可能是基于光纖通道(Fibre-channel)的SAN存儲網(wǎng)絡(luò),也可能是基于infiniband網(wǎng)絡(luò)技術(shù)的存儲系統(tǒng),例如OracleRAC。而計算所將把兩者的優(yōu)勢結(jié)合起來,研究一種基于Infiniband網(wǎng)絡(luò)技術(shù)的SAN存儲系統(tǒng)(IB-SAN Infiniband Based Storage Area Network)。同時,加入磁盤部件的虛擬化技術(shù),這個技術(shù)不僅是前面提到的DHVM的基礎(chǔ)之一,也是IB-SAN的基礎(chǔ)。
對于GPU,內(nèi)存和磁盤從本質(zhì)上來說是沒有區(qū)別的,都是用來提供和存儲數(shù)據(jù)和指令的,差別在于訪問速度和由此決定的成本。在PGAS編程模型中,存儲空間應(yīng)該是統(tǒng)一的(包括內(nèi)存和磁盤,本地和遠程),以此為基礎(chǔ)構(gòu)建分布式基于軟件(也支持硬件)的RAID以提高存儲的可靠性和吞吐率。
支持GB級I/O的刀片服務(wù)器
機群架構(gòu)是目前服務(wù)器領(lǐng)域的最重要體系結(jié)構(gòu)。將標準服務(wù)器通過網(wǎng)絡(luò)以松散耦合的方式集中在一起,統(tǒng)一運行、監(jiān)控管理和維護就是所謂的機群系統(tǒng)。它可以用遠低于原來大型機系統(tǒng)的費用來獲得高性能的服務(wù),具有很高的性價比。
但是隨著機群計算結(jié)點數(shù)目的日益增加,傳統(tǒng)機架式機群系統(tǒng)的不足就日趨明顯。第一、受機柜高度和傳統(tǒng)1U機箱的限制,計算密度比較疏松;第二、安裝維護工作量大、成本高;第三、對于大規(guī)模機群,功耗日益成為瓶頸;第四、缺乏智能而有效的管理監(jiān)控。
針對上述問題,2000年左右,工業(yè)界出現(xiàn)了刀片服務(wù)器,刀片服務(wù)器就是一個卡上的服務(wù)器--在一個單獨的主板上包含一個完整的計算機系統(tǒng),包括處理器、內(nèi)存、網(wǎng)絡(luò)連接、少量的本地磁盤存儲,并提供外部存儲訪問的途徑。每個刀片服務(wù)器都有其自己的操作系統(tǒng),因此管理員可以為不同的應(yīng)用或終端用戶分配單獨的刀片服務(wù)器,并且刀片服務(wù)器的插入或移去不影響其他刀片服務(wù)器的運行(熱插拔)。如果將多個刀片服務(wù)器插入一個共享機箱中,那么該機柜的基礎(chǔ)設(shè)施,例如電源、冷卻設(shè)備、網(wǎng)絡(luò)交換機和硬布線等就能夠共用,同時具有冗余特性。所以,計算所將研制高性能的基于Infiniband的刀片服務(wù)器作為目標平臺,研究新型支持多核CPU的計算刀片、主板、相應(yīng)的輸入/輸出模塊和管理與交換模塊,并設(shè)計相應(yīng)的機械結(jié)構(gòu),解決散熱問題。
虛擬機技術(shù)下的入侵防護
計算所研究的虛擬SMP是由物理獨立的服務(wù)器構(gòu)成系統(tǒng),共同為用戶服務(wù)。它們通常是松散耦合,通過高速互聯(lián)網(wǎng)絡(luò)連接起來,因此極易受到網(wǎng)絡(luò)的攻擊。為此,必須結(jié)合計算所研究的服務(wù)器體系結(jié)構(gòu)特點,研究虛擬全域可擴展分布式入侵檢測引擎(Virtual Intrusion Detection System Sensor;VIS),探測能力服務(wù)域內(nèi)基于物理和軟件虛擬機之上的內(nèi)外網(wǎng)攻擊行為。