虛擬化技術(shù)是伴隨著計算機(jī)的出現(xiàn)而產(chǎn)生和發(fā)展起來的,虛擬化意味著對計算機(jī)資源的抽象。在云計算概念提出后,虛擬化技術(shù)可以用來對數(shù)據(jù)中心的各種資源進(jìn)行虛擬化和管理,可以實現(xiàn)服務(wù)器虛擬化、存儲虛擬化、網(wǎng)絡(luò)虛擬化和桌面虛擬化。虛擬化技術(shù)已經(jīng)成為構(gòu)建云計算環(huán)境的一項關(guān)鍵技術(shù)。
在這兒我們久談?wù)劮?wù)器虛擬化,服務(wù)器虛擬化主要分為兩種:
1.寄居虛擬化:寄居虛擬化一般稱為虛擬機(jī)監(jiān)視器(VMM)。它是安裝在已有的主機(jī)操作系統(tǒng)上,通過宿主操作系統(tǒng)來管理和訪問各類資源,這類虛擬化架構(gòu)系統(tǒng)損耗大,沒有**的Hypevisor層 。
2.裸機(jī)虛擬化:不需要在服務(wù)器上先安裝操作系統(tǒng),而 是直接將虛擬化系統(tǒng)安裝在服務(wù)器硬件設(shè)備中,本質(zhì)是認(rèn)為這個虛擬化也是一個操作系統(tǒng),一部稱為Hypeivisor。Hypeivisor實現(xiàn)從虛擬資源到物理資源的映射,當(dāng)虛擬機(jī)中的操作系統(tǒng)通過特權(quán)指令訪問關(guān)鍵系統(tǒng)資源時,Hypeivisor將接管其請求,并進(jìn)行相應(yīng)的模擬處理。
服務(wù)器虛擬化的底層實現(xiàn)方式通過三個設(shè)備來完成:
(1)CPU虛擬化:CPU虛擬化技術(shù)把物理CPU抽象成虛擬CPU,任意時刻,一個物理CPU只能運行一個虛擬CPU指令。每個客戶使用操作系統(tǒng)可以一個或多個虛擬CPU,在各個操作系統(tǒng)之間,虛擬CPU的運行相互隔離,互不影響。
CPU虛擬化需要解決正確運行和調(diào)度兩個關(guān)鍵問題。虛擬CPU的正確運行是要保證虛擬機(jī)指令正確運行,即操作系統(tǒng)要在虛擬化環(huán)境中執(zhí)行特權(quán)指令功能,而且各個虛擬機(jī)之間不能相互影響。現(xiàn)有的實現(xiàn)技術(shù)包括模擬執(zhí)行和監(jiān)控執(zhí)行。調(diào)度問題是指VMM決定當(dāng)前哪個虛擬CPU在物理CPU上運行,要保證隔離性、公平性和性能。
(2)內(nèi)存虛擬化:內(nèi)存虛擬化技術(shù)把物理內(nèi)存統(tǒng)一管理,包裝成多個虛擬的物理內(nèi)存提供給若干虛擬機(jī)使用,每個虛擬機(jī)擁有各自**的內(nèi)存空間。內(nèi)存虛擬化是虛擬機(jī)管理器的主要功能之一。內(nèi)存虛擬化的思路主要是分塊共享,內(nèi)存共享的**思想的內(nèi)存頁面的寫時復(fù)制。虛擬機(jī)管理器完成并維護(hù)物理機(jī)內(nèi)存和虛擬機(jī)所用的內(nèi)存的映射關(guān)系。與真實的物理機(jī)相比,虛擬內(nèi)存的管理包括3種地址:機(jī)器地址、物理地址和虛擬地址。一般來說,虛擬機(jī)與虛擬機(jī)、虛擬機(jī)與虛擬機(jī)管理器之間的內(nèi)存要相互隔離。
(3)I/O虛擬化:I/O設(shè)備的異構(gòu)性和多樣性,導(dǎo)致I/O設(shè)備的虛擬化相較于 CPU和內(nèi)存的虛擬化要困難和復(fù)雜。I/O設(shè)備虛擬化技術(shù)把真是的設(shè)備統(tǒng)一 管理起來,包裝成多個虛擬設(shè)備給若干個虛擬機(jī)使用,響應(yīng)每個虛擬機(jī)的設(shè)備訪問請求和I/O請求。I/O設(shè)備虛擬化統(tǒng)一是由VMM進(jìn)行管理的,主要有全虛擬化、半虛擬化和軟件模擬三種思路。目前主流的設(shè)備與I/O虛擬化大多是通過軟件方式來實現(xiàn)的。