自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

漫談虛擬化之三-虛擬化類型

云計算 虛擬化
在虛擬化蓬勃發(fā)展的這些年里,虛擬化可以根據(jù)不同劃分標(biāo)準(zhǔn)進(jìn)行分類,包括全虛擬化,CPU 虛擬化,硬件虛擬化,服務(wù)器虛擬化,桌面虛擬化等等。我們通常所說的虛擬化主要是指平臺虛擬化技術(shù),通過使用 Hypervisor,隱藏特定計算平臺的實際物理特性,為用戶提供抽象的、統(tǒng)一的、模擬的計算環(huán)境(即虛擬機)。

 通過本系列前面兩篇分享了解了有關(guān)虛擬化的基本概念之后,咱們就來談?wù)勌摂M化的類型。

1. 虛擬化類型

在虛擬化蓬勃發(fā)展的這些年里,虛擬化可以根據(jù)不同劃分標(biāo)準(zhǔn)進(jìn)行分類,包括全虛擬化,CPU 虛擬化,硬件虛擬化,服務(wù)器虛擬化,桌面虛擬化等等。我們通常所說的虛擬化主要是指平臺虛擬化技術(shù),通過使用 Hypervisor,隱藏特定計算平臺的實際物理特性,為用戶提供抽象的、統(tǒng)一的、模擬的計算環(huán)境(即虛擬機)。

[[224181]]

這種分類并不是絕對的,一個優(yōu)秀的虛擬化軟件往往融合了多項技術(shù)。例如 VMware Workstation 是一個著名的全虛擬化的 VMM,但是它使用了一種被稱為動態(tài)二進(jìn)制翻譯的技術(shù)把對特權(quán)狀態(tài)的訪問轉(zhuǎn)換成對影子狀態(tài)的操作,從而避免了低效的 Trap-And-Emulate (陷入-模擬)的處理方式,這與半虛擬化相似,只不過半虛擬化是靜態(tài)地修改程序代碼。對于半虛擬化而言,如果能利用硬件特性,那么虛擬機的管理將會大大簡化,同時還能保持較高的性能。

下面分別介紹四類主流的分類方法:

1.1 從虛擬化的層次劃分,主要分為軟件輔助的虛擬化和硬件輔助的虛擬化。

(1)軟件輔助虛擬化:通過軟件的方法,讓客戶機的特權(quán)指令陷入異常,從而觸發(fā)宿主機進(jìn)行虛擬化。主要使用的技術(shù)就是優(yōu)先級壓縮和二進(jìn)制代碼翻譯。

(2)硬件輔助虛擬化:是指在 CPU 中加入新的指令集和處理器運行模式,完成虛擬化操作系統(tǒng)對硬件資源的的直接調(diào)用。典型技術(shù)指的是 Intel VT,AMD-V。

1.2 從虛擬平臺角度分為全虛擬化和半虛擬化。

(1)全虛擬化(Full Virtualization):全虛擬化是指虛擬機模擬了完整的底層硬件,包括處理器、物理內(nèi)存、時鐘、外設(shè)等,使得為原始硬件設(shè)計的操作系統(tǒng)或其它系統(tǒng)軟件完全不做任何修改就可以在虛擬機中運行。操作系統(tǒng)與真實硬件之間的交互可以看成是通過一個預(yù)先規(guī)定的硬件接口進(jìn)行的。全虛擬化 VMM 以完整模擬硬件的方式提供全部接口(同時還必須模擬特權(quán)指令的執(zhí)行過程)。

咱們舉例說明一下,在 x86 體系結(jié)構(gòu)中,對于操作系統(tǒng)切換進(jìn)程頁表的操作,真實硬件通過提供一個特權(quán) CR3 寄存器來實現(xiàn)該接口,操作系統(tǒng)只需執(zhí)行 "mov pgtable,%%cr3" 匯編指令即可。

