什么是虛擬化
維基百科關(guān)于虛擬化的定義是:“In computing,virtualization refers to the act of creating a virtual(rather than actual)version of something,including virtual computer hardware platforms,storage devices,and computer network resources?!保ㄔ谟嬎銠C(jī)領(lǐng)域,虛擬化指 創(chuàng)建某事物的虛擬(而非實際)版本,包括虛擬的計算機(jī)硬件平臺、存儲設(shè)備,以及計算 機(jī)網(wǎng)絡(luò)資源)可見,虛擬化是一種資源管理技術(shù),它將計算機(jī)的各種實體資源(CPU、內(nèi) 存、存儲、網(wǎng)絡(luò)等)予以抽象和轉(zhuǎn)化出來,并提供分割、重新組合,以達(dá)到最大化利用物 理資源的目的。
?
如圖所示的Virtual Machine Monitor(VMM,虛擬機(jī)監(jiān)控器,也稱為Hypervisor) 層,就是為了達(dá)到虛擬化而引入的一個軟件層。它向下掌控實際的物理資源(相當(dāng)于原本的操作系統(tǒng));向上呈現(xiàn)給虛擬機(jī)N份邏輯的資源。為了做到這一點,就需要將虛擬機(jī)對物理資源的訪問“偷梁換柱”——截取并重定向,讓虛擬機(jī)誤以為自己是在獨享物理資源。虛擬機(jī)監(jiān)控器運行的實際物理環(huán)境,稱為宿主機(jī);其上虛擬出來的邏輯主機(jī),稱為客戶機(jī)。
軟件虛擬化技術(shù)
軟件虛擬化,顧名思義,就是通過軟件模擬來實現(xiàn)VMM層,通過純軟件的環(huán)境來模 擬執(zhí)行客戶機(jī)里的指令。 最純粹的軟件虛擬化實現(xiàn)當(dāng)屬Q(mào)EMU。
硬件虛擬化技術(shù)
硬件虛擬化技術(shù)就是指計算機(jī)硬件本身提供能力讓客戶機(jī)指令獨立執(zhí)行,而不需要 (嚴(yán)格來說是不完全需要)VMM截獲重定向。
以x86架構(gòu)為例,它提供一個略微受限制的硬件運行環(huán)境供客戶機(jī)運行,在絕大多數(shù)情況下,客戶機(jī)在此受限環(huán)境中運行與原生系統(tǒng)在非虛擬化環(huán)境 中運行沒有什么兩樣,不需要像軟件虛擬化那樣每條指令都先翻譯再執(zhí)行,而VMM運行 在root mode,擁有完整的硬件訪問控制權(quán)限。僅僅在少數(shù)必要的時候,某些客戶機(jī)指令 的運行才需要被VMM截獲并做相應(yīng)處理,之后客戶機(jī)返回并繼續(xù)在non-root mode中運 行??梢韵胍姡布摂M化技術(shù)的性能接近于原生系統(tǒng),并且,極大地簡化了VMM的 軟件設(shè)計架構(gòu)。
Intel從2005年就開始在其x86 CPU中加入硬件虛擬化的支持——Intel Virtualization Technology,簡稱Intel VT。到目前為止,在所有的Intel CPU中,都可以看到Intel VT的身 影。并且,每一代新的CPU中,都會有新的關(guān)于硬件虛擬化支持、改進(jìn)的feature加入。也 因如此,Intel x86平臺是對虛擬化支持最為成熟的平臺
############################################################################### 最理想的虛擬化的兩個目標(biāo)如下:
1)客戶機(jī)完全不知道自己運行在虛擬化環(huán)境中,還以為自己運行在原生環(huán)境里。
2)完全不需要VMM介入客戶機(jī)的運行過程。 純軟件的虛擬化可以做到第一個目標(biāo),但性能不是很好,而且軟件設(shè)計的復(fù)雜度大大 增加。
半虛擬化
讓客戶機(jī)意識到自己是運行在虛擬化環(huán)境里,并做相應(yīng) 修改以配合VMM,這就是半虛擬化(Para-Virtualization)。
一方面,可以提升性能和簡 化VMM軟件復(fù)雜度;另一方面,也不需要太依賴硬件虛擬化的支持,從而使得其軟件設(shè) 計(至少是VMM這一側(cè))可以跨平臺且是優(yōu)雅的?!氨举|(zhì)上,準(zhǔn)虛擬化弱化了對虛擬機(jī)特 殊指令的被動截獲要求,將其轉(zhuǎn)化成客戶機(jī)操作系統(tǒng)的主動通知。但是,準(zhǔn)虛擬化需要修 改客戶機(jī)操作系統(tǒng)的源代碼來實現(xiàn)主動通知?!钡湫偷陌胩摂M化技術(shù)就是virtio,使用virtio 需要在宿主機(jī)/VMM和客戶機(jī)里都相應(yīng)地裝上驅(qū)動。
全虛擬化
與半虛擬化相反的,全虛擬化(Full Virtualization)堅持第一個理想化目標(biāo):客戶機(jī) 的操作系統(tǒng)完全不需要改動。敏感指令在操作系統(tǒng)和硬件之間被VMM捕捉處理,客戶操 作系統(tǒng)無須修改,所有軟件都能在虛擬機(jī)中運行。因此,全虛擬化需要模擬出完整的、和 物理平臺一模一樣的平臺給客戶機(jī),這在達(dá)到了第一個目標(biāo)的同時也增加了虛擬化層 (VMM)的復(fù)雜度。
性能上,2005年硬件虛擬化興起之前,軟件實現(xiàn)的全虛擬化完敗于VMM和客戶機(jī)操 作系統(tǒng)協(xié)同運作的半虛擬化,這種情況一直延續(xù)到2006年。之后以Intel VT-x、VT-d為 代表的硬件虛擬化技術(shù)的興起,讓由硬件虛擬化輔助的全虛擬化全面超過了半虛擬化。但 是,以virtio為代表的半虛擬化技術(shù)也一直在演進(jìn)發(fā)展,性能上只是略遜于全虛擬化,加 之其較少的平臺依賴性,依然受到廣泛的歡迎。文章來源:http://www.zghlxwxcb.cn/news/detail-401801.html
Type1和Type2虛擬化
從軟件框架的角度上,根據(jù)虛擬化層是直接位于硬件之上還是在一個宿主操作系統(tǒng)之 上,將虛擬化劃分為Typel和Type2<文章來源地址http://www.zghlxwxcb.cn/news/detail-401801.html
到了這里,關(guān)于什么是KVM虛擬化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!