x86平臺的虛擬化如今可謂炙手可熱。VMware、Citrix、Parallels等企業虛擬化軟件受到了眾多服務器廠商的熱烈追捧,應用日漸廣泛。但虛擬化技術除了軟件之外,更需要底層的硬件的支持,硬件在虛擬化中發揮著尤為根本的作用。而以AMD等為代表的芯片廠商,在其四核芯片中都加強了對硬件虛擬化的支持。
記者獨家專訪了中國科學院計算技術研究所國家智能計算機研究開發中心研究員、博士生導師孫毓忠,他在計算機體系結構、高速計算機網絡與虛擬機等領域都有深入的研究,目前正在開發虛擬化計算平臺及其系統管理軟件Rainbow項目。該項目旨在進行基于虛擬化技術的、面向Internet應用的Kernel研究。孫毓忠為記者深入剖析了硬件虛擬化的五個關鍵方面。
異構
在6月18日公布的最新全球超級計算機TOP500中,IBM代號為“走鵑”的超級計算機榮登榜首。值得注意的是,該款計算機采用IBMCell和AMDOpteron處理器混合式設計,并實現了性能空前的千萬億級運算。另外,在收購圖形芯片廠商ATI之后,AMD近期提出了加速處理單元(APU)的概念,APU是一種異構多核心芯片加速器,集成了若干個CPU和其他專用處理器內核,也可理解為CPU+GPU。走鵑的成功與APU的提出都表明了異構計算強勁的發展態勢。
對此趨勢,孫毓忠表示:“目前,計算機體系結構呈現出巨大的異構性,但在軟件層面,操作系統并不希望看到過多的異構性。因此,硬件結構便出現了以可重構計算為核心的硬件虛擬化技術。”孫毓忠認為,硬件虛擬化出現的一個重要根源在于,虛擬機可屏蔽掉各種處理單元的異構性,不管這些單元是傳統的多核架構,還是來自不同廠商,還是CPU+GPU。
在混合架構方面,由于AMD采用超傳輸總線(HT)的開放式總線架構,因此更易于與異質處理單元的協作。
隔離性
硬件虛擬化除了能夠屏蔽掉硬件的復雜性,還能起到隔離的作用。“芯片廠商在支持硬件虛擬化方面,一個很重要的問題便是保持隔離性。”孫毓忠表示,“所謂隔離性,簡單來說,就是通過硬件的冗余為每一個虛擬機保留一個獨立的執行通道,這個通道包括獨立的CPU計算資源、內存、I/O通道等。”
“當然,利用硬件資源絕對的冗余來構建虛擬機之間絕對的隔離,會造成一個問題:系統支持的虛擬機的個數將受到限制,執行通道中的所有資源并不是都在全時運轉。所以我認為硬件虛擬化技術和硬件體系結構還有非常廣闊的結合空間。”
據記者了解,AMD四核巴塞羅那處理器就提供了硬件虛擬化隔離技術。其設備排除矢量DEV(DeviceExclusionVector)技術可在內存中創建保護域,通過拒絕未經授權的內存訪問請求,使設備在未經授權的情況下不能訪問內存頁面,這就增強了硬件虛擬化的安全性。而且,該功能并非由軟件實現,而是內嵌到硬件之中,無疑效率更高。據悉,只有具備集成內存控制器的處理器才可以提供這項優勢,目前在x86領域,只有AMD能做到這一點。
內存墻
在高性能計算領域,計算能力相對富余,但I/O不足,存在內存墻(MemoryWall)等問題,束縛了計算性能的進一步提升。內存墻是指從CPU核心到內存之間的數據交換往往受制于帶寬限制,之間的延遲越來越高,由此限制了系統整體性能的提升。硬件虛擬化的性能取決于延遲的大小。“芯片廠商都在努力提高通道帶寬,比如AMD采用了直連架構,能夠提高CPU與CPU之間的通信效率;其集成內存控制器技術,使CPU到內存的路徑更短,提高帶寬,降低延遲,使一個內核可以處理的線程更多,提高計算效率,并具有更出色的可擴展能力。”孫毓忠表示。
在硬件虛擬化方面,為提升虛擬機與物理機之間的數據傳送及翻譯轉換,AMD巴塞羅那使用了帶標簽的TLB(TranslationLook-asideBuffer,地址轉換后備緩沖器)。加標簽的TLB使地址空間標識符(ASID)附加于TLB項中,在多個虛擬機同時運行時或是在內存地址中切換時,可以令Hypervisor知道TLB與虛擬機之間的一一對應關系,無須刷新和重新裝載,從而提高虛擬機的性能。
另外,AMD巴塞羅那還提供硬件層的快速硬件虛擬化索引技術(RVI,Rapid VirtualizationIndexing),通過硬件轉換內存,就像沒有使用硬件虛擬化一樣,可使硬件虛擬化性能得到75%的提升。
“從體系結構的創新性來說,特別是在多核架構這個角度,AMD走在思想的前列,比如直連架構、集成內存控制器等,都是AMD首先提出來并實現的。這些說明AMD開創了先河,至少在思想上已經成為行業的領先者。”孫毓忠認為。
主頻
硬件虛擬化很關心CPU提供的支持,但CPU頻率會無限高嗎?無限高就代表很先進嗎?
“這是一個很重大的問題。從體系結構上來說,主頻無限高會帶來很大的問題,所以這就是為什么出現了多核的原因,頻率降一點,但是個數多一點,總的效能也會上去。”孫毓忠對記者說,“在多核這方面,AMD通過體系結構的創新,而不是單純地追求物理極限的創新,來實現計算效能的提高。在這方面,AMD是具有前瞻性的。硬件虛擬化起一個核心作用就是怎么樣跟上潮流,提供更有效的硬件資源的使用方法,這種使用方法的核心就是共享和隔離。”
云計算
云計算是2008年計算領域中的熱門詞匯,包括Google、IBM、微軟等IT巨頭都有不少動作。孫毓忠也在做一個相關項目——硬件虛擬化計算平臺及其系統管理軟件Rainbow,這是一個融合了云計算與硬件虛擬化的計算系統。
“硬件虛擬化技術提供了一個云計算的基礎架構。”孫毓忠向記者介紹該項目,“在這個架構中,任何一個客戶(可能共有一百萬個客戶),都有屬于自己專有的獨立的計算資源。系統可以給每個客戶一個計算形態,這些計算形態是在Internet上分布的,這就需要計算執行環境的硬件虛擬化。這些硬件虛擬化的執行環境會映射到中間的虛擬機池,虛擬機池通過新型的虛擬化技術映射到離散的這些CPU或者機器上。從這個角度來講,云計算的一個核心思想就是在服務器端實現集中的提供,同時要服務不同的人,也就是共享加隔離(安全、可信)。”