全虛擬化 VMM 必須完整地模擬該接口執(zhí)行的全過程。如果硬件不提供虛擬化的特殊支持,那么這個模擬過程將會十分復(fù)雜一般而言,VMM 必須運行在最高優(yōu)先級來完全控制主機系統(tǒng),而 Guest OS 需要降級運行,從而不能執(zhí)行特權(quán)操作。當(dāng) Guest OS 執(zhí)行前面的特權(quán)匯編指令時,主機系統(tǒng)產(chǎn)生異常(General Protection Exception),執(zhí)行控制權(quán)重新從 Guest OS 轉(zhuǎn)到 VMM 手中。VMM 事先分配一個變量作為影子 CR3 寄存器給 Guest OS,將 pgtable 代表的客戶機物理地址(Guest Physical Address)填入影子 CR3 寄存器,然后 VMM 還需要 pgtable 翻譯成主機物理地址(Host Physical Address)并填入物理 CR3 寄存器,最后返回到 Guest OS中。隨后 VMM 還將處理復(fù)雜的 Guest OS 缺頁異常(Page Fault)。

全虛擬化不需要更改 Guest OS,兼容性好。典型的代表有 Vmware WorkStation,ESX Server 早期版本,Microsoft Virtrual Server。

(2)半虛擬化(Paravirtualization) :半虛擬化通過修改 Guest OS 部分訪問特權(quán)狀態(tài)的代碼以便直接與 VMM 直接交互。在半虛擬化虛擬機中,部分硬件接口以軟件的形式提供給客戶機操作系統(tǒng),這可以通過 Hypercall(VMM 提供給 Guest OS 的直接調(diào)用,與系統(tǒng)調(diào)用類似)的方式來提供,所以也被稱為超虛擬化。

例如,Guest OS 把切換頁表的代碼修改為調(diào)用 Hypercall 來直接完成修改影子 CR3 寄存器和翻譯地址的工作。

依靠這些指令可以直接通過 Hypervisor 層調(diào)用硬件資源,從而免除了 Hypervisor 層轉(zhuǎn)換指令的開銷,由于不需要產(chǎn)生額外的異常和模擬部分硬件執(zhí)行流程,半虛擬化可以大幅度提高性能,半虛擬化的典型代表有 Microsoft Hyper-V,Vmware 的 vSphere。

(3)硬件輔助虛擬化(Hardware-Assisted Virtualization) :指借助硬件(主要是主機處理器)的支持來實現(xiàn)高效的全虛擬化。例如有了 Intel-VT 技術(shù)的支持,Guest OS 和 VMM 的執(zhí)行環(huán)境自動地完全隔離開來,Guest OS 有自己的“全套寄存器”,可以直接運行在最高級別。因此在上面的例子中,Guest OS 能夠執(zhí)行修改頁表的匯編指令。Intel-VT 和 AMD-V 是目前 x86 體系結(jié)構(gòu)上可用的兩種硬件輔助虛擬化技術(shù)。

1.3 從虛擬化 VMM 的實現(xiàn)結(jié)構(gòu)來看,可以分為裸金屬虛擬化,宿主型虛擬化和混合虛擬化,接下來咱們分別詳細(xì)介紹一下。

(1)裸金屬型虛擬化(也叫 Hypervisor 虛擬化、裸機或 I 型):指直接在底層硬件上安裝VMM 作為 Hypervisor 接管,Hypervisor 將負(fù)責(zé)管理所有的資源和虛擬環(huán)境支持。

該模型中,VMM 可以看作一個為虛擬化而生的完整的操作系統(tǒng),掌控有所有資源(CPU,內(nèi)存,I/O 設(shè)備)。VMM 承擔(dān)管理資源的重任,其還需向上提供 VM 用于運行 Guest OS,因此 VMM 還負(fù)責(zé)虛擬環(huán)境的創(chuàng)建和管理。

它主要實現(xiàn)兩個基本功能,其一是識別、捕獲和響應(yīng)虛擬機所發(fā)出的 CPU 特權(quán)指令或保護(hù)指令;其二是負(fù)責(zé)處理虛擬機隊列和調(diào)度,并將物理硬件的處理結(jié)果返回給相應(yīng)的虛擬機。這種結(jié)構(gòu)問題是,硬件設(shè)備多種多樣,VMM 不能把所有的設(shè)備驅(qū)動都一一實現(xiàn),所以此模型支持有限的設(shè)備。如下圖所示:

