轉(zhuǎn)載:https://blog.csdn.net/HzSunshine/article/details/70759343
一 虛擬化簡(jiǎn)介
虛擬化,是指通過(guò)虛擬化技術(shù)將一臺(tái)計(jì)算機(jī)虛擬為多臺(tái)邏輯計(jì)算機(jī)(對(duì)計(jì)算機(jī)物理資源的抽象,實(shí)現(xiàn)資源的模擬、隔離和共享)。在一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)邏輯計(jì)算機(jī),每個(gè)邏輯計(jì)算機(jī)可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率。
虛擬化使用軟件的方法重新定義劃分IT資源,可以實(shí)現(xiàn)IT資源的動(dòng)態(tài)分配、靈活調(diào)度、跨域共享,提高IT資源利用率,降低成本,加快部署,極大增強(qiáng)系統(tǒng)整體安全性和可靠性。使IT資源能夠真正成為社會(huì)基礎(chǔ)設(shè)施,服務(wù)于各行各業(yè)中靈活多變的應(yīng)用需求。
二 虛擬化和云計(jì)算的關(guān)系
虛擬化重點(diǎn)對(duì)資源的虛擬,比如把一臺(tái)大型的服務(wù)器虛擬成多臺(tái)小定的服務(wù)器。一個(gè)側(cè)重虛擬的這種技術(shù)。
云計(jì)算的重點(diǎn)是對(duì)資源池(可以是經(jīng)過(guò)虛擬化之后)進(jìn)行統(tǒng)一的管理和調(diào)度。一種側(cè)重對(duì)虛擬化之后的資源進(jìn)行管理和調(diào)度。
三 虛擬化架構(gòu)
1.寄居虛擬化架構(gòu)
寄居虛擬化架構(gòu)指在宿主操作系統(tǒng)之上安裝和運(yùn)行虛擬化程序,依賴于宿主操作系統(tǒng)對(duì)設(shè)備的支持和物理資源的管理。(類似 Vmware Workstation 的程序)
2.裸金屬虛擬化架構(gòu)
裸金屬虛擬化架構(gòu)指直接在硬件上面安裝虛擬化軟件,再在其上安裝操作系統(tǒng)和應(yīng)用,依賴虛擬層內(nèi)核和服務(wù)器控制臺(tái)進(jìn)行管理。
4.混合虛擬化架構(gòu)
混合虛擬化架構(gòu)將一個(gè)內(nèi)核級(jí)驅(qū)動(dòng)器插入到宿主操作系統(tǒng)內(nèi)核。這個(gè)驅(qū)動(dòng)器作為虛擬硬件管理器來(lái)協(xié)調(diào)虛擬機(jī)和宿主操作系統(tǒng)之間的硬件訪問(wèn)。
CPU虛擬化
內(nèi)存虛擬化
把物理機(jī)的真實(shí)物理內(nèi)存統(tǒng)一管理,包裝成多份虛擬的內(nèi)存給若干虛擬機(jī)使用。
IO虛擬化
- 存儲(chǔ)虛擬化的概念
- 存儲(chǔ)虛擬化是在存儲(chǔ)設(shè)備上加入一個(gè)邏輯層,通過(guò)邏輯層訪問(wèn)存儲(chǔ)資源
- 對(duì)管理員來(lái)說(shuō),可以很方便的調(diào)整存儲(chǔ)資源,提高存儲(chǔ)利用率
- 對(duì)終端用戶來(lái)說(shuō),集中的存儲(chǔ)設(shè)備可以提供更好的性能和易用性
- 存儲(chǔ)虛擬化的實(shí)現(xiàn)方式
- 裸設(shè)備+邏輯卷
- 存儲(chǔ)設(shè)備虛擬化
- 主機(jī)存儲(chǔ)虛擬化+文件系統(tǒng)
5.虛擬化類型
全虛擬化(Full Virtualization)
全虛擬化也成為原始虛擬化技術(shù),該模型使用虛擬機(jī)協(xié)調(diào)guest操作系統(tǒng)和原始硬件,Hypervisor(VMM)在guest操作系統(tǒng)和裸硬件之間用于工作協(xié)調(diào),VMM完整模擬硬件的方式提供所有全部接口,模擬特權(quán)指令,guset操作系統(tǒng)認(rèn)為自己還是直接處于原始硬件上,一些受保護(hù)指令必須由Hypervisor(虛擬機(jī)管理程序)來(lái)捕獲處理。(VirtualBox,KVM,VMware Workstation和VMware ESX)(騰訊云采用的是KVM)
全虛擬化模型
優(yōu)點(diǎn):Guest OS 無(wú)需修改,速度和功能非常不錯(cuò),使用簡(jiǎn)單。
缺點(diǎn):中間層Hypervisor需占用一定的資源。
半虛擬化(Para Virtualization)(準(zhǔn)虛擬化)
半虛擬化是另一種類似于全虛擬化的技術(shù),它使用Hypervisor分享存取底層的硬件,但是它的guest操作系統(tǒng)集成了虛擬化方面的代碼,guest OS能配合Hypervisor來(lái)協(xié)作實(shí)現(xiàn)虛擬化。(guest操作系統(tǒng)意識(shí)到自己是處于虛擬化環(huán)境)(Xen)(阿里云采用的是Xen)
半虛擬化模型
優(yōu)點(diǎn):與全虛擬化相比,架構(gòu)更精簡(jiǎn),整體速度會(huì)有一定優(yōu)勢(shì)。
缺點(diǎn):需要對(duì)Guest OS修改,所以用戶體驗(yàn)比較麻煩。
硬件輔助虛擬化(Hardware Assisted Virtualization)
Intel/AMD等硬件廠商通過(guò)對(duì)部分全虛擬化和半虛擬化使用到的軟件技術(shù)進(jìn)行硬件化來(lái)提高性能。硬件輔助虛擬化技術(shù)常用于優(yōu)化全虛擬化和半虛擬化產(chǎn)品,而不是獨(dú)創(chuàng)一派。(VMware Workstation,VirtualBox,KVM,VMware ESX和Xen)
優(yōu)點(diǎn):通過(guò)引入硬件技術(shù),使虛擬技術(shù)更接近物理機(jī)速度。
操作系統(tǒng)級(jí)虛擬化技術(shù)(Operating System Level Virtualization)
通過(guò)對(duì)服務(wù)器操作系統(tǒng)進(jìn)行簡(jiǎn)單地隔離來(lái)實(shí)現(xiàn)虛擬化,他們的特點(diǎn)是一個(gè)單一的節(jié)點(diǎn)運(yùn)行著唯一的操作系統(tǒng)實(shí)例。通過(guò)在這個(gè)系統(tǒng)上加裝虛擬化平臺(tái),可以將系統(tǒng)劃分成多個(gè)獨(dú)立隔離的容器,每個(gè)容器是一個(gè)虛擬的操作系統(tǒng),被稱為虛擬環(huán)境(即VE,VirtualEnvironment),也被稱為虛擬專用服務(wù)器(即VPS,Virtual Private Server)。
在操作系統(tǒng)虛擬化技術(shù)中,每個(gè)節(jié)點(diǎn)上只有唯一的系統(tǒng)內(nèi)核,不虛擬任何硬件設(shè)備。此外,多個(gè)虛擬環(huán)境以模板的方式共享一個(gè)文件系統(tǒng),性能得以大幅度提升。在生產(chǎn)環(huán)境中,一臺(tái)服務(wù)器可根據(jù)環(huán)境需要,運(yùn)行一個(gè)VE/VPS,或者運(yùn)行上百個(gè)VE/VPS。所以,操作系統(tǒng)虛擬化技術(shù)是面向生產(chǎn)環(huán)境、商業(yè)運(yùn)行環(huán)境的技術(shù)。
操作系統(tǒng)虛擬化模型
優(yōu)點(diǎn):對(duì)操作系統(tǒng)進(jìn)行直接修改,所以成本低而且性能不錯(cuò)。
缺點(diǎn):在資源隔離方面表現(xiàn)不佳。所有虛擬服務(wù)器必須運(yùn)行同一操作系統(tǒng)。
硬件分區(qū)技術(shù)如下圖所示:硬件資源被劃分成數(shù)個(gè)分區(qū),每個(gè)分區(qū)享有獨(dú)立的CPU、內(nèi)存,并安裝獨(dú)立的操作系統(tǒng)。在一臺(tái)服務(wù)器上,存在有多個(gè)系統(tǒng)實(shí)例,同時(shí)啟動(dòng)了多個(gè)操作系統(tǒng)。
硬件分區(qū)模型
優(yōu)點(diǎn):完全的電氣化隔離在不同的操作系統(tǒng)之間提供最大程度的保護(hù)。
缺點(diǎn):缺乏很好的靈活性,不能對(duì)資源做出有效調(diào)配。成本高,不易統(tǒng)一管理。
虛擬化還可分為服務(wù)器虛擬化,桌面虛擬化,應(yīng)用虛擬化
服務(wù)器虛擬化 (服務(wù)的是服務(wù)器型上層應(yīng)用)
數(shù)量少的情況推薦使用ESXI,XenServer
數(shù)量大的情況推薦使用KVM,RHEV(并不開(kāi)源),oVirt,Openstack,Vmvare vshpere
桌面虛擬化 (服務(wù)的是終端用戶)
桌面虛擬化依賴于服務(wù)器虛擬化,在數(shù)據(jù)中心的服務(wù)器上進(jìn)行服務(wù)器虛擬化,生成大量的獨(dú)立的桌面操作系統(tǒng)(虛擬機(jī)或者虛擬桌面),同時(shí)根據(jù)專有的虛擬桌面協(xié)議發(fā)送給終端設(shè)備。用戶終端通過(guò)以太網(wǎng)登陸到虛擬主機(jī)上,只需要記住用戶名和密碼及網(wǎng)關(guān)信息,即可隨時(shí)隨地的通過(guò)網(wǎng)絡(luò)訪問(wèn)自己的桌面系統(tǒng),從而實(shí)現(xiàn)單機(jī)多用戶。多用于IP外包,呼叫中心,銀行辦公、移動(dòng)桌面。
應(yīng)用虛擬化
技術(shù)原理是基于應(yīng)用/服務(wù)器計(jì)算A/S架構(gòu),采用類似虛擬終端的技術(shù),把應(yīng)用程序的人機(jī)交互邏輯(應(yīng)用程序界面、鍵盤及鼠標(biāo)的操作、音頻輸入輸出、讀卡器、打印輸出等)與計(jì)算邏輯隔離開(kāi)來(lái)。在用戶訪問(wèn)一個(gè)服務(wù)器虛擬化后的應(yīng)用時(shí),用戶計(jì)算機(jī)只需要把人機(jī)交互邏輯傳送到服務(wù)器端,服務(wù)器端為用戶開(kāi)設(shè)獨(dú)立的會(huì)話空間,應(yīng)用程序的計(jì)算邏輯在這個(gè)會(huì)話空間中運(yùn)行,把變化后的人機(jī)交互邏輯傳送給客戶端,并且在客戶端相應(yīng)設(shè)備展示出來(lái),從而使用戶獲得如同運(yùn)行本地應(yīng)用程序一樣的訪問(wèn)感受。
五 虛擬化常用幾種技術(shù)
KVM
KVM是集成到linux內(nèi)核的系統(tǒng)虛擬化模塊,使用linux自身調(diào)度器進(jìn)行管理,工作在X86架構(gòu)且需支持硬件輔助虛擬化技術(shù)(Intel VT和AMD-V)。使用全虛擬化技術(shù),采用混合虛擬化架構(gòu)。
KVM由兩部分組成:KVM模塊和QEMU。
QEMU是一套由Fabrice Bellard所編寫的模擬處理器的自由軟件。它與Bochs,PearPC近似,但其具有某些后兩者所不具備的特性,如高速度及跨平臺(tái)的特性。經(jīng)由kqemu這個(gè)開(kāi)源的加速器,QEMU能模擬至接近真實(shí)電腦的速度。
KVM是Linux kernel的一個(gè)模塊??梢杂妹頼odprobe去加載KVM模塊。加載了模塊后,才能進(jìn)一步通過(guò)其他工具創(chuàng)建虛擬機(jī)。但僅有KVM模塊是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)橛脩魺o(wú)法直接控制內(nèi)核模塊去做事情,你還必須有一個(gè)運(yùn)行在用戶空間的工具才行。這個(gè)用戶空間的工具,kvm開(kāi)發(fā)者選擇了已經(jīng)成型的開(kāi)源虛擬化軟件QEMU。它的特點(diǎn)是可虛擬不同的CPU。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用戶空間工具了。
Xen是第一類運(yùn)行再裸機(jī)上的虛擬化管理程序(Hypervisor)。它支持全虛擬化和半虛擬化,屬于裸金屬架構(gòu)。Xen支持hypervisor和虛擬機(jī)互相通訊。Xen最重要的優(yōu)勢(shì)在于半虛擬化,此外未經(jīng)修改的操作系統(tǒng)也可以直接在xen上運(yùn)行,能讓虛擬機(jī)有效運(yùn)行而不需要仿真,因此虛擬機(jī)能感知到hypervisor,而不需要模擬虛擬硬件,從而能實(shí)現(xiàn)高性能。
VMWare ESX或vSphere(升級(jí))
vSphere是完全虛擬化,屬于裸金屬架構(gòu)。獨(dú)立安裝和運(yùn)行在祼機(jī)上的系統(tǒng),因此與VMware Workstation軟件不同的是它不再依存于宿主操作系統(tǒng)之上。vSphere將應(yīng)用程序和操作系統(tǒng)從底層硬件分離出來(lái),從而簡(jiǎn)化了IT操作。用戶現(xiàn)有的應(yīng)用程序可以看到專有資源,而服務(wù)器則可以作為資源池進(jìn)行管理。因此,用戶的業(yè)務(wù)將在簡(jiǎn)化但恢復(fù)能力極強(qiáng)的IT環(huán)境中運(yùn)行。
Dcker
Docker內(nèi)部使用的是Linux容器技術(shù)(LXC),屬于操作系統(tǒng)輕量級(jí)的虛擬化。Docker定義了一套容器構(gòu)建(build)、分發(fā)(ship)和執(zhí)行(run)的標(biāo)準(zhǔn)化體系,開(kāi)創(chuàng)了容器云+端開(kāi)放平臺(tái)(Docker Hub + Docker Engine)的模式,極大地提高了開(kāi)發(fā)部署效率;從生態(tài)圈的角度看,Docker過(guò)去一年之所以開(kāi)始普及,主要是在云計(jì)算產(chǎn)業(yè)迅速發(fā)展的環(huán)境下,Docker作為虛擬化的補(bǔ)充甚至替代技術(shù)而被人們所關(guān)注。
Docker技術(shù)與虛擬化技術(shù)(傳統(tǒng))有何區(qū)別?
從虛擬化層面來(lái)看,傳統(tǒng)虛擬化技術(shù)是對(duì)硬件資源的虛擬,容器技術(shù)則是對(duì)進(jìn)程(操作系統(tǒng)內(nèi)核)的虛擬,從而可提供更輕量級(jí)的虛擬化,實(shí)現(xiàn)進(jìn)程和資源的隔離。(所有容器都必須使用同樣的操作系統(tǒng)和內(nèi)核)
從架構(gòu)來(lái)看,Docker比虛擬化少了兩層,取消了hypervisor層和GuestOS層,使用Docker Engine進(jìn)行調(diào)度和隔離,所有應(yīng)用共用主機(jī)操作系統(tǒng),因此在體量上,Docker較虛擬機(jī)更輕量級(jí),在性能上優(yōu)于虛擬化,接近裸機(jī)性能。(調(diào)優(yōu)的容器系統(tǒng),可以在同一硬件上擁有數(shù)量比使用Xen虛擬機(jī)或KVM虛擬機(jī)多出四到六倍的服務(wù)器應(yīng)用實(shí)例(Bottomley))從應(yīng)用場(chǎng)景來(lái)看,Docker和虛擬化則有各自擅長(zhǎng)的領(lǐng)域,在軟件開(kāi)發(fā)、測(cè)試場(chǎng)景和生產(chǎn)運(yùn)維場(chǎng)景中各有優(yōu)劣。
聯(lián)系客服