容器技術(shù)和虛擬機(jī)將會處于一個長期共存的狀態(tài)。容器技術(shù)的技術(shù)出發(fā)點(diǎn)雖然更加輕量級,部署運(yùn)行快速,但其共用了底層的kernel,因此與虛擬機(jī)方式在資源隔離性方面有先天的劣勢,將暫時無法取代虛擬機(jī)模式。雖然每一個虛擬機(jī)都是一個完整的操作系統(tǒng),卻因?yàn)樾枰o其分配物理資源,當(dāng)虛擬機(jī)數(shù)量增多時,操作系統(tǒng)本身消耗的資源勢必增多。
所以容器可以和虛擬機(jī)結(jié)合在一起使用,而且這也是目前主流的做法:
虛擬化技術(shù)出現(xiàn)以后,虛擬化技術(shù)會在本地操作系統(tǒng)之上加多一層 Hypervisor層,Hypervisor是一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間軟件層,可以虛擬化硬件資源,例如cpu、硬盤、內(nèi)存資源等。然后我們可以基于通過虛擬化出來的資源之上安裝操作系統(tǒng),這也就是所謂的虛擬機(jī)。
通過Hypervisor層,我們可以創(chuàng)建不同的虛擬機(jī),并且可以限定每個虛擬機(jī)的物理資源,并且每個虛擬機(jī)都是分離、獨(dú)立的。例如A虛擬機(jī)給它使用2個cpu、8g內(nèi)存、100g磁盤,B虛擬機(jī)給它使用4個cpu、16g內(nèi)存、300g磁盤。。。等等,這樣就可以實(shí)現(xiàn)物理資源利用率的大化。
如此一來:
一臺物理機(jī)就可以部署多個應(yīng)用,每個應(yīng)用都可以獨(dú)立運(yùn)行在一個虛擬機(jī)里。
虛擬化技術(shù)
有了上面的理念,就可以重新認(rèn)識我們熟知的虛擬化技術(shù):
虛擬機(jī):存在于硬件層和操作系統(tǒng)層間的虛擬化技術(shù)。
虛擬機(jī)通過“偽造”一個硬件抽象接口,將一個操作系統(tǒng)以及操作系統(tǒng)層以上的層嫁接到硬件上,實(shí)現(xiàn)和真實(shí)物理機(jī)幾乎一樣的功能。
虛擬化技術(shù)的優(yōu)點(diǎn):
資源池——一個物理機(jī)的資源分配到了不同的虛擬機(jī)里
很容易擴(kuò)展——增加物理機(jī)或者虛擬機(jī)即可,因?yàn)樘摂M機(jī)是可以復(fù)制的
很容易云化——亞馬孫AWS,阿里云,谷歌云等
即然虛擬化技術(shù)已經(jīng)很強(qiáng)大了,為什么還需要容器技術(shù)呢?這就涉及到虛擬化技術(shù)所帶來的局限性了:
每一個虛擬機(jī)都是一個完整的操作系統(tǒng),所以需要給其分配物理資源,當(dāng)虛擬機(jī)數(shù)量增多時,操作系統(tǒng)本身消耗的資源勢必增多
容器:存在于操作系統(tǒng)層和函數(shù)庫層之間的虛擬化技術(shù)。
容器通過“偽造”操作系統(tǒng)的接口,將API抽象層,函數(shù)庫層以上的功能置于操作系統(tǒng)上,以Docker為例,就是基于Linux操作系統(tǒng)的Namespace和CGroup功能實(shí)現(xiàn)的隔離容器,模擬操作系統(tǒng)的功能,因?yàn)樗忍摂M機(jī)高了一層,也就需要少一層?xùn)|西,所以容器占用資源少。
容器可以幫我們把開發(fā)環(huán)境及應(yīng)用整個打包帶走,打包好的容器可以在任何的環(huán)境下運(yùn)行,這樣就可以解決開發(fā)與運(yùn)維環(huán)境不一致的問題了,所以:
容器解決了開發(fā)和運(yùn)維之間的矛盾
在開發(fā)和運(yùn)維之間搭建了一個橋梁,是實(shí)現(xiàn)devops的最佳解決方案
以上只是描述是容器解決了什么問題,但是還沒有說明什么是容器,不過其實(shí)簡單幾句話就可以說明容器了:
對軟件和其依賴環(huán)境的標(biāo)準(zhǔn)化打包
應(yīng)用之間相互隔離
共享一個OS Kernel
可以運(yùn)行在很多主流操作系統(tǒng)上
JVM:存在于函數(shù)庫層和應(yīng)用程序之間的虛擬化技術(shù)。
Java虛擬機(jī)具有跨平臺特性,所謂跨平臺特性實(shí)際上就是虛擬化的功勞,我們Java語言是調(diào)用操作系統(tǒng)函數(shù)庫的,然而不同操作系統(tǒng)的函數(shù)庫互不相同,JVM就是建立一個虛擬化層,對下通過不同的版本適應(yīng)不同的操作系統(tǒng),對上提供統(tǒng)一的運(yùn)行環(huán)境交給程序和開發(fā)者。通過虛擬化實(shí)現(xiàn)了如今蔚為壯觀的Java生態(tài)圈以及建立在JVM基礎(chǔ)上的其他語言,如Scala,Clojure,Kotlin等。
幾乎所有的計算機(jī)遵守著相同的層級結(jié)構(gòu):硬件層>>硬件抽象層>>操作系統(tǒng)層>>API抽象層>>函數(shù)庫層>>應(yīng)用程序?qū)?/p>
由此,我們可知虛擬化技術(shù)中,不管虛擬機(jī),還是容器,還是JVM的跨平臺,只是計算機(jī)不同層級結(jié)構(gòu)間的虛擬化運(yùn)用。在未來很長的一段時間里,它們會根據(jù)實(shí)際的應(yīng)用場景,互相***,互相支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享標(biāo)題:虛擬化技術(shù)中,不同層級結(jié)構(gòu)間的虛擬化運(yùn)用-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article44/goghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、微信公眾號、網(wǎng)站排名、品牌網(wǎng)站設(shè)計、用戶體驗(yàn)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容