當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]云計(jì)算時(shí)代,計(jì)算資源如同小馬哥當(dāng)年所言,已經(jīng)成為了互聯(lián)網(wǎng)上的水和電。 虛擬主機(jī)、web服務(wù)器、數(shù)據(jù)庫(kù)、對(duì)象存儲(chǔ)等等各種服務(wù)我們都可以通過(guò)各種各樣的云平臺(tái)來(lái)完成。 而在云計(jì)算欣欣向榮的背后,有一個(gè)重要的功臣,那就是虛擬化技術(shù)。可以毫不客氣的說(shuō),沒(méi)

云計(jì)算時(shí)代,計(jì)算資源如同小馬哥當(dāng)年所言,已經(jīng)成為了互聯(lián)網(wǎng)上的水和電。

ck;margin: 20px auto;object-fit: contain;box-shadow: rgb(132, 161, 168) 0px 10px 15px;" src="/images/21ic_nopic.gif" data-src="f9a7vxSYenUaseOuOWAs+/yIi/PDUDX4SxRLVqpL+Mxaril2WrikzBvV57nTMkufiYuffBny4UBBNpCsAj7UiJnUvcnHO7ufE58" class="delay_img" alt="懂了!VMware/KVM/Docker原來(lái)是這么回事兒" >

虛擬主機(jī)、web服務(wù)器、數(shù)據(jù)庫(kù)、對(duì)象存儲(chǔ)等等各種服務(wù)我們都可以通過(guò)各種各樣的云平臺(tái)來(lái)完成。

而在云計(jì)算欣欣向榮的背后,有一個(gè)重要的功臣,那就是虛擬化技術(shù)??梢院敛豢蜌獾恼f(shuō),沒(méi)有了虛擬化技術(shù),云計(jì)算無(wú)從談起。

說(shuō)起虛擬化你會(huì)想到什么?從我們常用的虛擬機(jī)三件套VMware、VirtualPC、VirutalBox到如今大火的KVM和容器技術(shù)Docker?

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

這些技術(shù)是什么關(guān)系,背后的技術(shù)原理是怎樣的,又有什么樣的區(qū)別,各自應(yīng)用的場(chǎng)景又是什么樣的?

看完這篇文章,相信大家都能回答上面問(wèn)題。

歷史背景

什么是虛擬化技術(shù)?

維基百科中的解釋是這樣的:

虛擬化(技術(shù))是一種資源管理技術(shù),是將計(jì)算機(jī)的各種實(shí)體資源(CPU、內(nèi)存、磁盤(pán)空間、網(wǎng)絡(luò)適配器等),予以抽象、轉(zhuǎn)換后呈現(xiàn)出來(lái)并可供分割、組合為一個(gè)或多個(gè)電腦配置環(huán)境。

對(duì)于一臺(tái)計(jì)算機(jī),我們可以簡(jiǎn)單的劃分為三層:從下到上依次是物理硬件層,操作系統(tǒng)層、應(yīng)用程序?qū)?/p>

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

1974年,兩位計(jì)算機(jī)科學(xué)家Gerald Popek 和 Robert Goldberg發(fā)表了一篇重要的論文《虛擬化第三代體系結(jié)構(gòu)的正式要求》,在這篇論文中提出了虛擬化的三個(gè)基本條件:

  • 等價(jià)性:程序在本地計(jì)算機(jī)執(zhí)行和在虛擬機(jī)中執(zhí)行應(yīng)該表現(xiàn)出一樣的結(jié)果(不包括執(zhí)行時(shí)間的差異)
  • 安全性:虛擬機(jī)彼此隔離,與宿主計(jì)算機(jī)隔離
  • 性能:絕大多數(shù)情況下虛擬機(jī)中的代碼指令應(yīng)該直接在物理CPU中執(zhí)行,少部分特殊指令可由VMM參與。

