Linux中實(shí)現(xiàn)虛擬化的四種常用方法
- 來(lái)源:縱橫數(shù)據(jù)
- 作者:中橫科技
- 時(shí)間:2013/2/1 15:20:15
- 類別:新聞資訊
(1)硬件仿真。毫無(wú)疑問(wèn),最復(fù)雜的虛擬化實(shí)現(xiàn)技術(shù)就是硬件仿真。在這種方法中,可以在宿主系統(tǒng)上創(chuàng)建一個(gè)硬件VM仿真所想要的硬件。正如所能預(yù)見(jiàn)的一樣,使用硬件仿真的主要問(wèn)題是速度會(huì)非常慢。由于每條指令都必須在底層硬件上進(jìn)行仿真,因此速度減慢100倍的情況也并不稀奇。若要實(shí)現(xiàn)高度的仿真,包括周期精度、所仿真的CPU管道以及緩存行為,實(shí)際速度差距甚至可能會(huì)達(dá)到1000倍之多。
硬件仿真也有自己的優(yōu)點(diǎn)。例如,使用硬件仿真,可以在一個(gè)ARM處理器主機(jī)上運(yùn)行為PowerPC設(shè)計(jì)的操作系統(tǒng),而不需要任何修改。甚至可以運(yùn)行多個(gè)虛擬機(jī),每個(gè)虛擬器仿真一個(gè)不同的處理器。
(2)完全虛擬化。也稱為原始虛擬化,是另外一種虛擬化方法。這種模型使用一個(gè)虛擬機(jī),它在客戶操作系統(tǒng)和原始硬件之間進(jìn)行協(xié)調(diào)。"協(xié)調(diào)"在這里是一個(gè)關(guān)鍵,因?yàn)閂MM在客戶操作系統(tǒng)和裸硬件之間提供協(xié)調(diào)。特定受保護(hù)的指令必須被捕獲下來(lái)并在虛擬控制程序(hypervisor)中進(jìn)行處理,因?yàn)檫@些底層硬件并不由操作系統(tǒng)所擁有,而是由操作系統(tǒng)通過(guò)虛擬控制程序(hypervisor)共享。
雖然完全虛擬化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因?yàn)橹虚g經(jīng)過(guò)了虛擬控制程序(hypervisor)的協(xié)調(diào)過(guò)程。完全虛擬化的最大優(yōu)點(diǎn)是操作系統(tǒng)無(wú)需任何修改就可以直接運(yùn)行。唯一的限制是操作系統(tǒng)必須要支持底層硬件(如PowerPC)。
(3)超虛擬化。是另外一種流行的虛擬化技術(shù),它與完全虛擬化有一些類似。這種方法使用了一個(gè)虛擬控制程序(hypervisor)來(lái)實(shí)現(xiàn)對(duì)底層硬件的共享訪問(wèn),還將與虛擬化有關(guān)的代碼集成到了操作系統(tǒng)本身中。這種方法不再需要重新編譯或捕獲特權(quán)指令,因?yàn)椴僮飨到y(tǒng)本身在虛擬化進(jìn)程中會(huì)相互緊密協(xié)作。
正如前面介紹的一樣,超虛擬化技術(shù)需要為虛擬控制程序(hypervisor)修改客戶操作系統(tǒng),這是它的一個(gè)缺點(diǎn)。但是超虛擬化提供了與未經(jīng)虛擬化的系統(tǒng)相接近的性能。與完全虛擬化類似,超虛擬化技術(shù)可以同時(shí)支持多個(gè)不同的操作系統(tǒng)。
(4)操作系統(tǒng)級(jí)的虛擬化。它使用的技術(shù)與前面所介紹的有所不同。這種技術(shù)在操作系統(tǒng)本身之上實(shí)現(xiàn)服務(wù)器虛擬化。這種方法支持單個(gè)操作系統(tǒng),并可以將獨(dú)立的服務(wù)器相互簡(jiǎn)單地隔離開(kāi)來(lái)。操作系統(tǒng)級(jí)的虛擬化要求對(duì)操作系統(tǒng)的內(nèi)核進(jìn)行一些修改,但是其優(yōu)點(diǎn)是可以獲得原始性能。