優(yōu)點:因 VMM 同時具有物理資源的管理功能和虛擬化功能,故虛擬化的效率會較高;安全性方面,VM 的安全只依賴于 VMM 的安全。

缺點:因 VMM 完全擁有物理資源,因此,VMM 需要進(jìn)行物理資源的管理,包括設(shè)備的驅(qū)動,而設(shè)備驅(qū)動的開發(fā)工作量是很大的,這對 VMM 是個很大的挑戰(zhàn)。

采用該結(jié)構(gòu)的 VMM 有:VMWare ESX Server,  WindRiver Hypervisor,  KVM(后期)。

(2)宿主模型虛擬化(OS-hosted,也叫寄居虛擬化或 II 型):此模型的物理資源由 Host OS(例如 Windows, Linux etc.)管理,實際的虛擬化功能由 VMM 提供,其通常是 Host OS 的獨立內(nèi)核模塊(有的實現(xiàn)還含用戶進(jìn)程,如負(fù)責(zé) I/O 虛擬化的用戶態(tài)設(shè)備模型)。VMM 通過調(diào)用 Host OS 的服務(wù)來獲得資源,實現(xiàn) CPU,內(nèi)存和 I/O 設(shè)備的虛擬化。VMM 創(chuàng)建出 VM 后,通常將 VM 作為 Host OS 的一個進(jìn)程參與調(diào)度。如下圖所示:

如上圖所示,VMM 模塊負(fù)責(zé) CPU 和內(nèi)存虛擬化,由 ULM 請求 Host OS 設(shè)備驅(qū)動,實現(xiàn) I/O 設(shè)備的虛擬化。

優(yōu)點:可以充分利用現(xiàn)有 OS 的設(shè)備驅(qū)動,VMM 無需自己實現(xiàn)大量的設(shè)備驅(qū)動,輕松實現(xiàn) I/O 設(shè)備的虛擬化。

缺點:因資源受 Host OS 控制,VMM 需調(diào)用 Host OS 的服務(wù)來獲取資源進(jìn)行虛擬化,其效率和功能會受到一定影響。

采用該結(jié)構(gòu)的 VMM 有:VMware Workstation,VMWare Server (GSX),Virtual PC,Virtual Server,KVM(早期)。

(3)混合模型虛擬化(Hybrid,也叫操作系統(tǒng)虛擬化或容器型):就是以上兩種模型的混合,這種模型沒有獨立的 Hypervisor 層。相反,主機操作系統(tǒng)本身就負(fù)責(zé)在多個虛擬服務(wù)器之間分配硬件資源,并且讓這些服務(wù)器彼此獨立。

如果使用操作系統(tǒng)層虛擬化,所有虛擬服務(wù)器必須運行同一操作系統(tǒng)(不過每個實例有各自的應(yīng)用程序和用戶賬戶),虛擬機運行在傳統(tǒng)操作系統(tǒng)上,創(chuàng)建一個獨立的虛擬化實例,指向底層托管操作系統(tǒng),VMM 直接管理硬件,但是會讓出一定的設(shè)備的控制權(quán),交給運行在特權(quán)上的虛擬機來管理。VMM 只負(fù)責(zé) CPU 和內(nèi)存的虛擬化,I/O 設(shè)備的虛擬化由 VMM 和特權(quán) OS 共同完成。

優(yōu)點:可利用現(xiàn)有 OS 的 I/O 設(shè)備驅(qū)動;VMM 直接控制 CPU 和內(nèi)存等物理資源,虛擬化效率較高;若對特權(quán) OS 的權(quán)限控制得當(dāng),虛擬機的安全性只依賴于 VMM。

缺點:因特權(quán) OS 運行于 VM 上,當(dāng)需要特權(quán) OS 提供服務(wù)時,VMM 需要切換到特權(quán) OS,這里面就產(chǎn)生上下文切換的開銷和性能降低。

采用該結(jié)構(gòu)的 VMM 有:Xen,SUN Logical Domain。

1.4 從虛擬化在云計算的應(yīng)用領(lǐng)域進(jìn)行劃分,可分為服務(wù)器虛擬化(即計算虛擬化),網(wǎng)絡(luò)虛擬化,存儲虛擬化,應(yīng)用程序虛擬化,平臺虛擬化,桌面虛擬化。

