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