早期的虛擬化方法主要基于模擬CPU,例如在基于PowerPC的Mac上的x86,使用戶(hù)能夠運行DOS和Windows。不僅需要模擬CPU,而且還要模擬硬件環(huán)境中的其他組件,包括圖形適配器、硬盤(pán)、網(wǎng)絡(luò )適配器、內存和接口。
在90年代末期時(shí),VMware在虛擬化技術(shù)中有了重大突破,他們推出的技術(shù)可以讓大部分代碼直接在CPU上執行,而不需要被轉譯或模擬。
在VMware之前,運行在相同硬件的兩個(gè)或兩個(gè)以上的操作系統會(huì )互相干擾,因為他們會(huì )爭奪資源并試圖執行特權指令。VMware智能地攔截這些類(lèi)型的指令,動(dòng)態(tài)地重寫(xiě)代碼,并存儲新的轉譯用于重復使用和快速執行。
總之,這些技術(shù)比以前的模擬器運行地更快,幫助定義了我們現在所知道的x86虛擬化,包括舊的“管理程序”大型機概念,這是讓IT創(chuàng )建和運行虛擬機的平臺。
關(guān)鍵變化
多年來(lái),VMware及其專(zhuān)利統治著(zhù)虛擬化領(lǐng)域。在服務(wù)器端,VMware的ESX在裸機上運行,它成為領(lǐng)先的第一類(lèi)(或本機)管理程序。在客戶(hù)端,VMwareWorkstation在現有桌面操作系統內運行,它是第二類(lèi)(或托管)管理程序。
虛擬化技術(shù)不只是針對開(kāi)發(fā)人員或跨平臺軟件使用的技術(shù),虛擬化是一個(gè)強大的技術(shù),它通過(guò)將服務(wù)器放在可替代的虛擬化容器中,提高效率和可管理性。
多年來(lái),涌現出一些有趣的開(kāi)源項目,包括Xen和QEMU(快速模擬器)。這些都不像VMware那么快速和靈活,但它們?yōu)槲覀冎该髁艘粭l發(fā)展道路,并且奠定了基礎。
大約在2005年,AMD和英特爾公司開(kāi)發(fā)了新的處理器擴展到x86架構,為特權指令提供了硬件輔助。AMD和英特爾公司分別將其稱(chēng)之為AMD-V和VT-x,這些擴展改變了格局,最終將服務(wù)器虛擬化帶到更多供應商。不久后,Xen利用這些新的擴展創(chuàng )建了硬件虛擬機(HVM),這種虛擬機使用QEMU的設備模擬,以及來(lái)自VT-x和AMD-V擴展的硬件輔助來(lái)支持專(zhuān)有操作系統,例如微軟Windows。
一家名為Qumranet的公司也開(kāi)始將虛擬化基礎設施增加到Linux內核,被稱(chēng)為基于內核的虛擬機(KVM),并開(kāi)始使用QEMU設施來(lái)托管虛擬機。微軟最終也加入了這個(gè)領(lǐng)域,在2008年推出了Hyper-V。
一個(gè)新的行業(yè)誕生
當虛擬化最終變得“自由”,或者至少不需要昂貴的許可費就可以訪(fǎng)問(wèn),我們開(kāi)始看到新用例的出現。具體來(lái)說(shuō),亞馬遜開(kāi)始使用Xen平臺來(lái)出租其多余的計算能力給第三方客戶(hù)。通過(guò)其API,他們拉開(kāi)了彈性云計算革命的序幕,這意味著(zhù)應用程序自身可以自我配置資源來(lái)滿(mǎn)足你工作負載。
現在,開(kāi)源虛擬機管理程序已經(jīng)日趨成熟,并且在云計算中普及。除了VMware之外,企業(yè)開(kāi)始嘗試使用KVM或Xen管理程序的架構。這些嘗試并不是關(guān)于控制成本,更多地是關(guān)于利用云計算的彈性本質(zhì),以及這些開(kāi)源替代品正在構建。