(1)服務(wù)器虛擬化:就是將一臺服務(wù)器虛擬成多臺服務(wù)器進(jìn)行使用,服務(wù)器虛擬化是基礎(chǔ)架構(gòu)即服務(wù)(IaaS)的基礎(chǔ)。

(2)網(wǎng)絡(luò)虛擬化:籠統(tǒng)來講,包括 VLAN、VPN、VPLS、MPLS、LISP、Virtual routers、VRFs 等在內(nèi)的都可以認(rèn)為是網(wǎng)絡(luò)虛擬化的某種表現(xiàn)形式。但當(dāng)前新興的網(wǎng)絡(luò)虛擬化概念從深度、廣度和影響上都遠(yuǎn)遠(yuǎn)超過了以上的技術(shù)。網(wǎng)絡(luò)虛擬化簡單說就是把網(wǎng)絡(luò)層的一些功能從硬件中剝離出來,新建立所謂的網(wǎng)絡(luò)虛擬層。

(3)存儲虛擬化:簡單來說就是將整個云系統(tǒng)的存儲資源進(jìn)行統(tǒng)一整合管理,再為不同用戶分配各自的存儲空間。

(4)應(yīng)用程序虛擬化:簡單來說就是把應(yīng)用程序?qū)Φ讓佑布到y(tǒng)和硬件的依賴抽象出來,從而解除應(yīng)用程序與 OS 和硬件的耦合關(guān)系。應(yīng)用程序運行在本地應(yīng)用的虛擬化環(huán)境中,這個環(huán)境為應(yīng)用程序屏蔽了底層可能和其他應(yīng)用產(chǎn)生沖突的內(nèi)容。應(yīng)用程序虛擬化是(SaaS)的基礎(chǔ)。

(5)平臺虛擬化:是集成各種開發(fā)資源虛擬出的一個面向開發(fā)人員的統(tǒng)一接口,軟件開發(fā)人員可以方便的在這個平臺上開發(fā)各種應(yīng)用并嵌入云計算中,使其成為新的云服務(wù)供給用戶使用。

(6)桌面虛擬化:將用戶的桌面環(huán)境與其使用的終端設(shè)備進(jìn)行解耦。服務(wù)器上的存放每個人的完整桌面環(huán)境。用戶可以使用具有足夠處理功能和顯示功能的不同終端設(shè)備通過網(wǎng)絡(luò)訪問該桌面。

今天咱們就聊到這里,各位小伙先吸收吸收,后面接著聊計算虛擬化中的 CPU 虛擬化、內(nèi)存虛擬化、I/O 虛擬化以及其他擴(kuò)展內(nèi)容,也請各位小伙伴繼續(xù)關(guān)注!

責(zé)任編輯:武曉燕 來源: 聽泉Rit
相關(guān)推薦

2018-03-08 16:04:19

2018-04-17 15:03:40

CPU虛擬化半虛擬化

2018-05-08 15:16:59

內(nèi)存虛擬化處理器

2018-03-21 11:00:45

2019-06-19 15:35:16

云計算虛擬化容器化

2019-06-18 16:47:16

云計算虛擬化容器化

2013-12-11 10:40:31

虛擬化實戰(zhàn)Cluster

2013-06-08 11:10:36

虛擬化虛擬化存儲

2013-05-28 09:33:47

虛擬化虛擬化存儲

2017-11-29 14:57:47

虛擬化內(nèi)核IO

2016-09-09 14:42:27

云計算華為開發(fā)者社區(qū)

2012-07-06 09:39:37

虛擬化

2009-03-06 18:15:49

桌面虛擬化虛擬化網(wǎng)絡(luò)

2013-07-19 11:39:32

虛擬化

2020-03-10 18:30:06

GPU虛擬化FPGA

2015-09-22 10:14:57

虛擬化虛擬化問題

2009-03-04 16:48:07

桌面 虛擬化

2023-09-19 10:00:34

Linux虛擬

2009-01-12 12:23:25

服務(wù)器虛擬化OVF

2013-03-18 10:12:25

存儲虛擬化虛擬化技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號