那如何實(shí)現(xiàn)對(duì)計(jì)算機(jī)底層的物理資源的虛擬化分割呢?在計(jì)算機(jī)技術(shù)的發(fā)展歷史上,出現(xiàn)了兩種著名的方案,分別是I型虛擬化和II型虛擬化

懂了!VMware/KVM/Docker原來(lái)是這么回事兒
I型虛擬化
懂了!VMware/KVM/Docker原來(lái)是這么回事兒
II型虛擬化

圖中的VMM意為Virtual Machine Monitor,虛擬機(jī)監(jiān)控程序,或者用另一個(gè)更專(zhuān)業(yè)的名詞:HyperVisor

從圖中可以清楚的看到兩種虛擬化方案的區(qū)別:

Type I: 直接凌駕于硬件之上,構(gòu)建出多個(gè)隔離的操作系統(tǒng)環(huán)境

Type II: 依賴于宿主操作系統(tǒng),在其上構(gòu)建出多個(gè)隔離的操作系統(tǒng)環(huán)境

我們熟知的VMware事實(shí)上有兩個(gè)產(chǎn)品線,一個(gè)是VMware ESXi,直接安裝在裸金屬之上,不需要額外的操作系統(tǒng),屬于第一類(lèi)虛擬化。另一個(gè)是我們普通用戶更加熟知的VMware WorkStation,屬于第二類(lèi)虛擬化。

如何實(shí)現(xiàn)上述的虛擬化方案呢?

一個(gè)典型的做法是——陷阱 & 模擬技術(shù)

什么意思?簡(jiǎn)單來(lái)說(shuō)就是正常情況下直接把虛擬機(jī)中的代碼指令放到物理的CPU上去執(zhí)行,一旦執(zhí)行到一些敏感指令,就觸發(fā)異常,控制流程交給VMM,由VMM來(lái)進(jìn)行對(duì)應(yīng)的處理,以此來(lái)營(yíng)造出一個(gè)虛擬的計(jì)算機(jī)環(huán)境。

不過(guò)這一經(jīng)典的虛擬化方案在Intel x86架構(gòu)上卻遇到了問(wèn)題。

全虛擬化:VMware 二進(jìn)制翻譯技術(shù)

不同于8086時(shí)代16位實(shí)地址工作模式,x86架構(gòu)進(jìn)入32位時(shí)代后,引入了保護(hù)模式、虛擬內(nèi)存等一系列新的技術(shù)。同時(shí)為了安全性隔離了應(yīng)用程序代碼和操作系統(tǒng)代碼,其實(shí)現(xiàn)方式依賴于x86處理器的工作狀態(tài)。

這就是眾所周知的x86處理器的Ring0-Ring3四個(gè)“環(huán)”。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

操作系統(tǒng)內(nèi)核代碼運(yùn)行在最高權(quán)限的Ring0狀態(tài),應(yīng)用程序工作于最外圍權(quán)限最低的Ring3狀態(tài),剩下的Ring1和Ring2主流的操作系統(tǒng)都基本上沒(méi)有使用。

這里所說(shuō)的權(quán)限,有兩個(gè)層面的約束:

  • 能訪問(wèn)的內(nèi)存空間
  • 能執(zhí)行的特權(quán)指令

來(lái)關(guān)注一下第二點(diǎn),特權(quán)指令。

CPU指令集中有一些特殊的指令,用于進(jìn)行硬件I/O通信、內(nèi)存管理、中斷管理等等功能,這一些指令只能在Ring0狀態(tài)下執(zhí)行,被稱(chēng)為特權(quán)指令。這些操作顯然是不能讓?xiě)?yīng)用程序隨便執(zhí)行的。處于Ring3工作狀態(tài)的應(yīng)用程序如果嘗試執(zhí)行這些指令,CPU將自動(dòng)檢測(cè)到并拋出異常。

回到我們的主題虛擬化技術(shù)上面來(lái),如同前面的定義所言,虛擬化是將計(jì)算資源進(jìn)行邏輯或物理層面的切割劃分,構(gòu)建出一個(gè)個(gè)獨(dú)立的執(zhí)行環(huán)境。

