官术网_书友最值得收藏!

2.7 Simulation,Virtualization,虛擬化技術(shù)、分區(qū)

IBM從POWER4 CPU開始支持虛擬化技術(shù),它起源于IBM大型機(jī)(Mainframe)的分區(qū)技術(shù)。虛擬化并不神秘,這種設(shè)想源于IT領(lǐng)域資源緊張和資源閑置兩種情況并存的現(xiàn)實(shí)需求,并且IT環(huán)境快速變化,要求設(shè)備能夠動態(tài)適應(yīng)這種變化。

2.7.1 虛擬化的第一個關(guān)鍵詞:資源共享和隔離

從不同的隔離(共享)程度可以分為:

● 共享基礎(chǔ)設(shè)施,很多大型設(shè)備都是采用這種方式,其中代表系統(tǒng)是傳統(tǒng)的電信程控交換機(jī),任何一路電路板故障,只會影響單一線路,而系統(tǒng)中其他設(shè)備不會受到影響。這些設(shè)備之間共享統(tǒng)一供電系統(tǒng)(通常是雙路冗余的供電系統(tǒng)),被裝配在同一個物理盒子(機(jī)柜)中,除非部件造成火災(zāi),否則可以保證絕對安全,但同時這種共享方式也僅僅實(shí)現(xiàn)了分享電源資源,也不能很自由地調(diào)整其他CPU、內(nèi)存、IO系統(tǒng)配置。很少有提供虛擬化功能的大型的計(jì)算機(jī)設(shè)備只共享基礎(chǔ)設(shè)施,不過從可靠性和安全性角度考慮,這種虛擬化功能似乎又是必需的,這種方式實(shí)現(xiàn)了所謂的物理隔離。

● 共享通信系統(tǒng),例如通過網(wǎng)絡(luò)互聯(lián)的一組服務(wù)器設(shè)備,但是提供這種虛擬化功能的設(shè)備在外觀上并不是一組服務(wù)器,而是一臺服務(wù)器,另外不僅僅共享真正的IP網(wǎng)絡(luò),還會共享其他一切IO總線,或者專用的通信總線。通過這種共享方式,可以靜態(tài)或者動態(tài)地調(diào)整CPU、內(nèi)存、IO配置,其缺點(diǎn)是調(diào)整只能按照預(yù)先設(shè)計(jì)好的物理分配方式內(nèi)進(jìn)行。大部分的高端UNIX服務(wù)器都可以實(shí)現(xiàn)此類虛擬化。

● 共享操作系統(tǒng),例如同一個操作系統(tǒng)內(nèi)執(zhí)行的一組程序,程序分為內(nèi)核級和用戶級兩個層次,內(nèi)核級為管理程序,進(jìn)行調(diào)度分配;用戶級程序并不知道自己在一臺真正的物理機(jī)器中執(zhí)行還是在某個虛擬機(jī)中執(zhí)行。

2.7.2 虛擬化的第二個關(guān)鍵詞:分配方式和顆粒度

分配方式從靜態(tài)分配到動態(tài)分配,從固定配置模式到可以自由使用非常細(xì)微的顆粒度(小于1)進(jìn)行分配。根據(jù)切分方式可以分為按照預(yù)定的處理板進(jìn)行切分(每塊板上有固定數(shù)量的CPU、內(nèi)存和IO槽位,一個處理板是最小分配單元),每個分區(qū)可以包含一個或者多個處理理板;按照CPU內(nèi)核、IO槽位切分,最小分配單位為一個CPU、一個IO槽位;按照CPU時間片切分,IO采用類似VLAN的方式共享(虛擬IO控制卡)。

由于CPU、IO卡的處理速度越來越快,而UNIX服務(wù)器很多時候卻處于閑置狀態(tài),為提高利用率考慮,自然想到了動態(tài)CPU、內(nèi)存分配,甚至讓多個系統(tǒng)共享幾顆物理CPU或者一塊IO卡的高速帶寬(10Gb Ethernet,4Gb Fiber Channel,Infinity Band),多個虛擬的IO接口卡透過一塊物理IO卡與外界通信。當(dāng)然,物理設(shè)備越來越高的可靠性、操作系統(tǒng)對多路徑數(shù)據(jù)訪問提供自動的負(fù)載均衡和冗余,也為共享提供了可能。

