硬件虛擬模式
硬件虛擬技術是隨著Unix服務器的發(fā)展而出現(xiàn)的。實際上,在Unix服務器上,不少廠商和用戶習慣于將電氣級的虛擬技術稱為硬分區(qū)(或物理分區(qū)),而把通過軟件或固件實現(xiàn)的邏輯分區(qū)技術則稱之為軟分區(qū)。但無論如何稱呼,實際上邏輯虛擬模式和硬件虛擬模式的共同點是與應用所在的操作系統(tǒng)無關,只與系統(tǒng)硬件相關。那么,它們之間的區(qū)別在哪里?
先看看硬件虛擬模式。HP和Sun等廠商在Unix服務器上采用的是MBB(Modular Building Block)架構。MBB由多個BB(Building Block)構成,Sun稱之為Board,HP稱之為Cell。
每個BB可包含4路CPU、若干內存和I/O卡。不同BB內的CPU可以有不同的時鐘頻率。所有的BB通過一種稱為Crossbar Switch的交換機制連接在一起。采用MBB技術可以比較容易地設計出擁有更多數(shù)量CPU的服務器。在這種服務器上既可以運行一個操作系統(tǒng),也可以在一個或多個BB上運行多個操作系統(tǒng)。這就是服務器的硬分區(qū)。
基于MBB技術的服務器是由多個BB構成的,所以具有物理分區(qū)的特性:即可以熱插拔CPU板和內存板。這是因為每一個BB是物理分開的,每個4路CPU板可以單獨從系統(tǒng)中隔離出來并將其下電。
再來看邏輯虛擬模式。IBM沒有采用MBB的設計結構,所以在p系列服務器上不支持硬分區(qū)。由于IBM沒用采用Crossbar Switch技術做CPU之間的連接,它不允許不同主頻的CPU共存在同一臺機器內。而MBB結構的服務器則允許這樣做,但要求Crossbar Switch工作在相同的帶寬上(MBB之間的連接帶寬恒定)。
比較而言,硬件虛擬模式的優(yōu)點無疑是100%的隔離度和安全性,不占用任何系統(tǒng)資源。缺點是操作相對復雜,最小操作粒度是1顆CPU,而且在進行分區(qū)資源變更的時候,移出CPU的分區(qū)需要重啟操作系統(tǒng)。
邏輯虛擬模式的優(yōu)點是配置靈活,操作相對簡單而且分區(qū)粒度可達1/20個CPU,資源變更時無需重啟系統(tǒng),甚至無需重啟應用。但相對硬件虛擬模式而言,邏輯虛擬模式會占用一定比例的系統(tǒng)資源。目前大型主機的虛擬效率一般在95%以上,虛擬化損耗大約為2%~3%;AIX和HP-UX上的虛擬效率在90%以上,虛擬化損耗約為5%;而x86架構上的虛擬效率則在80%左右,虛擬化損耗大約為20%。
需要注意的是,Intel和AMD也開始了對硬件級虛擬技術的關注,例如Intel和AMD在2006年將分別推出采用Intel Virtual Machine Monitor和AMD Pacifica虛擬技術的處理器,它們將更好地支持VMware ESX Server和Xen這樣的虛擬機軟件。
軟件虛擬和應用虛擬模式
軟件虛擬模式和應用虛擬模式在原理上也比較相似,虛擬層軟件都需要運行在一個主操作系統(tǒng)上,而與系統(tǒng)硬件并不相關。二者的不同之處在于,前者在虛擬層上運行客戶操作系統(tǒng)(因而被稱為虛擬機),而后者則在虛擬層上運行應用軟件域。
軟件虛擬模式最為普通用戶熟悉,例如最近幾年頗為火熱的VMware GSX Server和微軟Virtual Server2005就是最廣為人知的虛擬機產(chǎn)品。虛擬機技術是通過虛擬機軟件來創(chuàng)建一個完整的系統(tǒng)環(huán)境,在這個軟件生成的系統(tǒng)環(huán)境下可以運行各種服務器應用軟件。由于虛擬機本身也是一個在OS上運行的應用,所以在一臺物理服務器上可以運行很多個虛擬機,每個虛擬機內可以獨立運行其應用,在虛擬機內運行的應用好像是在自己專有的一套OS環(huán)境下,這樣應用就通過虛擬機相互隔離。虛擬機可以通過虛擬I/O來共享物理I/O設備,而不必配備專用的I/O設備如網(wǎng)卡等。
而應用虛擬模型出現(xiàn)的時間最晚,如Sun在Solaris 10里提供的Solaris Container(也叫N1 Grid Container),號稱可以讓每個 Solaris 10 創(chuàng)建多達 8192 個安全、無故障軟件分區(qū)。
這種模式無疑可以提高單一系統(tǒng)的資源利用率,在一個操作系統(tǒng)上實現(xiàn)系統(tǒng)資源的高利用率,只要用戶的硬件足夠強大,可以把眾多業(yè)務系統(tǒng)運行在獨立的動態(tài)系統(tǒng)域(Zone)里。
需要說明的是,上述四種模式并非割裂的關系,可以混合使用。據(jù)中國惠普CSG企業(yè)服務器產(chǎn)品經(jīng)理裴暉的介紹,惠普于2005年初發(fā)布的HP-UX 11i v2,在這個版本上惠普提出了HP VSE(Virtual Server Enviorment)體系,這一體系包括基于硬件的nPAR技術、邏輯虛擬模式下的vPAR、軟件虛擬模式下的HP Virtual Machine和應用虛擬模式下的HP Resource Partition 技術。裴暉補充說,HP VSE體系與其他虛擬技術的不同在于設定閾值時的人性化設計。其他虛擬機管理工具在設定計算資源變更閾值時,通常是對CPU占用率這一指標進行設定,例如某應用令分區(qū)內CPU有80%以上的負載,則調用其他分區(qū)的閑置CPU資源。但問題在于,如果用戶不知道一個應用對CPU的負載有多大的時候怎么辦?筆者從惠普提供的HP VSE演示Flash看到,用戶的確可以針對應用指標設定閾值,例如在設定Web服務器時,可以設定Http連接數(shù)超過1000時調用計算資源,Http連接低于200時主動釋放計算資源。
虛擬原動力:服務器效率
目前,一般企業(yè)內的服務器僅能達到15%~30%的系統(tǒng)處理能力,絕大部分的服務器負載都低于40%,大部分的服務器處理能力并沒有得到利用,IT投資回報率偏低。正如41年前IBM研發(fā)虛擬技術的出發(fā)點,讓一臺機器盡可能多地讓更多用戶和應用程序有效使用,一直都是虛擬技術發(fā)展的原動力。
中科院物理所量子模擬科學中心(量子中心)的徐力方研究員對此感觸頗深。2002年底,物理所定購了兩臺滿配32顆Power4的IBM p690服務器,一臺用于后臺作業(yè)運算,一臺作為登錄節(jié)點和交互作業(yè)運算。但到了2003年9月,由于研究所的科研項目和學生迅速增加,交互作業(yè)節(jié)點作業(yè)擁擠,導致整機效率下降。
怎么辦?徐力方咨詢了IBM的技術人員,得到的答復是可以采用邏輯分區(qū)的技術,將登錄節(jié)點機劃分為8/24兩個分區(qū),8顆CPU的分區(qū)用于節(jié)點登錄,另24顆CPU用于后臺作業(yè)。但這樣做仍然存在問題,因為8顆CPU又不夠交互作業(yè)使用,徐力方介紹說,由于科研項目運行的并行程序眾多, 其中有學生們自行編寫或修改自開放源碼,難以避免多數(shù)子作業(yè)運行完畢,而少數(shù)子作業(yè)還在運算的情況,這樣就會出現(xiàn)計算能力的浪費。如果用邏輯分區(qū)把分區(qū)細分,又會出現(xiàn)某些項目在細分區(qū)上無法計算的情況??分區(qū)資源變更又浪費時間。
這一問題最終得到了圓滿解決,2003年10月,IBM發(fā)布了AIX 5L v5.2,IBM的工程師隨后以動態(tài)邏輯分區(qū)的方式配置了5個動態(tài)分區(qū),高峰時每個研究組各占20%的資源,但閑暇時則每個分區(qū)都能調用所有的計算資源,這樣,既做到資源的合理分配,又做到了資源的充分利用。
量子中心的案例中,雖然使用了5個分區(qū),但都采用的是AIX操作系統(tǒng),那么多操作系統(tǒng)的虛擬應用情況如何?據(jù)中國惠普CSG企業(yè)服務器產(chǎn)品經(jīng)理王鏑介紹,國內已有實際用戶實施了多操作系統(tǒng)虛擬。王鏑介紹說,2005年,國內某用戶采購了1臺配置32顆安騰2處理器的(其中16顆為待激活狀態(tài))HP Integrity Superdome服務器,系統(tǒng)先以硬分區(qū)技術劃分為兩個物理分區(qū),然后每個物理分區(qū)用vPAR和HP Virtual Machine技術劃分為三類邏輯分區(qū),分別運行社保交易服務器、BEA Weblogic應用服務器、Oracle數(shù)據(jù)庫服務器,分別運行在HP-UX和Linux平臺上,統(tǒng)一以HP Workload Management管理。這樣,當日常白天醫(yī)保交易繁忙時,可將數(shù)據(jù)庫服務器分區(qū)的計算資源調配到社保交易分區(qū),晚上進行批處理業(yè)務的時候再調配;而在月末各分區(qū)的業(yè)務都繁忙時,以iCOD(按需擴容)或TiCOD(購買待激活CPU若干小時的點卡)的方式,將待激活CPU臨時調配到各個分區(qū)。這樣,用戶既獲得了足夠的計算資源和安全性,但又只需較低的成本,保證了投資回報率。
實施虛擬應注意什么?
虛擬技術雖然成熟,但實施起來可不能想當然。那么在虛擬實施過程中應該注意些什么?
中國人民銀行清算總中心是IBM大型主機和p系列服務器的老用戶,從1992年前后開始使用大型主機,算來也有14年的歷史。清算中心開發(fā)部的副總經(jīng)理貝勁松在談起實施虛擬技術時,認為尤其應該關注兩點。
首先是實施前要對業(yè)務系統(tǒng)、對計算資源的需求有明確了解。貝勁松笑談,清算總中心在這方面是摸索出來的經(jīng)驗。2002年時,清算總中心曾購買了兩臺配置8顆1.1GHz Power4處理器的IBM eServer p690服務器,當時按照4/2/2的方式劃分為了三個邏輯分區(qū),但通過壓力測試發(fā)現(xiàn)第一個分區(qū)負載較小,反而是第二個分區(qū)經(jīng)常過載,于是將分區(qū)調整為2/4/2的配置,解決了這個問題。
其次是實施前要有充分的測試期。貝勁松認為,像銀行這樣的自行開發(fā)業(yè)務系統(tǒng)的行業(yè),相對比較容易了解業(yè)務系統(tǒng)對計算資源的壓力,但即使這樣,也需要進行充分測試,如不具備對等配置測試環(huán)境,也應在處理能力稍低的同類硬件平臺上進行測試。例如,清算總中心2005年購買了8路IBM eServer p570(用于生產(chǎn))和兩路的eServer p570 p550(用于測試),分別按照2/6和0.5/1.5的配置進行分區(qū),在系統(tǒng)的開發(fā)期和測試期,p550上的測試數(shù)據(jù)有助于他們了解業(yè)務系統(tǒng)對計算資源的需求。如果是不自行開發(fā)業(yè)務系統(tǒng)的行業(yè),就更有必要在近似系統(tǒng)上進行測試,畢竟生產(chǎn)系統(tǒng)的安全性是第一位的。
除了老用戶的經(jīng)驗之談,筆者認為在實施虛擬技術之前,還應參照左表,決定采用哪種虛擬技術最合適。從表中容易得知,如果是簡單的單機應用開發(fā),那么采用應用虛擬技術最合適;如果需要開發(fā)Web應用,那么軟件虛擬技術才能滿足需求。
虛擬并非萬能
或許上面的內容會給讀者一個錯覺,即虛擬技術是如此優(yōu)異,如果自己的企業(yè)還沒有使用,將會在未來的競爭中出于劣勢,實際上,仍有許多用戶還不需要用到虛擬技術。
國家氣象中心是高性能計算機集群和IBM p系列的老用戶,尤其是2004年采購的IBM eServer p655集群,以3200顆1.7GHz的Power4+處理器實現(xiàn)了10.31TeraFlops/s的Linpack性能,牢牢占據(jù)著系統(tǒng)中國高性能計算機的頭把交椅,如此高性能的系統(tǒng),氣象中心是如何看待分區(qū)或者虛擬機技術呢?
答案出乎筆者先前的預料,據(jù)國家氣象中心計算機室主任田浩的介紹,他們并沒有采用任何分區(qū)和虛擬技術。為什么?原因就在于氣象行業(yè)應用軟件的特殊性上。田浩解釋說,氣象預報主要采用的短期和中期預報,大都采用將預測區(qū)域劃分為近似正方的柵格(邊長越小預報越精確),然后用各種計算模型(如MM5或GRAPES等)進行運算。雖然氣象中心集群的性能是國內目前最強大的,系統(tǒng)的滿載率也接近60%(7×24×365),但如果是24小時的短期預報,目前一般在3~4小時內得出結果;而中期預報(10天,30公里)則大概需要5~6小時,這一速度雖然比以前快很多,但還算不上完美??也就是說,目前的整個系統(tǒng)跑生產(chǎn)系統(tǒng)沒問題,但富余的資源并不多。田浩笑說,像氣象中心這樣對計算資源需求永無止境的行業(yè),恐怕是很難體驗到虛擬技術的好處的。不過,田浩同時認為,如果氣象中心在業(yè)務系統(tǒng)的并行算法上能夠取得突破,氣象中心未來采用虛擬技術的可能性同樣存在。
除了氣象預報和石油物探這樣對計算資源需求永無止境的高端領域,低端應用當然也不需要用到虛擬技術,倒不是沒這樣的需求,而是因為通常前端應用的硬件平臺性能還不夠好,即使是一個勇于嘗試的IT主管,也不會輕易在一臺單路至強服務器上用VMware GSX Server虛擬出若干Linux和Windows操作系統(tǒng),把公司的郵件、Web和文件服務整合到一臺機器上。
虛擬技術里程碑
1965年 IBM研究中心在一臺IBM7044機器上的每個部分建立一個7044鏡像。每個鏡像叫做7044/44X。這是為了使IBM更好地理解多編程操作系統(tǒng)。這是IBM虛擬機概念的開端。
1967年 Djiskstra在THE大學開發(fā)一個操作系統(tǒng)。它由一系列分層的虛擬機組成。每層虛擬機抽象出機器的不同層次,而每一層又是由它的下一層抽象而來。
1968年 一個IBM小組建立了一個名為劍橋監(jiān)視系統(tǒng)的操作系統(tǒng)(CMS)。CMS是分時系統(tǒng)的一個實驗,并最終成為VM/370所采用的體系構架。VM/370被當作分時系統(tǒng)來銷售。
1974年 貝爾實驗室的Denise Ritchie和Ken Thompson發(fā)表了關于Unix操作系統(tǒng)的里程碑式的論文。
1980~85年 IEEE標準化委員會為了給Unix庫函數(shù)提供一個標準,啟動POSIX項目。
1990年 IEEE POSIX項目組發(fā)表了“信息技術可移植操作系統(tǒng)接口。這為UNIX外殼和應用例程規(guī)定了一個標準。
2001年 AIX 5L v5.1發(fā)布,IBM首次在小型機上實現(xiàn)了邏輯分區(qū)。
2002年 AIX 5L v5.2發(fā)布,IBM在小型機上實現(xiàn)了動態(tài)邏輯分區(qū)。
2004年 8月,AIX 5L v5.3實現(xiàn)了微分區(qū)技術,最小分區(qū)粒度為1/10個CPU,且最多支持254個虛擬I/O。
10月,Solaris 10實現(xiàn)了Solaris Container功能,支持應用層面的計算資源調配。
2005年 1月,HP-UX 11i v2發(fā)布,實現(xiàn)了從硬分區(qū)、軟分區(qū)到應用層分區(qū),最小分區(qū)粒度為1/20顆CPU。
10月,IBM發(fā)布虛擬I/O服務器,該服務器的一個組件IVM具備HMC的部分功能。即在不配置HMC的低端p系列和i系列服務器上,也可配置多個分區(qū)和操作系統(tǒng)。
編看編想
如何讓“虛擬”成為現(xiàn)實?
做完此次專題的所有采訪,最大的感受是,技術趨勢與實際應用還存在較大差距??原以為在媒體上宣傳了多年的服務器整合概念以及各種分區(qū)技術,會有很多行業(yè)應用??但實際上,除了金融業(yè)、制造業(yè)、政府部門和部分科研領域的用戶,許多用戶對服務器整合、虛擬技術并不十分清晰。簡而言之,文中提到的四個案例可說是代表了四種典型用戶。
最積極的是銀行類用戶,因為銀行是中國最早使用大型主機和小型機的行業(yè),在如何充分挖掘機器潛能上心得當然最多,對于虛擬技術的期待程度和應用評價也最高,特點在于對成本敏感度低,對虛擬技術的安全性和使用效率關注度高。其次是政府部門類用戶,如東軟社保案例中的用戶,對虛擬技術的應用雖然不如銀行用戶那樣熟稔,但通過雙方技術人員的努力,仍能以最低的TCO獲得最多的計算性能(預裝的16顆處理器成本很低),他們的特點是對預算較敏感,對系統(tǒng)效率提高感興趣。第三種是類似物理所這樣的用戶,由于運行的程序有相當部分是開源代碼,所以必須使用虛擬技術來提高系統(tǒng)使用效率,但這類用戶對預算敏感度高,對虛擬技術本身倒并不是特別了解。最后就是國家氣象中心這樣的用戶,雖然對虛擬技術有一定了解,也有相當興趣,但由于行業(yè)應用的要求,短時間內無法采用虛擬技術。
可見,與北美和歐洲相對廣泛的虛擬技術應用狀況和國內的現(xiàn)實也再次證明了我們在IT應用水平上還存在差距。如何提升水平?還是借用人行清算總中心開發(fā)部副總經(jīng)理貝勁松的話??最好是摸著石頭過河,如果新用戶不了解虛擬技術的好處和潛在風險,那么不妨在類似生產(chǎn)系統(tǒng)的小平臺上進行測試,既降低了嘗試新技術的風險,又能得到生產(chǎn)系統(tǒng)的近似負載數(shù)據(jù),可謂一舉兩得。
而沒有類似平臺的用戶怎么辦?筆者不建議專門為此購買新的硬件系統(tǒng),這類用戶完全可以與廠商聯(lián)系,到相關的解決方案中心去體驗一下。因為IBM、HP、Sun等廠商在北京、上海等地設有用戶體驗中心,相關的解決方案也有一些,運氣好的話可以找到同行業(yè)的方案,然后再去實地考察一番,這樣得出的結論也是相當可靠的。
總之,在筆者看來,虛擬技術能否在各行業(yè)的關鍵系統(tǒng)中使用并不存在太多變數(shù),筆者更關心的是,虛擬技術與Grid結合后,會產(chǎn)生什么樣的影響?