按照我們前面所說(shuō)的陷阱 & 模擬手段,可以讓虛擬機(jī)中包含操作系統(tǒng)在內(nèi)的程序統(tǒng)一運(yùn)行在低權(quán)限的Ring3狀態(tài)下,一旦虛擬機(jī)中的操作系統(tǒng)進(jìn)行內(nèi)存管理、I/O通信、中斷等操作時(shí),執(zhí)行特權(quán)指令,從而觸發(fā)異常,物理機(jī)將異常派遣給VMM,由VMM進(jìn)行對(duì)應(yīng)的模擬執(zhí)行。

這本來(lái)是一個(gè)實(shí)現(xiàn)虛擬化很理想的模式,不過(guò)x86架構(gòu)的CPU在這里遇到了一個(gè)跨不過(guò)去的坎。

到底是什么問(wèn)題呢?

回顧一下前面描繪的理想模式,要這種模式能夠?qū)崿F(xiàn)的前提是執(zhí)行敏感指令的時(shí)候能夠觸發(fā)異常,讓VMM有機(jī)會(huì)介入,去模擬一個(gè)虛擬的環(huán)境出來(lái)。

但現(xiàn)實(shí)是,x86架構(gòu)的CPU指令集中有那么一部分指令,它不是特權(quán)指令,Ring3狀態(tài)下也能夠執(zhí)行,但這些指令對(duì)于虛擬機(jī)來(lái)說(shuō)卻是敏感的,不能讓它們直接執(zhí)行。一旦執(zhí)行,沒(méi)法觸發(fā)異常,VMM也就無(wú)法介入,虛擬機(jī)就露餡兒了!

這結(jié)果將導(dǎo)致虛擬機(jī)中的代碼指令出現(xiàn)無(wú)法預(yù)知的錯(cuò)誤,更嚴(yán)重的是影響到真實(shí)物理計(jì)算機(jī)的運(yùn)行,虛擬化所謂的安全隔離、等價(jià)性也就無(wú)從談起。

怎么解決這個(gè)問(wèn)題,讓x86架構(gòu)CPU也能支持虛擬化呢?

VMware和QEMU走出了兩條不同的路。

VMware創(chuàng)造性的提出了一個(gè)二進(jìn)制翻譯技術(shù)。VMM在虛擬機(jī)操作系統(tǒng)和宿主計(jì)算機(jī)之間扮演一個(gè)橋梁的角色,將虛擬機(jī)中的要執(zhí)行的指令“翻譯”成恰當(dāng)?shù)闹噶钤谒拗魑锢碛?jì)算機(jī)上執(zhí)行,以此來(lái)模擬執(zhí)行虛擬機(jī)中的程序。你可以簡(jiǎn)單理解成Java虛擬機(jī)執(zhí)行Java字節(jié)碼的過(guò)程,不同的是Java虛擬機(jī)執(zhí)行的是字節(jié)碼,而VMM模擬執(zhí)行的就是CPU指令。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

另外值得一提的是,為了提高性能,也并非所有的指令都是模擬執(zhí)行的,VMware在這里做了不少的優(yōu)化,對(duì)一些“安全”的指令,就讓它直接執(zhí)行也未嘗不可。所以VMware的二進(jìn)制翻譯技術(shù)也融合了部分的直接執(zhí)行。

對(duì)于虛擬機(jī)中的操作系統(tǒng),VMM需要完整模擬底層的硬件設(shè)備,包括處理器、內(nèi)存、時(shí)鐘、I/O設(shè)備、中斷等等,換句話說(shuō),VMM用純軟件的形式“模擬”出一臺(tái)計(jì)算機(jī)供虛擬機(jī)中的操作系統(tǒng)使用。