硬件分區(qū)技術(shù)以物理板為基礎(chǔ),如圖2-10所示,Sun服務(wù)器的Domain技術(shù),HP服務(wù)器的nPar技術(shù)都是這種類型;軟分區(qū)(或軟件分區(qū),其實(shí)這種軟件并非操作系統(tǒng)軟件,而是一種類似操作系統(tǒng)的軟件,例如VMWare)則更為靈活,能夠以任意的粒度、動態(tài)調(diào)整資源;IBM另外一種分區(qū)技術(shù)是LPar,邏輯分區(qū),它以硬件分區(qū)為基礎(chǔ),但并不受硬件板卡所限,能夠以最小資源單位進(jìn)行分配,例如單CPU、128M內(nèi)存等;IBM還有一種分區(qū)技術(shù)叫做微分區(qū),它通過在硬件層的微碼進(jìn)行控制,能夠以1/10的粒度進(jìn)行切分,以1/100的粒度動態(tài)調(diào)整CPU資源,并且通過Hypervisor(專用的控制電路和系統(tǒng))進(jìn)行分區(qū)間通信,將某個分區(qū)(VIOS,Virtual IO Server)的物理設(shè)備映射成為自己的一個虛擬設(shè)備使用。

圖2-10 虛擬化技術(shù)說明

2.7.3 虛擬化的第三個關(guān)鍵詞:上下層之間的相關(guān)性

(1)頂層的虛擬化技術(shù)(不是更高級的技術(shù),而是在應(yīng)用層完成虛擬化功能)采用代碼仿真的方式執(zhí)行虛擬系統(tǒng),類似Java虛擬機(jī)就是仿真出一種虛擬的計(jì)算機(jī)系統(tǒng),執(zhí)行Java代碼,最終目標(biāo)是無論底層是什么硬件設(shè)備或者操作系統(tǒng),都能同樣執(zhí)行Java程序,得到同樣的結(jié)果。如果兩種CPU不能執(zhí)行相同的二進(jìn)制代碼,則只能采用這種方式實(shí)現(xiàn)虛擬。

(2)下一層采用API仿真,并部分解碼執(zhí)行(或仿真)代碼,由于API可以比虛擬執(zhí)行,擁有更高的執(zhí)行效率,而通過部分解碼又能仿真完全不同的CPU,因此成為經(jīng)常被業(yè)界采用的虛擬化技術(shù),特別是進(jìn)行CPU設(shè)計(jì)、單板機(jī)開發(fā)時,通常采用此技術(shù)。在1999年,曾經(jīng)有AIX版本的Soft Windows軟件可以仿真Windows 3.1系統(tǒng),在AIX / RS600上執(zhí)行DOS / Windows程序。請參考圖2-11分區(qū)技術(shù)說明。

圖2-11 分區(qū)技術(shù)說明

經(jīng)常遇到朋友們詢問是否可以用虛擬機(jī)(VMWare)安裝AIX操作系統(tǒng),很遺憾,因?yàn)锳IX目前只有POWER系列CPU(包括Power PC)的二進(jìn)制代碼,而VMWare并非二進(jìn)制代碼虛擬機(jī),即便是用opensource的一些軟件,仿真出Power CPU指令集,也由于一個系統(tǒng)并非只有CPU,還需要很多IO外設(shè)的支持,而IBM并沒有計(jì)劃提供此類的支持,所以還沒有渠道實(shí)現(xiàn)用x86的CPU安裝AIX的技術(shù)。不過IBM為了推廣Linux,已經(jīng)提供了一個Sim System PowerPC 970的軟件,讓我們可以在x86硬件上建立一種支持Power PC指令集的Linux開發(fā)環(huán)境。有興趣的朋友可以參考以下地址,了解CPU仿真的歷史和未來:

http://simh.trailing-edge.com/

(3)再下一層技術(shù)利用CPU的代碼優(yōu)先級特性,用不同的保護(hù)級別運(yùn)行,但不同程序的主要二進(jìn)制代碼必須兼容,實(shí)際的代碼還是由CPU硬件解碼執(zhí)行的,而不是程序仿真。VMWare是這種虛擬技術(shù)的代表,類似的還有微軟的Virtual PC。

(4)最下層的技術(shù)不進(jìn)行任何仿真、虛擬,僅僅用軟件監(jiān)視程序執(zhí)行時占據(jù)的系統(tǒng)資源,通過對系統(tǒng)資源進(jìn)行限制和調(diào)整,達(dá)到控制程序的目的。

對應(yīng)于AIX/pSeries則有WLM,PLM,EWLM和VE等虛擬化的應(yīng)用技術(shù)實(shí)例。

WLM,Work Load Manager,該軟件對單獨(dú)操作系統(tǒng)內(nèi)的各種資源進(jìn)行控制,設(shè)定最大CPU、內(nèi)存使用率,通過限制程序的資源占用,達(dá)到控制程序執(zhí)行的目的,可以讓更多地程序運(yùn)行在一個操作系統(tǒng)內(nèi)核上而互不干擾;

PLM,Partition Load Manager,它利用分區(qū)技術(shù)實(shí)現(xiàn)操作系統(tǒng)層面的隔離,但是利用動態(tài)LPar技術(shù),動態(tài)調(diào)整不同分區(qū)之間的資源,將閑置的資源(內(nèi)存、CPU)調(diào)整到繁忙的分區(qū),達(dá)到最大的資源利用效率。

