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