這種完全模擬一臺(tái)計(jì)算機(jī)的技術(shù)也稱(chēng)為全虛擬化,這樣做的好處顯而易見(jiàn),虛擬機(jī)中的操作系統(tǒng)感知不到自己是在虛擬機(jī)中,代碼無(wú)需任何改動(dòng),直接可以安裝。而缺點(diǎn)也是可以想象:完全用軟件模擬,轉(zhuǎn)換翻譯執(zhí)行,性能堪憂!

而QEMU則是完全軟件層面的“模擬”,乍一看和VMware好像差不多,不過(guò)實(shí)際本質(zhì)是完全不同的。VMware是將原始CPU指令序列翻譯成經(jīng)過(guò)處理后的CPU指令序列來(lái)執(zhí)行。而QEMU則是完全模擬執(zhí)行整個(gè)CPU指令集,更像是“解釋執(zhí)行”,兩者的性能不可同日而語(yǔ)。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

半虛擬化:Xen 內(nèi)核定制修改

既然有全虛擬化,那與之相對(duì)的也就有半虛擬化,前面說(shuō)了,由于敏感指令的關(guān)系,全虛擬化的VMM需要捕獲到這些指令并完整模擬執(zhí)行這個(gè)過(guò)程,實(shí)現(xiàn)既滿足虛擬機(jī)操作系統(tǒng)的需要,又不至于影響到物理計(jì)算機(jī)。

但說(shuō)來(lái)簡(jiǎn)單,這個(gè)模擬過(guò)程實(shí)際上相當(dāng)?shù)膹?fù)雜,涉及到大量底層技術(shù),并且如此模擬費(fèi)時(shí)費(fèi)力。

而試想一下,如果把操作系統(tǒng)中所有執(zhí)行敏感指令的地方都改掉,改成一個(gè)接口調(diào)用(HyperCall),接口的提供方VMM實(shí)現(xiàn)對(duì)應(yīng)處理,省去了捕獲和模擬硬件流程等一大段工作,性能將獲得大幅度提升。

這就是半虛擬化,這項(xiàng)技術(shù)的代表就是Xen,一個(gè)誕生于2003年的開(kāi)源項(xiàng)目。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

這項(xiàng)技術(shù)一個(gè)最大的問(wèn)題是:需要修改操作系統(tǒng)源碼,做相應(yīng)的適配工作。這對(duì)于像Linux這樣的開(kāi)源軟件還能接受,充其量多了些工作量罷了。但對(duì)于Windows這樣閉源的商業(yè)操作系統(tǒng),修改它的代碼,無(wú)異于癡人說(shuō)夢(mèng)。

硬件輔助虛擬化 VT / AMD-v

折騰來(lái)折騰去,全都是因?yàn)閤86架構(gòu)的CPU天然不支持經(jīng)典虛擬化模式,軟件廠商不得不想出其他各種辦法來(lái)在x86上實(shí)現(xiàn)虛擬化。

如果進(jìn)一步講,CPU本身增加對(duì)虛擬化的支持,那又會(huì)是一番怎樣的情況呢?

在軟件廠商使出渾身解數(shù)來(lái)實(shí)現(xiàn)x86平臺(tái)的虛擬化后的不久,各家處理器廠商也看到了虛擬化技術(shù)的廣闊市場(chǎng),紛紛推出了硬件層面上的虛擬化支持,正式助推了虛擬化技術(shù)的迅猛發(fā)展。

這其中為代表的就是Intel的VT系列技術(shù)和AMD的AMD-v系列技術(shù)。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

硬件輔助虛擬化細(xì)節(jié)較為復(fù)雜,簡(jiǎn)單來(lái)說(shuō),新一代CPU在原先的Ring0-Ring3四種工作狀態(tài)之下,再引入了一個(gè)叫工作模式的概念,有VMX root operationVMX non-root operation兩種模式,每種模式都具有完整的Ring0-Ring3四種工作狀態(tài),前者是VMM運(yùn)行的模式,后者是虛擬機(jī)中的OS運(yùn)行的模式。

