虛擬化概念很早就已出現(xiàn)。簡單來說,虛擬化就是使用某些程序,并使其看起來類似于其他程序的過程。
將這個概念應(yīng)用到計算機(jī)系統(tǒng)中可以讓不同用戶看到不同的單個系統(tǒng)(例如,一臺計算機(jī)可以同時運(yùn)行Linux和 Microsoft® Windows®)。這通常稱為全虛擬化(full virtualization)。
虛擬化也可以使用更加復(fù)雜的格式,其中單個計算機(jī)看上去具有多個架構(gòu)(對于一個用戶來說,它是一個標(biāo)準(zhǔn)的x86平臺;對于另外一個用戶來說,它是IBM Power PC平臺)。這種虛擬化形式通常被稱為硬件仿真。
最后,更加簡單的一種虛擬化是操作系統(tǒng)虛擬化,其中一臺計算機(jī)可以運(yùn)行相同類型的多個操作系統(tǒng)。這種虛擬化可以將一個操作系統(tǒng)的多個服務(wù)器隔離開來(這意味著全都必須使用相同類型和版本的操作系統(tǒng))。
虛擬化的工作原理
虛擬化解決方案的底部是要進(jìn)行虛擬化的機(jī)器。這臺機(jī)器可能直接支持虛擬化,也可能不會直接支持虛擬化;那么就需要系統(tǒng)管理程序?qū)拥闹С帧O到y(tǒng)管理程序,或稱為VMM,可以看作是平臺硬件和操作系統(tǒng)的抽象化。在某些情況中,這個系統(tǒng)管理程序就是一個操作系統(tǒng);此時,它就稱為主機(jī)操作系統(tǒng),如圖 1所示。
圖 1. 虛擬化的分層抽象
系統(tǒng)管理程序之上是客戶機(jī)操作系統(tǒng),也稱為虛擬機(jī)(VM)。這些VM都是一些相互隔離的操作系統(tǒng),將底層硬件平臺視為自己所有。但是實(shí)際上,是系統(tǒng)管理程序?yàn)樗鼈冎圃炝诉@種假象。
目前使用虛擬化解決方案的問題是,并非所有硬件都可以很好地支持虛擬化。較老的x86處理器根據(jù)執(zhí)行范圍對特定指令會產(chǎn)生不同結(jié)果。這就產(chǎn)生了一個問題,因?yàn)橄到y(tǒng)管理程序應(yīng)該只能在一個最受保護(hù)的范圍中執(zhí)行。由于這個原因,諸如VMWare之類的虛擬化解決方案會提前掃描要執(zhí)行的代碼,從而將這些指令替換為一些陷阱指令(trap instruction),這樣系統(tǒng)管理程序就可以正確地處理它們。Xen可以支持一種協(xié)作的虛擬化方法,它不需要任何修改,因?yàn)榭蛻魴C(jī)知道自己正在進(jìn)行虛擬化,并已經(jīng)進(jìn)行了修改。KVM會簡單地忽略這個問題,如果您希望進(jìn)行虛擬化,就強(qiáng)制必須在更新的硬件上運(yùn)行。
共2頁: 1 [2] 下一頁 | ||||
|