云計(jì)算之基,一文帶你速懂虛擬化KVM和XEN
前言
”云計(jì)算“這個(gè)技術(shù)經(jīng)過(guò)十余年的普及到如今已經(jīng)可以稱得上是家喻戶曉了,基于云計(jì)算平臺(tái),在多個(gè)領(lǐng)域內(nèi)創(chuàng)造了一個(gè)又一個(gè)的記錄:電子商務(wù)里億萬(wàn)人同時(shí)在線搶購(gòu)的的”雙11“神話;幾個(gè)月里從0到千萬(wàn)用戶級(jí)別的游戲應(yīng)用;集結(jié)海量計(jì)算力從無(wú)用數(shù)據(jù)中尋找價(jià)值的大數(shù)據(jù)分析;
種種一切,無(wú)不在敘說(shuō)著這種新型信息技術(shù)所帶來(lái)的偉力與震撼。
云計(jì)算誕生于互聯(lián)網(wǎng)行業(yè),而又不止于影響互聯(lián)網(wǎng)。無(wú)論是馬云所說(shuō)”數(shù)字經(jīng)濟(jì)體“又或者馬化騰所說(shuō)的”產(chǎn)業(yè)互聯(lián)網(wǎng)“,歸根究底是使用自身云計(jì)算的能力去影響或者去重構(gòu)傳統(tǒng)行業(yè),帶來(lái)產(chǎn)業(yè)融合的新創(chuàng)新價(jià)值。
”信息技術(shù)改革“一觸即發(fā),云計(jì)算不是一門(mén)技術(shù),是一種”合作創(chuàng)新,云以致用“服務(wù)和理念。而其背后最重要的技術(shù)莫過(guò)于虛擬化技術(shù)了,今天就讓我們來(lái)揭曉云計(jì)算應(yīng)用最廣的KVM和XEN虛擬化技術(shù)。
1、虛擬化和云計(jì)算的關(guān)系
在云計(jì)算行業(yè)歷練多年,筆者集各家之對(duì)云計(jì)算的解釋,總結(jié)出了了個(gè)“云計(jì)算三四五定律”。
三是指云計(jì)算的服務(wù)模式:IaaS(基礎(chǔ)設(shè)施即服務(wù))Paas(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))。
四指的是部署方式:公有云、私有云、行業(yè)云(政務(wù)云、工業(yè)云等集合)以及混合云。
五指的是云計(jì)算的基本特征:按需接入、BGP線路、資源池化、彈性伸縮以及可計(jì)量的費(fèi)用。
那么,最重要的,資源如何達(dá)到池化的效果呢?
這里先來(lái)理解下虛擬化的定義。
虛擬化,是指通過(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ī)的工作效率。
--來(lái)自維基百科
虛擬化技術(shù)是云計(jì)算的基石,早在上世紀(jì)的90年代,已經(jīng)有人在研究如何利用虛擬化技術(shù)來(lái)平衡昂貴硬件和利用率不足之間的矛盾,中間出現(xiàn)了類(lèi)似如VMware以賣(mài)虛擬化軟件而崛起的公司,也隨著虛擬化技術(shù)發(fā)展,出現(xiàn)了開(kāi)源的XEN和KVM兩種虛擬化技術(shù)。正因?yàn)殚_(kāi)源虛擬化技術(shù)的普及,才有了云計(jì)算的如今的發(fā)展勢(shì)頭。
2、虛擬化的分類(lèi)與優(yōu)缺點(diǎn)
虛擬化核心思想是提高硬件資源的利用率,通過(guò)在系統(tǒng)中加入一個(gè)虛擬化層,將下層資源池化后,向上層操作系統(tǒng)提供一個(gè)預(yù)期一致的服務(wù)器硬件環(huán)境,并允許不同操作的系統(tǒng)的虛擬機(jī)互相隔離且并發(fā)運(yùn)行在一臺(tái)物理機(jī)上。
盡管虛擬化技術(shù)上個(gè)世紀(jì)已經(jīng)出現(xiàn),然后當(dāng)時(shí)虛擬化技術(shù)主要應(yīng)用于IBM的大型機(jī)中,隨著X86服務(wù)器架構(gòu)流行,VMware***個(gè)針對(duì)X86服務(wù)器的商用虛擬化技術(shù)。后來(lái),IT界最不缺開(kāi)源精神,劍橋大學(xué)一名講師發(fā)布了開(kāi)源虛擬化項(xiàng)目XEN。
但是問(wèn)題是,XEN有個(gè)缺點(diǎn):需要對(duì)內(nèi)核補(bǔ)丁,稍微不慎,系統(tǒng)崩潰。
KVM其實(shí)比XEN出現(xiàn)的晚,但是當(dāng)KVM出現(xiàn)時(shí),已經(jīng)全盤(pán)使用XEN虛擬技術(shù)的Redhat直接拋棄了已經(jīng)使用多年的XEN,究其原因,KVM是Linux的一部分, 可使用通常的Linux調(diào)度器和內(nèi)存管理. 這意味著KVM更小更易使用。
上圖是KVM和XEN的架構(gòu)對(duì)比圖,首先,兩者都屬于硬件虛擬化(硬件提供結(jié)構(gòu)支持幫助創(chuàng)建虛擬機(jī)監(jiān)視并允許客戶機(jī)操作系統(tǒng)獨(dú)立運(yùn)行)。
• 全虛擬化:虛擬機(jī)完整的模擬了底層硬件,linux系統(tǒng)直接內(nèi)核支持,不需要對(duì)操作系統(tǒng)進(jìn)行修改。簡(jiǎn)單來(lái)講,虛擬機(jī)以為自己運(yùn)行在硬件上。
• 半虛擬化:虛擬機(jī)能夠感知是運(yùn)行在Hypervisor(虛擬機(jī)器監(jiān)視器,簡(jiǎn)稱VMM)之中,且為了支持Hypervisor,需要對(duì)操作系統(tǒng)進(jìn)行專門(mén)的更改。
XEN包含三個(gè)基本組件:Hypervisor、Domain 0、Domain U。
其中Hypervisor運(yùn)行在硬件之上,承載所有的操作系統(tǒng),提供CPU和內(nèi)存調(diào)度的作用。
Domain 0是管理員,相當(dāng)于一個(gè)大管家,主要負(fù)責(zé)IO 虛擬化。
Domain U則是真正的XEN中的虛擬客戶機(jī),而Domain U又分為兩類(lèi):一類(lèi)全虛擬客戶機(jī),一類(lèi)半虛擬客戶機(jī),后者是運(yùn)行在經(jīng)過(guò)修改的操作系統(tǒng)之上。
只支持全虛擬化的KVM則簡(jiǎn)單的多了,主要兩個(gè)部分組成:KVM驅(qū)動(dòng)和Qemu。
KVM驅(qū)動(dòng)直接被集成到linux系統(tǒng)(Intel-VT或AMD-V))中了,主要負(fù)責(zé)虛擬機(jī)創(chuàng)建、CPU和內(nèi)存的分配等等。
Qemu是用于模擬虛擬機(jī)的用戶空間組件,提供I/O設(shè)備模型,訪問(wèn)外設(shè)的途徑。這里我們來(lái)看下兩者的圖解對(duì)比。
大多數(shù)XEN和KVM性能基準(zhǔn)測(cè)試表明,XEN比KVM擁有更好的處理性能。
3、總結(jié)
當(dāng)然,在如今,兩種虛擬化的邊界也越來(lái)越模糊,選擇適合自己的才是最重要的。 而作為世界***的云計(jì)算廠商AWS從誕生以來(lái)一直是XEN的擁護(hù)者,然后近幾年也開(kāi)始接入KVM,開(kāi)始兩者融合,為用戶提供所需的服務(wù)。
而作為國(guó)內(nèi)***的云廠商阿里云,目前在基本已經(jīng)KVM虛擬化方案了。
毫無(wú)疑問(wèn),KVM擁有更好的生態(tài),更多的開(kāi)源支持。而XEN誕生時(shí)間較長(zhǎng),也是目前最成熟的虛擬化技術(shù)。
但是未來(lái),究竟是XEN奪得先機(jī),還是KVM更勝一籌?
讓我們拭目以待。