VMM運(yùn)行的層次,有些地方將其稱(chēng)為Ring -1,VMM可以通過(guò)CPU提供的編程接口,配置對(duì)哪些指令的劫持和捕獲,從而實(shí)現(xiàn)對(duì)虛擬機(jī)操作系統(tǒng)的掌控。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

換句話說(shuō),原先的VMM為了能夠掌控虛擬機(jī)中代碼的執(zhí)行,不得已采用“中間人”來(lái)進(jìn)行翻譯執(zhí)行,現(xiàn)在新的CPU告訴VMM:不用那么麻煩了,你提前告訴我你對(duì)哪些指令哪些事件感興趣,我在執(zhí)行這些指令和發(fā)生這些事件的時(shí)候就通知你,你就可以實(shí)現(xiàn)掌控了。完全由硬件層面提供支持,性能自然高了不少。

上面只是硬件輔助虛擬化技術(shù)的一個(gè)簡(jiǎn)單理解,實(shí)際上還包含更多的要素,提供了更多的便利給VMM,包括內(nèi)存的虛擬、I/O的虛擬等等,讓VMM的設(shè)計(jì)開(kāi)發(fā)工作大大的簡(jiǎn)化,VMM不再需要付出昂貴的模擬執(zhí)行成本,整體虛擬化的性能也有了大幅度的提升。

VMware從5.5版本開(kāi)始引入對(duì)硬件輔助虛擬化的支持,隨后在2011年的8.0版本中正式全面支持。于是乎,我們?cè)趧?chuàng)建虛擬機(jī)的時(shí)候,可以選擇要使用哪一種虛擬化引擎技術(shù),是用原先的二進(jìn)制翻譯執(zhí)行,還是基于硬件輔助虛擬化的新型技術(shù)。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

同一時(shí)期的XEN從3.0版本也加入對(duì)硬件輔助虛擬化的支持,從此基于XEN的虛擬機(jī)中也能夠運(yùn)行Windows系統(tǒng)了。

KVM-QEMU

有了硬件輔助虛擬化的加持,虛擬化技術(shù)開(kāi)始呈現(xiàn)井噴之勢(shì)。VirtualBox、Hyper-V、KVM等技術(shù)如雨后春筍般接連面世。這其中在云計(jì)算領(lǐng)域聲名鵲起的當(dāng)屬開(kāi)源的KVM技術(shù)了。

KVM全稱(chēng)for Kernel-based Virtual Machine,意為基于內(nèi)核的虛擬機(jī)。

在虛擬化底層技術(shù)上,KVM和VMware后續(xù)版本一樣,都是基于硬件輔助虛擬化實(shí)現(xiàn)。不同的是VMware作為獨(dú)立的第三方軟件可以安裝在Linux、Windows、MacOS等多種不同的操作系統(tǒng)之上,而KVM作為一項(xiàng)虛擬化技術(shù)已經(jīng)集成到Linux內(nèi)核之中,可以認(rèn)為L(zhǎng)inux內(nèi)核本身就是一個(gè)HyperVisor,這也是KVM名字的含義,因此該技術(shù)只能在Linux服務(wù)器上使用。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

KVM技術(shù)常常搭配QEMU一起使用,稱(chēng)為KVM-QEMU架構(gòu)。前面提到,在x86架構(gòu)CPU的硬件輔助虛擬化技術(shù)誕生之前,QEMU就已經(jīng)采用全套軟件模擬的辦法來(lái)實(shí)現(xiàn)虛擬化,只不過(guò)這種方案下的執(zhí)行性能非常低下。

KVM本身基于硬件輔助虛擬化,僅僅實(shí)現(xiàn)CPU和內(nèi)存的虛擬化,但一臺(tái)計(jì)算機(jī)不僅僅有CPU和內(nèi)存,還需要各種各樣的I/O設(shè)備,不過(guò)KVM不負(fù)責(zé)這些。這個(gè)時(shí)候,QEMU就和KVM搭上了線,經(jīng)過(guò)改造后的QEMU,負(fù)責(zé)外部設(shè)備的虛擬,KVM負(fù)責(zé)底層執(zhí)行引擎和內(nèi)存的虛擬,兩者彼此互補(bǔ),成為新一代云計(jì)算虛擬化方案的寵兒。