EWLM,Enterprise Workload Manager,它試圖在多臺同系列的物理服務(wù)器之間進(jìn)行服務(wù)調(diào)配,實(shí)現(xiàn)負(fù)載調(diào)整。由于物理服務(wù)器的資源沒有辦法動態(tài)跨物理設(shè)備調(diào)配,所以只好調(diào)整其上運(yùn)行的程序,讓程序在新的平臺運(yùn)行,以實(shí)現(xiàn)某個業(yè)務(wù)占有更大的物理資源或者被調(diào)整到一個較小的服務(wù)器。

VE,Virtualization Engin,這是最后一步,IBM希望可以做到跨平臺類型進(jìn)行負(fù)載調(diào)整,也就是在IBM的幾大品牌計(jì)算機(jī)(zSeries,pSeries,iSeries和xSeries)上對特定的應(yīng)用進(jìn)行負(fù)載分擔(dān)調(diào)整,這些特定的應(yīng)用以Web Service為主,以后會陸續(xù)增加各種Database和其他商業(yè)應(yīng)用套件,例如SAP等。

虛擬化的實(shí)現(xiàn)方式多種多樣,在x86系列CPU中,由于以前的CPU本身并沒有特別的虛擬化功能,所以都是通過軟件實(shí)現(xiàn)的,在其上有三種著名的軟件:VMWare,Virtual PC/Virtual Server,以及Xen。其中Xen是Opensource的軟件,Virtual PC和Virtual Server都是微軟的產(chǎn)品,VMWare則由VMWare公司(現(xiàn)為EMC的子公司)開發(fā)。其中VMWare和Xen類似,都屬于利用硬件指令直接進(jìn)行虛擬和控制(Hypervisor),但Xen更提供了對應(yīng)用支持的API,這樣在運(yùn)行某些特定的操作系統(tǒng)的時候,可以提供更高的性能。Virtual PC和Virtual Server則使用了Host OS技術(shù),本身實(shí)際是一個操作系統(tǒng),其上再進(jìn)行虛擬化,所以略顯龐大,并且對非微軟的操作系統(tǒng)支持不好(Virtual Server根本就不支持其他操作系統(tǒng)),不過如果使用微軟系統(tǒng),則可以實(shí)現(xiàn)更好的性能,因?yàn)榈讓拥腍ost OS本身提供了很多API,可以直接被調(diào)用,不用仿真(虛擬)。Intel和AMD都在他們的新芯片上增加了對虛擬化功能的支持(Intel使用VT技術(shù)的芯片和AMD的Pacifica芯片),這樣CPU就可以更進(jìn)一步提高虛擬化系統(tǒng)的執(zhí)行效率和安全性。

遺憾的是,這些產(chǎn)品都只能虛擬x86的CPU(指令集),不能支持POWER系列的指令,所以在VMWare虛擬機(jī)上安裝AIX只能是一種夢想了(也許在不久的將來可以實(shí)現(xiàn),但現(xiàn)在肯定不行)。IBM曾經(jīng)發(fā)布了一種開源的軟件,叫做Power PC 970 Full System Simulator。我們知道,POWER CPU和Power PC系列是基本二進(jìn)制兼容的,而這種軟件又可以在x86的CPU上運(yùn)行,似乎給了我們一線希望,但經(jīng)過作者測試,發(fā)現(xiàn)這種軟件所打包的只有在Power PC 970上的Linux開發(fā)環(huán)境,而沒有AIX Boot Loader(引導(dǎo)啟動/初始化程序),也就是說,即使你有一個能運(yùn)行POWER指令的虛擬機(jī),但是沒有適合這種虛擬硬件的軟件可用!普通的AIX是不支持這種虛擬出來的硬件的。

表2-4列出了當(dāng)前大部分虛擬化技術(shù)及其比較,請參考。

表2-4 虛擬化技術(shù)及其比較

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

續(xù)表

主站蜘蛛池模板: 镇平县| 板桥市| 新巴尔虎右旗| 平湖市| 克拉玛依市| 永丰县| 桂东县| 渝北区| 陕西省| 客服| 邯郸市| 南木林县| 惠水县| 炉霍县| 叙永县| 普宁市| 德安县| 巴彦淖尔市| 报价| 镶黄旗| 博湖县| 祁阳县| 南木林县| 东阿县| 怀安县| 青川县| 凯里市| 济宁市| 堆龙德庆县| 河间市| 瑞昌市| 鹤壁市| 湟中县| 阿巴嘎旗| 佳木斯市| 沅陵县| 马山县| 五华县| 吉隆县| 邮箱| 曲水县|