在虛擬機技術(shù)中,不再對底層的硬件資源進行劃分,而是部署一個統(tǒng)一的Host系統(tǒng)。在Host系統(tǒng)上,加裝了Virtual Machine Monitor,虛擬層作為應用級別的軟件而存在,不涉及操作系統(tǒng)內(nèi)核。虛擬層會給每個虛擬機模擬一套獨立的硬件設(shè)備,包含CPU、內(nèi)存、主板、顯卡、網(wǎng)卡等硬件資源,在其上安裝所謂的Guest操作系統(tǒng)。最終用戶的應用程序,運行在Guest操作系統(tǒng)中。 硬件輔助的虛擬化似乎比BT技術(shù)更好。如果BT技術(shù)可以讓虛擬機的性能達到物理機的80%,那么硬件輔助虛擬化(HVM)可以讓虛擬機的性能達到物理機的85%左右。當然,這個中間轉(zhuǎn)換還是需要的,但是直接由硬件來完成,僅此而已。
1、硬件輔助虛擬化:硬件輔助虛擬化(HVM)簡而言之,就是物理平臺本身為攔截和重定向特殊指令提供硬件支持,甚至新的硬件也會提供額外的資源,幫助軟件實現(xiàn)關(guān)鍵硬件資源的虛擬化,從而提升性能。可以理解為CPU額外增加了一個環(huán)-1環(huán),專門為虛擬機運行提供。以X86平臺的虛擬化為例,支持虛擬化技術(shù)的X86 CPU有專門優(yōu)化的指令集來控制虛擬進程。
通過這些指令集,VMM將很容易地把客戶端運行在受限模式下。一旦客戶端嘗試訪問物理資源,硬件將暫停客戶端的操作,并將控制權(quán)返回給VMM進行處理。VMM還可以使用硬件的虛擬化增強機制,將客戶端在受限模式下對某些特定資源的訪問從硬件重定向到VMM指定的虛擬資源。整個過程不需要暫停客戶端的運行和VMM軟件的參與。
由于虛擬化硬件可以提供全新的架構(gòu),可以支持操作系統(tǒng)直接在其上運行,無需二進制轉(zhuǎn)換,從而降低了相關(guān)的性能開銷,大大簡化了VMM設(shè)計,使VMM能夠按照通用標準編寫,性能更強。
需要注意的是,硬件虛擬化技術(shù)是一套解決方案。一個完整的情況需要CPU、主板芯片組、BIOS和軟件的支持,比如VMM軟件或者一些操作系統(tǒng)本身。即使只有CPU支持虛擬化技術(shù),有了VMM軟件,也會比完全不支持虛擬化技術(shù)的系統(tǒng)有更好的性能。鑒于虛擬化的巨大需求和硬件虛擬化產(chǎn)品的廣闊前景,英特爾一直在努力改進和加強其硬件虛擬化產(chǎn)品線。
自2005年底以來,英特爾在其處理器產(chǎn)品線中推廣了英特爾虛擬化技術(shù)(英特爾虛擬化技術(shù))虛擬化技術(shù)的應用,并發(fā)布了一系列采用英特爾虛擬化技術(shù)的處理器產(chǎn)品,包括臺式機的奔騰和酷睿系列、服務器的至強和安騰安騰。英特爾不斷優(yōu)化硬件虛擬化的性能,并在每一代處理器架構(gòu)中添加新的虛擬化技術(shù)。
目前,從臺式機上的酷睿i3/5/7到服務器端的E3/5/7/9,幾乎都支持英特爾VT技術(shù)。可以說,英特爾VT很可能在不久的將來成為所有英特爾處理器的標準配置。當然,AMD的CPU也支持虛擬化技術(shù)。
2、軟件虛擬化:純軟件虛擬化,顧名思義,就是使用純軟件的方法攔截和模擬對現(xiàn)有物理平臺(往往不支持硬件虛擬化)上的物理平臺的訪問。常見的軟件虛擬機,如QEMU,通過純軟件模擬X86平臺處理器的取值、解碼和執(zhí)行,客戶端的指令不直接在物理平臺上執(zhí)行。因為所有的指令都是由軟件模擬的,所以性能往往很差,但是不同架構(gòu)平臺的虛擬機可以在同一個平臺上模擬。
VMWare的軟件虛擬化使用動態(tài)二進制翻譯(BT)技術(shù)。與QEMU不同,BT是加速虛擬化的解決方案之一,加速虛擬化的另一個常見解決方案是硬件輔助虛擬化技術(shù)。BT允許客戶端的指令在虛擬機監(jiān)控器的可控范圍內(nèi)直接運行在物理平臺上。
但是客戶端指令在運行前會被虛擬機監(jiān)控器掃描,突破虛擬機監(jiān)控器限制的指令會被可以直接在物理平臺上運行的安全指令動態(tài)替換,或者被對虛擬機監(jiān)控器的軟件調(diào)用替換。這樣做的好處是仿真性能相比純軟件有了很大的提升(仿真簡單來說就是通過一個軟件來造假,可能不存在;雖然虛擬化意味著通過切割或其他方式虛擬化這個設(shè)備來提供一定程度的服務),但它也失去了跨平臺虛擬化的能力。
采用BT技術(shù),Guest的用戶空間在CPU環(huán)3上運行,Guest的內(nèi)核空間在CPU環(huán)1上運行,Host的內(nèi)核空間在CPU環(huán)0上運行。BT監(jiān)控CPU環(huán)1,隨時將Guest內(nèi)核的調(diào)用轉(zhuǎn)換為特權(quán)指令調(diào)用。當然CPU環(huán)1還沒有使用,BT技術(shù)大大提升了虛擬化性能。
但是,BT有一個很大的缺點,就是不能跨平臺。模擬器QEMU可以模擬各種CPU架構(gòu)平臺,如PowerPC、ARM,不考慮底層硬件;然而,英國電信無法做到這一點。英國電信嚴重依賴底層架構(gòu)。比如底層架構(gòu)是X86,只能用X86 CPU創(chuàng)建虛擬機。
在純軟件虛擬化解決方案中,VMM在軟件套件中的位置是傳統(tǒng)意義上的操作系統(tǒng)的位置,而操作系統(tǒng)的位置是傳統(tǒng)意義上的應用程序的位置。這種轉(zhuǎn)變將不可避免地增加系統(tǒng)的復雜性。軟件棧越來越復雜,意味著這些環(huán)境很難管理,這使得系統(tǒng)的可靠性和安全性更難保證。有不懂的請咨詢夢飛科技了解。