容器技術(shù)-LXC & Docker

前面談到的無(wú)論是基于翻譯和模擬的全虛擬化技術(shù)、半虛擬化技術(shù),還是有了CPU硬件加持下的全虛擬化技術(shù),其虛擬化的目標(biāo)都是一臺(tái)完整的計(jì)算機(jī),擁有底層的物理硬件、操作系統(tǒng)和應(yīng)用程序執(zhí)行的完整環(huán)境。

為了讓虛擬機(jī)中的程序?qū)崿F(xiàn)像在真實(shí)物理機(jī)器上運(yùn)行“近似”的效果,背后的HyperVisor做了大量的工作,付出了“沉重”的代價(jià)。

雖然HyperVisor做了這么多,但你有沒(méi)有問(wèn)過(guò)虛擬機(jī)中的程序,這是它想要的嗎?或許HyperVisor給的太多,而目標(biāo)程序卻說(shuō)了一句:你其實(shí)可以不用這樣辛苦。

確實(shí)存在這樣的情況,虛擬機(jī)中的程序說(shuō):我只是想要一個(gè)單獨(dú)的執(zhí)行執(zhí)行環(huán)境,不需要你費(fèi)那么大勁去虛擬出一個(gè)完整的計(jì)算機(jī)來(lái)。

這樣做的好處是什么?

虛擬出一臺(tái)計(jì)算機(jī)的成本高還是只虛擬出一個(gè)隔離的程序運(yùn)行環(huán)境的成本高?答案很明顯是前者。一臺(tái)物理機(jī)可能同時(shí)虛擬出10臺(tái)虛擬機(jī)就已經(jīng)開(kāi)始感到乏力了,但同時(shí)虛擬出100個(gè)虛擬的執(zhí)行環(huán)境卻還是能夠從容應(yīng)對(duì),這對(duì)于資源的充分利用可是有巨大的好處。

近幾年大火的容器技術(shù)正是在這樣的指導(dǎo)思想下誕生的。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

不同于虛擬化技術(shù)要完整虛擬化一臺(tái)計(jì)算機(jī),容器技術(shù)更像是操作系統(tǒng)層面的虛擬化,它只需要虛擬出一個(gè)操作系統(tǒng)環(huán)境。

LXC技術(shù)就是這種方案的一個(gè)典型代表,全稱(chēng)是LinuX Container,通過(guò)Linux內(nèi)核的Cgroups技術(shù)和namespace技術(shù)的支撐,隔離操作系統(tǒng)文件、網(wǎng)絡(luò)等資源,在原生操作系統(tǒng)上隔離出一個(gè)單獨(dú)的空間,將應(yīng)用程序置于其中運(yùn)行,這個(gè)空間的形態(tài)上類(lèi)似于一個(gè)容器將應(yīng)用程序包含在其中,故取名容器技術(shù)。

舉個(gè)不是太恰當(dāng)?shù)谋扔鳎惶自瓉?lái)是三居室的房子,被二房東拿來(lái)改造成三個(gè)一居室的套間,每個(gè)一居室套間里面都配備了衛(wèi)生間和廚房,對(duì)于住在里面的人來(lái)說(shuō)就是一套完整的住房。

如今各個(gè)大廠火爆的Docker技術(shù)底層原理與LXC并不本質(zhì)區(qū)別,甚至在早期Docker就是直接基于LXC的高層次封裝。Docker在LXC的基礎(chǔ)上更進(jìn)一步,將執(zhí)行執(zhí)行環(huán)境中的各個(gè)組件和依賴打包封裝成獨(dú)立的對(duì)象,更便于移植和部署。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

