一、虛擬化
1.什么是虛擬化
??一種計(jì)算機(jī)資源管理技術(shù),將各種IT資源抽象、轉(zhuǎn)換成平一種形式的技術(shù)都是虛擬化技術(shù)。
2.作用
??通過(guò)該技術(shù)將一臺(tái)計(jì)算機(jī)虛擬為多臺(tái)邏輯計(jì)算機(jī)。在一臺(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ī)的工作效率。
3.云計(jì)算與虛擬化的關(guān)系
??從行業(yè)數(shù)據(jù)相互關(guān)聯(lián)的角度看,云計(jì)算是非常依賴虛擬化的。但云計(jì)算并非虛擬化,虛擬化也并非云計(jì)算。虛擬化只是云計(jì)算的核心技術(shù),但并非云計(jì)算的核心關(guān)注點(diǎn)。云計(jì)算可以說(shuō)是一種服務(wù),虛擬化則是一種技術(shù)基礎(chǔ)。一個(gè)服務(wù)有了技術(shù)支持才能進(jìn)行服務(wù)。
4.虛擬化中的幾個(gè)概念
(1)Guest OS:運(yùn)行在虛擬機(jī)上的操作系統(tǒng)。
(2)Guest Machine:虛擬出來(lái)的虛擬機(jī)。
(3)VMM:虛擬監(jiān)視器,即虛擬化層。
(4)Host OS:運(yùn)行在物理機(jī)上的操作系統(tǒng)。
(5)Host Machine:物理機(jī)。
5.虛擬化特點(diǎn)
(1)分區(qū):分區(qū)可以在一臺(tái)服務(wù)器上運(yùn)行多臺(tái)虛擬機(jī),使一臺(tái)服務(wù)器運(yùn)行多個(gè)應(yīng)用程序。
(2)隔離:隔離指的是將分區(qū)完成后的所有虛擬機(jī)之間相互隔離,每個(gè)虛擬機(jī)像單獨(dú)的物理主機(jī)。
(3)封裝:整個(gè)虛擬機(jī)運(yùn)行條件封裝在獨(dú)立文件夾中,以文件形式進(jìn)行虛擬機(jī)的封裝,可以通過(guò)移動(dòng)文件的方式來(lái)遷移虛擬機(jī)。
(4)軟硬件解耦:即相對(duì)于硬件硬件獨(dú)立,虛擬機(jī)運(yùn)行在虛擬化層之上,不必考慮物理服務(wù)器即可在任何服務(wù)器上運(yùn)行。
二、虛擬化類型
1.寄居虛擬化
(1)什么是寄居虛擬化:在主機(jī)(宿主)操作系統(tǒng)上安裝和運(yùn)行虛擬化程序。
(2)特點(diǎn)
??①操作簡(jiǎn)單、易于實(shí)現(xiàn)。
??②安裝和運(yùn)行應(yīng)用程序依賴于主機(jī)操作系統(tǒng)對(duì)設(shè)備的支持。
??③有兩層操作系統(tǒng),管理開(kāi)銷較大,性能損耗大。
??④虛擬機(jī)對(duì)各種物理設(shè)備(CPU、內(nèi)存、硬盤等)的調(diào)用,都是通過(guò)虛擬化層和宿主機(jī)的操作系統(tǒng)一起協(xié)調(diào)才能完成的。
(3)VMware Workstation和VirtualBox都是基于這種方式實(shí)現(xiàn)的。
2.裸金屬虛擬化
(1)什么是裸金屬虛擬化:直接將虛擬化層VMM直接安裝在硬件設(shè)備上,虛擬化層VMM在這種模式下又叫做Hypervisor,虛擬機(jī)有指令要執(zhí)行時(shí),Hypervisor會(huì)接管該指令,模擬相應(yīng)的操作。
(2)特點(diǎn)
??①不依賴于操作系統(tǒng)。
??②支持多種操作系統(tǒng),多重應(yīng)用。
??③依賴虛擬層內(nèi)核和服務(wù)器控制臺(tái)進(jìn)行管理。
??④需要對(duì)虛擬層的內(nèi)核進(jìn)行開(kāi)發(fā)。
(3)應(yīng)用:VMware EXS、Xen、華為FusionSphere。
3.混合虛擬化
(1)什么是混合虛擬化:在一個(gè)現(xiàn)有的正常操作系統(tǒng)下安裝一個(gè)內(nèi)核模塊,內(nèi)核擁有虛擬化能力。(相當(dāng)于寄居虛擬化與裸金屬虛擬化的混合)
(2)特點(diǎn)
??①相對(duì)于寄居虛擬化架構(gòu),性能高。
??②相對(duì)于裸金屬虛擬化架構(gòu),不需要開(kāi)發(fā)內(nèi)核。
??③可支持多種操作系統(tǒng)。
??④需要底層硬件支持虛擬化擴(kuò)展功能。
(3)應(yīng)用:Redhat KVM
三、虛擬化層架構(gòu)
??全虛擬化(如KVM)、半虛擬化(如Xen)、硬件輔助虛擬化(如Intel-VTX)。
(1)全虛擬化
??即所抽象的VM具有完全的物理特性,虛擬化層負(fù)責(zé)捕獲CPU指令,為指令訪問(wèn)硬件充當(dāng)媒介。如,VMware、Virtualbox、Virtualbox、Virtual PC、KVM-x86等。其特點(diǎn)是:Guest OS(操作系統(tǒng)內(nèi)核)無(wú)需修改;速度和功能都非常不錯(cuò);使用簡(jiǎn)單;移植性好;效率不高。KVM是一個(gè)基于Linux內(nèi)核的虛擬化技術(shù),可以直接將Linux內(nèi)核轉(zhuǎn)換成Hypervisor。從而使得Linux內(nèi)核能夠直接管理虛擬機(jī),直接調(diào)用Linux內(nèi)核中的內(nèi)存管理、進(jìn)程管理子系統(tǒng)來(lái)管理虛擬機(jī)。KVM由處于內(nèi)核態(tài)的KVM和用戶態(tài)的QEMU兩部分組成。虛擬機(jī)中的進(jìn)程只是進(jìn)程中的一個(gè)線程。KVM訪問(wèn)路徑短,無(wú)性能損耗。
(2)半虛擬化
??起初是為了解決全虛擬化效率不高的困難,它需要修改操作系統(tǒng)OS,工作系統(tǒng)相對(duì)于全虛擬化要高很多。Hypervisor直接安裝在物理機(jī)上,多個(gè)虛擬機(jī)在Hypervisor上運(yùn)行。Hypervisor實(shí)現(xiàn)方式一般是一個(gè)特殊定制的Linux 系統(tǒng)。典型的有:Xen、VMWare ESXi、微軟Hyper-V。其特點(diǎn)是:架構(gòu)更精簡(jiǎn);在整體速度上具有一定優(yōu)勢(shì);需要對(duì)OS進(jìn)行修改,在用戶體驗(yàn)方面比較麻煩。Xen直接把操作系統(tǒng)內(nèi)核改了,把操作系統(tǒng)改成了一個(gè)輕量級(jí)Hpervisor在里面運(yùn)行了一個(gè)管理所有資源作資源調(diào)度的Domain0。Xen由Xen Hypervisor(虛擬化層)、Domin0(管理主機(jī))、Domin U(用戶虛擬機(jī))組成,支持全虛擬化和半虛擬化,安全性高。
(3)硬件輔助虛擬化
??隨著虛擬化技術(shù)的應(yīng)用越來(lái)越廣泛,Intel、AMD等硬件廠商通過(guò)對(duì)硬件的改造來(lái)支持虛擬化技術(shù),這就是硬件輔助虛擬化。常用于優(yōu)化全虛擬化和半虛擬化產(chǎn)品,像VMware Workstation,它雖然屬于全虛擬化,但在6.0版本中引入了硬件輔助虛擬化技術(shù),比如Intel的VT-x和AMD的AMD-V。主流全虛擬化和半虛擬化產(chǎn)品都支持硬件輔助虛擬化。
四、容器
1.什么是容器
??包裝或者裝載物品的貯存器,利用一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以將他們的應(yīng)用以及依賴包打包到一個(gè)可移植的景象中,然后發(fā)布到任何一個(gè)Linux或Windows機(jī)器上,也可以實(shí)現(xiàn)虛擬化。實(shí)現(xiàn)APP和操作系統(tǒng)的解耦。
2.什么是鏡像
??鏡像是可執(zhí)行的獨(dú)立軟件包,包含軟件運(yùn)行的內(nèi)容(代碼、運(yùn)行時(shí)的環(huán)境、系統(tǒng)工具、系統(tǒng)庫(kù)和設(shè)置)。容器就是將操作系統(tǒng)上層的應(yīng)用進(jìn)行了隔離。
3.主流容器技術(shù)——Docker
(1)定義
??Docker屬于Linux容器的一種封裝,提供簡(jiǎn)單易用的容器使用接口,它是目前最流行的Linux容器解決方案。
(2)作用
??將應(yīng)用程序與該程序的依賴,打包在一個(gè)文件里。運(yùn)行這個(gè)文件,就會(huì)生成一個(gè)虛擬容器。程序在這個(gè)虛擬容器里運(yùn)行,就好像在真實(shí)的物理機(jī)上運(yùn)行一樣。有了Docker,就不用擔(dān)心環(huán)境問(wèn)題了。
(3)核心
??實(shí)現(xiàn)應(yīng)用與運(yùn)行環(huán)境整體打包以及打包格式統(tǒng)一。
4.容器的組成(以Docker為例)
(1)客戶端:使用容器的用戶用來(lái)進(jìn)行交流管理的圖形化界面。
(2)守護(hù)進(jìn)程:用來(lái)接收客戶端的消息,Docker的客戶端給用戶提供一些可執(zhí)行的命令,這些命令通過(guò)守護(hù)進(jìn)程進(jìn)行交互實(shí)現(xiàn)。
(3)鏡像:用來(lái)創(chuàng)建Docker的容器,一個(gè)鏡像可以創(chuàng)建多個(gè)容器,開(kāi)發(fā)者可以將這些應(yīng)用程序和配置的依賴包打包進(jìn)行交互,進(jìn)行運(yùn)行,這些運(yùn)行環(huán)境打包的文件就是一個(gè)鏡像。
(4)容器:容器是鏡像運(yùn)行的實(shí)例,也就是說(shuō)鏡像在外的體現(xiàn)就是容器。
(5)倉(cāng)庫(kù):用來(lái)存放鏡像文件。
5.容器的特點(diǎn)
(1)用戶需要高效運(yùn)行環(huán)境,而非整個(gè)機(jī)器。
(2)一次構(gòu)建、到處運(yùn)行。
(3)部署方便(創(chuàng)建的速度快)。
(4)隔離性好。
(5)成本低。
??容器本質(zhì)上是一款輕量級(jí)虛擬化技術(shù)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-813314.html
6.容器和虛擬化的區(qū)別
虛擬化 | 容器 |
---|---|
隔離性強(qiáng),有獨(dú)立的客戶操作系統(tǒng) (Guest OS) | 共享內(nèi)核和操作系統(tǒng),隔離性弱 |
虛擬化性能差(>15%) | 計(jì)算/存儲(chǔ)無(wú)損耗,無(wú)客戶操作系統(tǒng)內(nèi)存開(kāi)銷(~200M) |
虛擬機(jī)鏡像龐大(十幾G~幾十G),且實(shí)例化時(shí)不能共享 | Docker容器鏡像200M~300M,且公共基礎(chǔ)鏡像實(shí)例化時(shí)可以共享 |
虛擬機(jī)鏡像缺乏統(tǒng)一標(biāo)準(zhǔn) | Docker提供了容器應(yīng)用鏡像的事實(shí)標(biāo)準(zhǔn),OCI推動(dòng)進(jìn)一步標(biāo)準(zhǔn)化 |
虛擬機(jī)創(chuàng)建慢(>2min) | 秒級(jí)創(chuàng)建(<10s)相當(dāng)于建立索引 |
虛擬機(jī)啟動(dòng)慢(>30s)讀文件逐個(gè)加載 | 秒級(jí)(<1s,不含應(yīng)用本身啟動(dòng)) |
資源虛擬化粒度低,單機(jī)10~100虛擬機(jī) | 單機(jī)支持1000+容器,密度很高,適合大規(guī)模的部署 |
7.Docker容器的主要用途
(1)提供一次性的環(huán)境。比如,本地測(cè)試他人的軟件、持續(xù)集成的時(shí)候提供單元測(cè)試和構(gòu)建的環(huán)境。
(2)提供彈性的云服務(wù)。因?yàn)镈ocker容器可以隨開(kāi)隨關(guān),很適合動(dòng)態(tài)擴(kuò)容和縮容。
(3)組建微服務(wù)架構(gòu)。通過(guò)多個(gè)容器,一臺(tái)機(jī)器可以跑多個(gè)服務(wù),因此在本機(jī)就可以模擬出微服務(wù)架構(gòu)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-813314.html
到了這里,關(guān)于云計(jì)算學(xué)習(xí)筆記——第二章 虛擬化與容器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!