虛擬化技術(shù)在高性能計(jì)算機(jī)系統(tǒng)中的應(yīng)用研究
隨著高性能計(jì)算機(jī)性能的提高,其規(guī)模不斷擴(kuò)大,各部件之間的關(guān)系日益復(fù)雜,對(duì)系統(tǒng)的管理和使用也變得越來(lái)越困難。為了獲得較高的性能和效率,高性能計(jì)算機(jī)系統(tǒng)軟件必須根據(jù)體系結(jié)構(gòu)的特點(diǎn)進(jìn)行定制,高性能計(jì)算應(yīng)用程序也需要根據(jù)特定體系結(jié)構(gòu)進(jìn)行優(yōu)化。這樣不僅大大增加了系統(tǒng)軟件和應(yīng)用程序的開(kāi)發(fā)時(shí)間,加大了開(kāi)發(fā)難度,還降低了應(yīng)用的可移植性。此外,越來(lái)越大的系統(tǒng)規(guī)模和越來(lái)越高的軟硬件復(fù)雜性也降低了系統(tǒng)可靠性。特別是高性能計(jì)算機(jī)體系結(jié)構(gòu)向多層次、多粒度異構(gòu)化方向的發(fā)展使得上述問(wèn)題變得更為突出。如何高效管理和使用高性能計(jì)算機(jī)系統(tǒng),使其發(fā)揮最大效能,已成為系統(tǒng)軟件和應(yīng)用開(kāi)發(fā)人員亟待解決的關(guān)鍵技術(shù)難題。將虛擬化技術(shù)應(yīng)用于構(gòu)建高性能計(jì)算機(jī)系統(tǒng)是解決上述問(wèn)題的一個(gè)有效途徑。
虛擬化技術(shù)最早出現(xiàn)在上世紀(jì)六、七十年代的IBM大型機(jī)系統(tǒng)中,用于支持高層軟件共用底層硬件資源,為用戶提供多個(gè)應(yīng)用軟件運(yùn)行環(huán)境。到了八十年代,由于多任務(wù)操作系統(tǒng)的出現(xiàn)、硬件費(fèi)用的降低以及個(gè)人電腦的流行,虛擬化技術(shù)逐漸淡出人們的視野。隨著計(jì)算機(jī)軟硬件技術(shù)的進(jìn)一步發(fā)展,硬件性能得到了顯著的提高,操作系統(tǒng)功能也越來(lái)越豐富,但系統(tǒng)可靠性和安全性卻變得越來(lái)越差。為了提高系統(tǒng)可靠性,系統(tǒng)管理員重新采用以往一臺(tái)機(jī)器運(yùn)行一個(gè)應(yīng)用的計(jì)算模型,但這種計(jì)算模型會(huì)導(dǎo)致更多的硬件成本和管理開(kāi)銷。而虛擬化技術(shù)正好滿足了上述需求。將在多臺(tái)物理機(jī)器上運(yùn)行的程序放置在虛擬機(jī)(VM)上運(yùn)行,可以節(jié)約硬件設(shè)備成本,提高資源利用率,降低管理的成本,通過(guò)虛擬機(jī)之間相互隔離,可以有效提高系統(tǒng)可靠性和安全性。目前,虛擬化技術(shù)在臺(tái)式電腦和應(yīng)用服務(wù)器領(lǐng)域已經(jīng)取得了很好的應(yīng)用效果,擁有如VMware workstation、Virtual PC和Xen等一批成功的虛擬化軟件。硬件廠商也紛紛加入虛擬化的行列,推動(dòng)虛擬化技術(shù)的發(fā)展,如Intel的VT-X、VT-i和VT-d技術(shù),AMD的Pacific技術(shù)等。
與在服務(wù)器領(lǐng)域的廣泛應(yīng)用相比,虛擬化技術(shù)在高性能計(jì)算領(lǐng)域的應(yīng)用還相對(duì)較少。本文首先詳細(xì)介紹目前虛擬化技術(shù)在高性能計(jì)算領(lǐng)域已有的幾個(gè)成功應(yīng)用;然后分析總結(jié)虛擬化技術(shù)應(yīng)用于高性能計(jì)算機(jī)系統(tǒng)時(shí)所面臨的主要問(wèn)題;最后對(duì)虛擬化技術(shù)在高性能計(jì)算中的應(yīng)用前景進(jìn)行了展望。
2 虛擬化技術(shù)在高性能計(jì)算機(jī)系統(tǒng)中的應(yīng)用研究
目前,國(guó)外一些公司和研究機(jī)構(gòu)已經(jīng)成功地將虛擬化技術(shù)應(yīng)用到了高性能計(jì)算中,并取得了一些研究成果。這些應(yīng)用包括了異構(gòu)資源整合、系統(tǒng)容錯(cuò)、虛擬環(huán)境構(gòu)建以及并行編程等多個(gè)方面。
2.1 整合異構(gòu)資源——Cray的自適應(yīng)超級(jí)計(jì)算
在異構(gòu)資源整合方面,Cray公司啟動(dòng)了一個(gè)Cascade計(jì)劃,該計(jì)劃融合了虛擬化技術(shù)的思想精髓,提出自適應(yīng)超級(jí)計(jì)算(Adaptive Supercomputing)的設(shè)想,目標(biāo)是將現(xiàn)有的幾種不同的超級(jí)計(jì)算技術(shù)整合到一個(gè)統(tǒng)一的高性能計(jì)算平臺(tái)中。如圖1所示。Cray公司認(rèn)為,高性能計(jì)算的未來(lái)將各種異構(gòu)資源集成到同一系統(tǒng)中。為了得到較高的應(yīng)用程序處理性能,也為了滿足用戶的高生產(chǎn)率的要求,高性能計(jì)算系統(tǒng)必須綜合利用各種類型的處理技術(shù)。
Cray采用了自適應(yīng)超級(jí)計(jì)算技術(shù)把標(biāo)量計(jì)算、向量計(jì)算、多線程和可重構(gòu)計(jì)算技術(shù)都整合到同一個(gè)高性能計(jì)算平臺(tái)上去。多種類型的處理技術(shù)共享全局尋址存儲(chǔ)。采用符合工業(yè)標(biāo)準(zhǔn)的Linux操作系統(tǒng),用戶可以將整合計(jì)算平臺(tái)作為單一系統(tǒng)來(lái)使用。通過(guò)虛擬化技術(shù)對(duì)低層進(jìn)行抽象,用戶可以在抽象的系統(tǒng)架構(gòu)之上,使用標(biāo)準(zhǔn)的并行編程語(yǔ)言來(lái)編寫(xiě)應(yīng)用程序。當(dāng)進(jìn)行程序編譯時(shí),由編譯器先對(duì)代碼進(jìn)行分析,確定哪一種類型的計(jì)算技術(shù)最適合這段代碼,然后再對(duì)這段代碼進(jìn)行相應(yīng)地編譯。程序開(kāi)始執(zhí)行的時(shí)候,調(diào)度軟件自動(dòng)將代碼配置到合適的節(jié)點(diǎn)上運(yùn)行。自適應(yīng)超級(jí)計(jì)算使得系統(tǒng)能自動(dòng)適應(yīng)用戶代碼,而不是讓程序員改變代碼來(lái)適應(yīng)特定系統(tǒng)。這就意味著能夠在同一個(gè)高性能計(jì)算平臺(tái)上支持更多不同領(lǐng)域、不同特點(diǎn)的高性能計(jì)算應(yīng)用程序,用戶不必再為了在能夠某個(gè)特定系統(tǒng)更有效地運(yùn)行而修改應(yīng)用程序。
到2010年左右,Cascade系統(tǒng)的原型機(jī)將把各種類瓔的計(jì)算技術(shù)緊密集成到單一系統(tǒng)中去,在每一個(gè)機(jī)柜都集成了標(biāo)量、向量、多線程和硬件加速等計(jì)算技術(shù),并提供自適應(yīng)軟件來(lái)使節(jié)點(diǎn)層的異構(gòu)處理技術(shù)對(duì)用戶透明。
2.2資源管理——虛擬化集群系統(tǒng)
在資源管理方面,Ohio State大學(xué)和IBM Watson Research Center的Huang和Abali等人提出一種虛擬化集群系統(tǒng)框架結(jié)構(gòu)。該框架結(jié)構(gòu)采用模塊化方法進(jìn)行設(shè)計(jì),通過(guò)多種優(yōu)化技術(shù)提高虛擬化集群系統(tǒng)的性能。
2.2.1虛擬化集群系統(tǒng)框架結(jié)構(gòu)。
圖2基于VM的虛擬化集群系統(tǒng)框架結(jié)構(gòu)
虛擬化集群系統(tǒng)框架結(jié)構(gòu)主要包括了以下五個(gè)主要模塊:
(1)前端:前端是用戶與虛擬集群系統(tǒng)交互的界面,用戶可以在前端節(jié)點(diǎn)上定制系統(tǒng)環(huán)境,提交批處理的作業(yè)。
(2)物理資源:物理資源是通過(guò)高速互連網(wǎng)絡(luò)連接起來(lái)的計(jì)算節(jié)點(diǎn),由虛擬機(jī)管理器進(jìn)行管理。為了獲得最佳性能,一個(gè)物理節(jié)點(diǎn)上不會(huì)運(yùn)行超過(guò)其上的CPU或核數(shù)目的虛擬機(jī),以避免頻繁地切換狀態(tài)所帶來(lái)的性能損失。
(3)管理模塊:管理模塊是整個(gè)框架的核心,其主要任務(wù)是根據(jù)提交作業(yè)的要求查找和調(diào)度物理資源,實(shí)例化VM映像以滿足作業(yè)運(yùn)行的要求。當(dāng)獲得足夠多可用的空閑虛擬機(jī)時(shí),管理模塊提交并執(zhí)行作業(yè)。
(4)VM映像管理器:VM映像管理器管理所有的VM映像信息。這砦映像信息包含諸如VM核心版本、OS類型、特殊的庫(kù)等,被保存在VM映像數(shù)據(jù)庫(kù)中。VM映像管理器負(fù)責(zé)查找用戶作業(yè)需要的VM環(huán)境,然后用于創(chuàng)建對(duì)應(yīng)的VM映像。
(5)存儲(chǔ)節(jié)點(diǎn):存儲(chǔ)節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)VM映像和用戶生成的各種數(shù)據(jù)。
2.2.2 支持集群系統(tǒng)虛擬化的性能優(yōu)化
在構(gòu)建虛擬化集群系統(tǒng)時(shí),Huang等人采用了多種技術(shù)對(duì)虛擬化集群系統(tǒng)進(jìn)行性能優(yōu)化。
(1)減小虛擬化帶來(lái)的額外性能開(kāi)銷。
虛擬化集群系統(tǒng)中通過(guò)以下兩種技術(shù)來(lái)減小虛擬化帶來(lái)的性能開(kāi)銷:
?、賄MM-bypass I/O技術(shù):該技術(shù)允許VM通過(guò)DMA操作直接訪問(wèn)底層網(wǎng)絡(luò)設(shè)備。這種訪問(wèn)方式只產(chǎn)生非常小的I/0虛擬化開(kāi)銷,可以使得高性能計(jì)算應(yīng)用程序獲得接近原始的通信性能。
?、诙ㄖ芆S技術(shù):支持高性能計(jì)算應(yīng)用程序運(yùn)行所需最少的操作系統(tǒng)服務(wù)。通過(guò)裁減不必要的內(nèi)核模塊和系統(tǒng)服務(wù)來(lái)定制OS,最大限度降低系統(tǒng)額外開(kāi)銷。
(2)減小VM映像管理開(kāi)銷。
虛擬化集群系統(tǒng)通過(guò)三種方法優(yōu)化VM映像開(kāi)銷:
?、僮钚』疺M映像:在虛擬化集群系統(tǒng)中,VM映像中包含了定制的OS環(huán)境,該OS環(huán)境幾乎只包含了MPI函數(shù)庫(kù)、必要的系統(tǒng)工具集以及一些運(yùn)行時(shí)環(huán)境。這種定制VM映像非常小,可以在網(wǎng)絡(luò)上高效傳輸,并在其它節(jié)點(diǎn)上快速實(shí)例化。
?、诳焖倏蓴U(kuò)展的VM映像分布:創(chuàng)建一個(gè)VM映像分布模塊負(fù)責(zé)將VM映像廣播到各個(gè)節(jié)點(diǎn),并在各節(jié)點(diǎn)上實(shí)例化,比如通過(guò)基于二叉樹(shù)結(jié)構(gòu)的廣播算法將映像廣播到各個(gè)目標(biāo)物理節(jié)點(diǎn)上。這種做法可加速VIM映像的分布。
?、劬彺鎂M映像:在有足夠的存儲(chǔ)空間的前提下,可以在計(jì)算節(jié)點(diǎn)的本地存儲(chǔ)器上緩存VM映像。如果VM在最后一次實(shí)例化后沒(méi)有發(fā)生更新,就不需要傳輸新的VM到該計(jì)算節(jié)點(diǎn),當(dāng)發(fā)生更新時(shí),可以僅傳輸更新部分。
#p#
2.3 系統(tǒng)容錯(cuò)——基于Xen的主動(dòng)容錯(cuò)系統(tǒng)
隨著高性能計(jì)算機(jī)系統(tǒng)規(guī)模的擴(kuò)大,系統(tǒng)故障率大大增加,傳統(tǒng)的容錯(cuò)技術(shù)難以滿足高性能計(jì)算機(jī)可靠性的要求。針對(duì)上述問(wèn)題,Nagarajan和Mueller等人在Xen的基礎(chǔ)七實(shí)現(xiàn)了一種主動(dòng)容錯(cuò)機(jī)制,允許進(jìn)程自動(dòng)地從失效節(jié)點(diǎn)遷移到健康節(jié)點(diǎn)。
該主動(dòng)容錯(cuò)系統(tǒng)主要包括三種機(jī)制:容錯(cuò)機(jī)制、節(jié)點(diǎn)失效預(yù)測(cè)和負(fù)載平衡機(jī)制。
(1)基于Xen的容錯(cuò)機(jī)制。高效的容錯(cuò)機(jī)制必須能夠在系統(tǒng)出錯(cuò)時(shí)花費(fèi)最小的開(kāi)銷對(duì)計(jì)算任務(wù)進(jìn)行重定位,使其能在不同的物理節(jié)點(diǎn)上運(yùn)行。更重要的是,在計(jì)算任務(wù)遷移時(shí)不應(yīng)該中斷任務(wù)本身的執(zhí)行?;赬en半虛擬化技術(shù),VM可以在節(jié)點(diǎn)出錯(cuò)時(shí)進(jìn)行動(dòng)態(tài)遷移。通過(guò)預(yù)遷移方法,可以避免中斷任務(wù)運(yùn)行,使VM內(nèi)的所有狀態(tài)預(yù)先遷移到目標(biāo)VM。遷移過(guò)后,VM可以從遷移前的狀態(tài)繼續(xù)向下執(zhí)行。
(2)基于IPMI的節(jié)點(diǎn)失效預(yù)測(cè)。作為主動(dòng)容錯(cuò)系統(tǒng),必須具備預(yù)測(cè)某峰未來(lái)事件的能力。通過(guò)采用智能平臺(tái)管理接口(IPMI)可以實(shí)現(xiàn)系統(tǒng)系統(tǒng)運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控,預(yù)測(cè)未來(lái)的節(jié)點(diǎn)失效事件。當(dāng)預(yù)測(cè)到某節(jié)點(diǎn)即將失效時(shí),可以通知系統(tǒng)啟動(dòng)上述容錯(cuò)機(jī)制,主動(dòng)將該節(jié)點(diǎn)上的VM遷移到健康節(jié)點(diǎn)上。
(3)基于Ganglia的負(fù)載平衡。VM遷移之前需要進(jìn)行目標(biāo)節(jié)點(diǎn)的選擇。該系統(tǒng)中采用Ganglia監(jiān)控各節(jié)點(diǎn)的本地資源使用狀態(tài),并將監(jiān)控?cái)?shù)據(jù)發(fā)送給其它節(jié)點(diǎn),使所有節(jié)點(diǎn)都可以獲得整個(gè)集群系統(tǒng)的全局狀態(tài)。VM遷移時(shí)根據(jù)最新的全局狀態(tài)選擇目標(biāo)節(jié)點(diǎn)。
2.4虛擬化系統(tǒng)環(huán)境——VSE
在構(gòu)建虛擬化系統(tǒng)環(huán)境方面,美國(guó)橡樹(shù)嶺國(guó)家實(shí)驗(yàn)室的Engelmann C等人提出一種虛擬系統(tǒng)環(huán)境(Virtual Systern Environment,簡(jiǎn)稱VSE)。VSE具有良好的虛擬環(huán)境隔離性,可用于為高性能計(jì)算應(yīng)用程序的開(kāi)發(fā)和部署提供沙盒(Sandbox)環(huán)境,也可以支持系統(tǒng)軟件的開(kāi)發(fā)和部署。
(1)VSE的系統(tǒng)架構(gòu)。
VSE采用了系統(tǒng)級(jí)的虛擬機(jī)管理器(VMM)和VM配置機(jī)制,為高性能計(jì)算機(jī)系統(tǒng)軟件和應(yīng)用程序的開(kāi)發(fā)和移植提供基礎(chǔ)環(huán)境的保障。VSE的系統(tǒng)架構(gòu)如圖3所示。
圖3 VSE的系統(tǒng)架構(gòu)
VSE的核心部分是VMM。VMM實(shí)現(xiàn)對(duì)物理硬件資源的抽象,支持虛擬計(jì)算節(jié)點(diǎn)和虛擬開(kāi)發(fā)節(jié)點(diǎn)的部署,以及虛擬節(jié)點(diǎn)上操作系統(tǒng)的運(yùn)行。VMM通過(guò)VM保護(hù)機(jī)制保證VM之間以及VM和宿主機(jī)操作系統(tǒng)(Host OS)之間相互隔離。
(2)VSE的管理機(jī)制。
①系統(tǒng)管理。VSE采用一組系統(tǒng)管理工具和配置文件進(jìn)行系統(tǒng)管理。這些系統(tǒng)管理工具和配置文件被用于在VSE系統(tǒng)E創(chuàng)建、部署、清除和銷毀VM。
?、谂渲霉芾?。VSE采用層次化的VM配置描述管理機(jī)制,對(duì)操作系統(tǒng)配置、軟件環(huán)境配置和應(yīng)用程序配置進(jìn)行分層描述。配置管理機(jī)制支持用戶權(quán)限的設(shè)置,以保證用戶環(huán)境的隔離性和安全性。
(3)VSE的應(yīng)用。
?、僦С謶?yīng)用程序的開(kāi)發(fā)和部署。VSE可支持高性能計(jì)算應(yīng)用程序早期原型的開(kāi)發(fā)。通過(guò)在臺(tái)式電腦上部署VSE,可以構(gòu)建與目標(biāo)系統(tǒng)一致的小規(guī)模開(kāi)發(fā)環(huán)境,開(kāi)發(fā)的應(yīng)用程序可直接移植目標(biāo)系統(tǒng)上運(yùn)行而不需要作任何修改。
?、谥С窒到y(tǒng)軟件的開(kāi)發(fā)和部署。VSE提供一個(gè)虛擬的測(cè)試平臺(tái),通過(guò)構(gòu)建虛擬硬件設(shè)備,以VM的形式提供沙盒測(cè)試環(huán)境,使開(kāi)發(fā)人員不需要卸載原有操作系統(tǒng)軟件就可以直接進(jìn)行新系統(tǒng)的開(kāi)發(fā)和測(cè)試。這種開(kāi)發(fā)方式可以保證原有系統(tǒng)軟件和其它VM不會(huì)受到影響。
#p#
2.5并行編程環(huán)境——Charm++和AMPI
在并行編程環(huán)境方面,Illinois大學(xué)并行程序設(shè)計(jì)實(shí)驗(yàn)室(Parallel Programming Laboratory,簡(jiǎn)稱PPL)實(shí)現(xiàn)了一種基于虛擬化技術(shù)的并行編程模型,它可將程序分解成大量可并行處理的部分,這些可并行處理的部分構(gòu)成大量虛擬實(shí)體,每個(gè)虛擬實(shí)體對(duì)應(yīng)一個(gè)虛擬處理器。該模型使程序員不需要顯式地考慮物理處理器的使用,他們?cè)诰幊虝r(shí)只需要考慮各個(gè)虛擬實(shí)體之間的交互?;谏鲜鼍幊棠P?,Illinois大學(xué)實(shí)現(xiàn)了Charm++和AMPI編程語(yǔ)言。
(1)Charm++和AMPI。Charm++基于C++實(shí)現(xiàn),其最基本的并行單元為一個(gè)C++對(duì)象,稱為chare。
chare中包含了可被其它該chare異步調(diào)用的方法。chare對(duì)象之間通過(guò)傳遞消息進(jìn)行通信。Charm++支持共享變量、優(yōu)先級(jí)調(diào)度、chare對(duì)象組等機(jī)制。通過(guò)這些機(jī)制實(shí)現(xiàn)對(duì)高性能計(jì)算機(jī)體系結(jié)構(gòu)的抽象,使應(yīng)用程序的編寫(xiě)更為方便。
除了Charm++,Illnois PPL還將虛擬化技術(shù)與MPI相結(jié)合,實(shí)現(xiàn)了一種自適應(yīng)MPI模型——AMPI。在AMPI中,應(yīng)用程序由大量虛擬的MPI進(jìn)程組成,這些虛擬的MPI進(jìn)程獨(dú)立于處理器。AMPI使用戶可在更高的系統(tǒng)抽象層次上使用熟悉的消息編程接口來(lái)編寫(xiě)科學(xué)計(jì)算程序。
(2)虛擬化技術(shù)對(duì)并行編程的影響。虛擬化技術(shù)應(yīng)用于高性能計(jì)算機(jī)并行編程中可以帶來(lái)以下幾個(gè)方面的好處:
①通過(guò)虛擬化技術(shù)可以提高編程模型的抽象層次,使用戶可以更多地關(guān)注應(yīng)用程序本身的邏輯而不是硬件結(jié)構(gòu)的細(xì)節(jié);
②基于消息驅(qū)動(dòng)的虛擬處理器在運(yùn)行時(shí)可以自動(dòng)獲得’消息/通信重疊的效果,如果再加上高效的預(yù)測(cè)機(jī)制,可以實(shí)現(xiàn)代碼的運(yùn)行時(shí)優(yōu)化;
③虛擬處理器擁有動(dòng)態(tài)遷移的能力,可以實(shí)現(xiàn)自適應(yīng)動(dòng)態(tài)負(fù)載平衡,更好地利用空閑計(jì)算資源。
3 虛擬化技術(shù)應(yīng)用于高性能計(jì)算中
從目前的研究可以看出,虛擬化技術(shù)尚未被廣泛應(yīng)用于高性能計(jì)算領(lǐng)域,其主要原因包括以下幾個(gè)方面:
(1)虛擬化帶來(lái)的性能開(kāi)銷問(wèn)題。傳統(tǒng)的服務(wù)器虛擬化技術(shù)帶來(lái)額外的系統(tǒng)性能開(kāi)銷。在一個(gè)虛擬化系統(tǒng)中,VMMM運(yùn)行在最高特權(quán)級(jí)上,VM和Guest 0S作為VMM上的用戶級(jí)程序運(yùn)行。這就導(dǎo)致Guest OS運(yùn)行過(guò)程中遇到特權(quán)級(jí)操作時(shí),必須內(nèi)陷到VMM中。由VMM執(zhí)行。這種執(zhí)行方式需進(jìn)行上下文切換,且會(huì)導(dǎo)致更長(zhǎng)的設(shè)備訪問(wèn)延遲,對(duì)于對(duì)系統(tǒng)性能敏感的高性能計(jì)算應(yīng)用來(lái)說(shuō)是難以接受的。因此,需要研究面向高性能計(jì)算機(jī)系統(tǒng)的虛擬化技術(shù),針對(duì)應(yīng)用對(duì)高性能的需求,進(jìn)行VMM優(yōu)化設(shè)計(jì)。
(2)多VMM高效協(xié)同問(wèn)題。面向高性能計(jì)算機(jī)系統(tǒng)的虛擬化技術(shù)不同于傳統(tǒng)的服務(wù)器虛擬化技術(shù)。傳統(tǒng)的服務(wù)器虛擬化只需要單個(gè)VMM對(duì)服務(wù)器底層硬件設(shè)備進(jìn)行抽象。而在多維異構(gòu)的高性能計(jì)算機(jī)系統(tǒng)中,每個(gè)節(jié)點(diǎn)都需要運(yùn)行一個(gè)獨(dú)立的VMM,該VMM只對(duì)單個(gè)節(jié)點(diǎn)進(jìn)行虛擬化。整個(gè)系統(tǒng)中運(yùn)行了大量相互關(guān)聯(lián)的VMM。VMM之間協(xié)同工作,構(gòu)成統(tǒng)一的大規(guī)模系統(tǒng)級(jí)虛擬化環(huán)境。因此,需要研究高效的VMM協(xié)同機(jī)制,其中包括大量VMM之間的協(xié)同管理、協(xié)同部署、VM跨物理節(jié)點(diǎn)的高效通信、VM遷移以及系統(tǒng)級(jí)容錯(cuò)等技術(shù)問(wèn)題。
(3)大量VM的管理問(wèn)題。為了支持高性能計(jì)算應(yīng)用程序的運(yùn)行??赡苄枰淮尾渴疬\(yùn)行上千個(gè)乃至上萬(wàn)個(gè)的VM。傳統(tǒng)的服務(wù)器虛擬化技術(shù)只涉及少量VM的部署問(wèn)題和運(yùn)行時(shí)管理問(wèn)題。如何支持大量VM的動(dòng)態(tài)部署、根據(jù)應(yīng)用需求快速分配所需的硬件資源、以較低的系統(tǒng)開(kāi)銷快速啟動(dòng)VM、對(duì)大量VM進(jìn)行運(yùn)行時(shí)管理等,都是實(shí)現(xiàn)高性能計(jì)算機(jī)系統(tǒng)虛擬化時(shí)需要解決的重要技術(shù)問(wèn)題。
(4)編程模型和軟件環(huán)境的支持問(wèn)題。傳統(tǒng)的編程模型和支持應(yīng)用開(kāi)發(fā)和運(yùn)行的軟件環(huán)境都是直接針對(duì)非虛擬化系統(tǒng)設(shè)計(jì)的,而虛擬化技術(shù)對(duì)硬件系統(tǒng)進(jìn)行了抽象,改變了用戶所見(jiàn)的資源組織形態(tài),使得傳統(tǒng)的編程模型和軟件環(huán)境無(wú)法適應(yīng)用戶對(duì)虛擬化系統(tǒng)的使用要求。因此,需要研究面向虛擬化高性能計(jì)算機(jī)系統(tǒng)的新型編程模型和針對(duì)虛擬化系統(tǒng)進(jìn)行優(yōu)化設(shè)計(jì)的配套軟件環(huán)境,如并行編譯器、鏈接器、調(diào)試優(yōu)化工具、并行函數(shù)庫(kù)等。
4 應(yīng)用前景分析
目前。虛擬化技術(shù)已被廣泛應(yīng)用于臺(tái)式電腦和服務(wù)器上,取得了很好的應(yīng)用效果。相比之下,在高性能計(jì)算領(lǐng)域的應(yīng)用還非常有限。隨著高性能計(jì)算技術(shù)的發(fā)展和對(duì)虛擬化技術(shù)研究的深入,兩者之間的結(jié)合將會(huì)變得越來(lái)越緊密,虛擬化技術(shù)也將為高性能計(jì)算領(lǐng)域的諸多難題提供新的解決方法。
(1)構(gòu)建虛擬應(yīng)用開(kāi)發(fā)環(huán)境。高性能計(jì)算應(yīng)用程序與運(yùn)算環(huán)境關(guān)系密切,不同規(guī)模的運(yùn)行環(huán)境下表現(xiàn)的行為也不盡相同。利用虛擬化技術(shù),可以在小規(guī)模系統(tǒng)上構(gòu)建大規(guī)模的虛擬應(yīng)用開(kāi)發(fā)環(huán)境,使應(yīng)用程序可以在更為接近最終運(yùn)行環(huán)境的系統(tǒng)環(huán)境下進(jìn)行開(kāi)發(fā)和優(yōu)化,開(kāi)發(fā)的應(yīng)用程序可以被更快、更方便地移植到大規(guī)模系統(tǒng)上運(yùn)行。
采用虛擬化技術(shù),還可以對(duì)高性能計(jì)算應(yīng)用程序的開(kāi)發(fā)和調(diào)試提供特殊的支持。VMM可以通過(guò)授權(quán)允許一個(gè)VM對(duì)其它VM的內(nèi)存、中斷和通信狀態(tài)進(jìn)行監(jiān)控,有助于開(kāi)發(fā)人員深入分析應(yīng)用程序行為,便于高性能計(jì)算應(yīng)用的調(diào)試。同樣。這一機(jī)制也可以用于系統(tǒng)軟件的開(kāi)發(fā)與調(diào)試。
(2)整合異構(gòu)資源。隨著應(yīng)用需求和高性能計(jì)算技術(shù)的發(fā)展,高性能計(jì)算機(jī)體系結(jié)構(gòu)正在逐步向著異構(gòu)化的方向發(fā)展。如何高效管理和使用異構(gòu)系統(tǒng)是高性能計(jì)算系統(tǒng)軟件和應(yīng)用程序開(kāi)發(fā)人員面臨的主要技術(shù)難題。虛擬化技術(shù)在整合異構(gòu)資源方面有其固有的優(yōu)勢(shì)。利用虛擬化技術(shù)對(duì)底層異構(gòu)硬件資源進(jìn)行抽象和管理,可以有效地隱藏硬件平臺(tái)的異構(gòu)特性,為用戶提供一個(gè)統(tǒng)一的系統(tǒng)環(huán)境,方便用戶對(duì)異構(gòu)系統(tǒng)的使用。
(3)提供定制的Appliance。不同的高性能計(jì)算應(yīng)用程序需要不同的系統(tǒng)環(huán)境,如面向應(yīng)用優(yōu)化的操作系統(tǒng)環(huán)境、特定版本的編譯器以及通信庫(kù)等,這使得應(yīng)用程序的部署費(fèi)時(shí)費(fèi)力,系統(tǒng)環(huán)境也難以做到最優(yōu)化,系統(tǒng)效能得不到充分發(fā)揮。采用虛擬化技術(shù)有助于解決上述問(wèn)題。虛擬化技術(shù)支持預(yù)先將定制的操作系統(tǒng)、經(jīng)過(guò)優(yōu)化配置的應(yīng)用運(yùn)行環(huán)境和應(yīng)用二進(jìn)制代碼一起打包成VM映像,這種映像被稱為Appliance。通過(guò)直接部署Appliance,可以實(shí)現(xiàn)高性能計(jì)算應(yīng)用程序的快速部署,并獲得較好的運(yùn)行時(shí)性能。
(4)提高系統(tǒng)可靠性和容錯(cuò)性能。隨著高性能計(jì)算機(jī)規(guī)模的不斷擴(kuò)大,部件間復(fù)雜性的不斷提高,系統(tǒng)硬件故障率也不斷增大。在虛擬化的系統(tǒng)中,由于節(jié)點(diǎn)上各VM之問(wèn)相互隔離,軟件錯(cuò)誤如操作系統(tǒng)或應(yīng)用程序故障只能直接影響到一個(gè)VM,甚至硬件故障如CPU、內(nèi)存、設(shè)備的故障也只影響到它們所被指定到的VM。當(dāng)出現(xiàn)故障時(shí),通過(guò)VM遷移、快速重啟VM等方法可以重新恢復(fù)甚至于不中斷應(yīng)用程序的運(yùn)行。
(5)提高系統(tǒng)安全性。系統(tǒng)安全對(duì)于像數(shù)據(jù)中心這樣的高性能計(jì)算應(yīng)用來(lái)說(shuō)非常重要,而VM之間的相互隔離和自測(cè)試能力為建立安全系統(tǒng)提供了一個(gè)平臺(tái)。由于VMM只對(duì)低層硬件抽象和管理,提供一些簡(jiǎn)單的功能,相對(duì)于全功能的操作系統(tǒng)內(nèi)核來(lái)說(shuō),更為可靠和安全。VMM本身不會(huì)受到惡意代碼的干擾,而且它所提供的VM之間的相互隔離和授權(quán)自測(cè)試功能也是完全可信的。VMM可以對(duì)所加載的VM和加載到VM上的應(yīng)用程序進(jìn)行信用檢查,可以授權(quán)一個(gè)VM對(duì)其他的VM狀態(tài)進(jìn)行審查,比如進(jìn)行病毒掃描等。VMM還可以持續(xù)監(jiān)視VM之間的通信和VM的狀態(tài),以確保VM運(yùn)行狀態(tài)的正確性。
5 結(jié)束語(yǔ)
基于Xen等成熟的虛擬化技術(shù),一些研究人員已經(jīng)在高性能計(jì)算領(lǐng)域做了一些開(kāi)拓性的探索,在集群系統(tǒng)虛擬化等方面開(kāi)辟了一些成功的應(yīng)用。到目前為止,虛擬化技術(shù)在高性能計(jì)算領(lǐng)域的應(yīng)用還并不多見(jiàn),其原因主要是高性能計(jì)算應(yīng)用通常對(duì)系統(tǒng)性能有苛刻的要求,而虛擬化必然帶來(lái)性能的損失,這對(duì)于許多高性能計(jì)算應(yīng)用來(lái)說(shuō)是不被容許的。因此,需要專門(mén)研究面向高性能計(jì)算機(jī)系統(tǒng)的高效率虛擬化技術(shù),如針對(duì)高性能計(jì)算機(jī)系統(tǒng)的虛擬化模型、大規(guī)模虛擬化系統(tǒng)上的應(yīng)用開(kāi)發(fā)和部署機(jī)制、支持虛擬化系統(tǒng)的編程模型和配套軟件環(huán)境等。隨著虛擬化技術(shù)的不斷發(fā)展,底層硬件越來(lái)越多地加入對(duì)虛擬化的支持,有效地降低了虛擬化的性能開(kāi)銷。而高性能計(jì)算機(jī)體系結(jié)構(gòu)向多層次、多粒度的異構(gòu)化方向發(fā)展的趨勢(shì)也必將進(jìn)一步推動(dòng)高性能計(jì)算機(jī)虛擬化技術(shù)的發(fā)展。
【編輯推薦】