容器技術(shù)的好處是輕量,所有隔離空間的程序代碼指令不需要翻譯轉(zhuǎn)換,就可以直接在CPU上執(zhí)行,大家底層都是同一個(gè)操作系統(tǒng),通過(guò)軟件層面上的邏輯隔離形成一個(gè)個(gè)單獨(dú)的空間。

容器技術(shù)的缺點(diǎn)是安全性不如虛擬化技術(shù)高,畢竟軟件層面的隔離比起硬件層面的隔離要弱得多。隔離環(huán)境系統(tǒng)和外面的主機(jī)共用的是同一個(gè)操作系統(tǒng)內(nèi)核,一旦利用內(nèi)核漏洞發(fā)起攻擊,程序突破容器限制,實(shí)現(xiàn)逃逸,危及宿主計(jì)算機(jī),安全也就不復(fù)存在。

超輕虛擬化 firecracker

虛擬完整的計(jì)算機(jī)隔離性好但太過(guò)笨重,簡(jiǎn)單的容器技術(shù)又因?yàn)樘^(guò)輕量純粹靠軟件隔離不夠安全,有沒(méi)有一個(gè)折中的方案同時(shí)兼具兩者的優(yōu)點(diǎn),實(shí)現(xiàn)既輕量又安全呢?

近年來(lái),一種超輕虛擬化的思想開(kāi)始流行開(kāi)來(lái),亞馬遜推出的firecracker就是一個(gè)典型的代表。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

firecracker將虛擬化技術(shù)的強(qiáng)隔離性和容器技術(shù)的輕量性進(jìn)行融合,提出了一個(gè)microVM的概念,底層通過(guò)KVM虛擬化技術(shù)實(shí)現(xiàn)各個(gè)microVM的強(qiáng)隔離,而隔離的虛擬機(jī)中運(yùn)行的是一個(gè)個(gè)精簡(jiǎn)版的微型操作系統(tǒng),砍掉了大量無(wú)用的功能,專(zhuān)為容器設(shè)計(jì)的微型OS。

超輕虛擬化如今成為一個(gè)新的浪潮,除了AWS的firecracker,谷歌的gVisor, Intel主導(dǎo)的NEMU也在向這個(gè)領(lǐng)域開(kāi)始發(fā)力。

總結(jié)

本文簡(jiǎn)單介紹了虛擬化技術(shù)的基本概念和基本要求。隨后引出由于早期的x86架構(gòu)不支持經(jīng)典的虛擬化方案,各家軟件廠商只能通過(guò)軟件模擬的形式來(lái)實(shí)現(xiàn)虛擬化,其代表是早期的VMware WorkStation和Xen。

不過(guò)純粹依靠軟件的方式畢竟有性能的瓶頸,好在Intel和AMD及時(shí)推出了CPU硬件層面的虛擬化支持,軟件廠商迅速跟進(jìn)適配,極大的改善了虛擬化的性能體驗(yàn)。這一時(shí)期的代表有新版本的VMware WorkStation、Hyper-V、KVM等。

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

近年來(lái),隨著云計(jì)算和微服務(wù)的縱深發(fā)展,對(duì)虛擬化技術(shù)的虛擬粒度逐漸從粗到細(xì)。從最早的虛擬化完整的計(jì)算機(jī),到后來(lái)只需虛擬出一個(gè)操作系統(tǒng),再到后來(lái)虛擬出一個(gè)微服務(wù)需要的環(huán)境即可,以Docker為代表的容器技術(shù)在這個(gè)時(shí)期大放異彩。

技術(shù)的發(fā)展總是伴隨著市場(chǎng)的發(fā)展需要而不斷演進(jìn),虛擬化的未來(lái)是怎樣的,你有什么樣的看法呢,歡迎評(píng)論區(qū)留言交流。

特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒(méi)關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

長(zhǎng)按訂閱更多精彩▼

懂了!VMware/KVM/Docker原來(lái)是這么回事兒

如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

ckquote>
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