行業動态

誰是(yes)雲的(of)王者?OpenStack與VMware優劣對比

2016/1/5 9:15:12

       在(exist)雲計算生(born)态系統中,有兩種類型的(of)用(use)戶需要(want)使用(use)雲計算資源:傳統型(Traditional IT applications)和(and)在(exist)互聯網大(big)潮下逐漸崛起雲計算應用(use)型(Cloud-aware applications)。國(country)外廣爲(for)流傳的(of)一(one)個(indivual)比喻是(yes):在(exist)傳統服務模式下,可以(by)想象服務器就是(yes)IT的(of)寵物(Pets),給他(he)們(them)取名字,精心撫養長大(big),當他(he)們(them)生(born)病了(Got it),你得修複他(he)們(them);在(exist)新形态的(of)應用(use)服務模型中,虛拟機被看做是(yes)農場中的(of)公牛(Cattle),名字通常都是(yes)編号,當他(he)們(them)生(born)病了(Got it),你就殺掉他(he),用(use)一(one)頭新牛代替。VMWare和(and)OpenStack的(of)雲計算Vision、功能、特點對比正式這(this)個(indivual)戰争或者說趨勢的(of)一(one)個(indivual)生(born)動寫照。未來(Come)的(of)應用(use)架構應該像對待農場中的(of)公牛一(one)樣:VMware的(of)“保養”、保護虛拟機的(of)各種功能比較雲計算型應用(use)模式可能會逐漸變得越來(Come)越不(No)那麽重要(want)。本文在(exist)國(country)外廣泛流傳,熱議不(No)斷,中國(country)社區意譯分享給大(big)家,歡迎積極讨論。

      本文中内容具體包括以(by)下幾個(indivual)部分:設計、功能集、客戶用(use)例和(and)價值,每點都以(by)十分來(Come)評價,最終我(I)們(them)将以(by)總分來(Come)決定赢家。

      第一(one)回合:設計

      VMware軟件套件是(yes)自底向上(superior)的(of)架構,下端邊界爲(for)虛拟機管理器。像VMware的(of)vSphere和(and)vCloud director産品都是(yes)依賴于(At)免費的(of)ESX(i) 虛拟機管理器, ESX(i)虛拟機管理器爲(for)他(he)們(them)提供了(Got it)非常優秀的(of)部署架構。本身VMware的(of)軟件套件也是(yes)經過全面測試過的(of),并且都有單一(one)部署框架。總的(of)來(Come)說,VMware的(of)産品由于(At)其架構的(of)健壯性,很多高規格用(use)戶在(exist)多數據中心規模的(of)環境中都有使用(use)。換句話說,VMware的(of)軟件系統是(yes)封閉的(of),并且軟件的(of)發展路線是(yes)完全遵循VMware自己的(of)發展目标,用(use)戶或消費者在(exist)此方面沒有任何控制權。

      OpenStack作(do)爲(for)一(one)個(indivual)開源系統,沒有任何一(one)家單獨的(of)公司在(exist)控制OpenStack的(of)發展路線。本身OpenStack是(yes)年輕的(of),還不(No)滿三周歲,但是(yes)他(he)卻具有巨大(big)的(of)市場動力,與此同時(hour),很多大(big)公司都在(exist)支持OpenStack發展(詳見:OpenStack支持者)。有了(Got it)如此多公司的(of)資源投入,OpenStack的(of)發展是(yes)多元化的(of)。然而這(this)也帶來(Come)了(Got it)問題,就是(yes)OpenStack部署和(and)架構的(of)實施和(and)維護成本較比VMware有了(Got it)陡然提高,與此同時(hour),由于(At)相對快速的(of)版本更新速度,技術支持文檔不(No)能跟上(superior)産品的(of)腳步。


      VMware在(exist)設計方面稍占優勢,這(this)源于(At)它優秀的(of)文檔資料以(by)及便捷易用(use)的(of)部署和(and)管理接口。OpenStack在(exist)這(this)個(indivual)方面也在(exist)緊追不(No)舍,并且在(exist)硬件和(and)虛拟機管理層其保持了(Got it)它自身的(of)靈活性,更是(yes)提供了(Got it)多廠商支持。

      第二回合:功能

      VMware vMotion

      vMotion是(yes)vSphere DRS、DPM和(and)主機維護三大(big)功能的(of)合集。其中虛拟機動态遷移允許将一(one)台虛拟機在(exist)零關機的(of)情況下由一(one)台宿主機遷移到(arrive)另一(one)台上(superior),這(this)原本是(yes)需要(want)共享存儲的(of)支持的(of),但在(exist)vSphere 5.1中,VMware已經不(No)需要(want)通過共享存儲實現動态遷移了(Got it)。當一(one)台虛拟機由一(one)個(indivual)宿主機遷移到(arrive)另一(one)個(indivual)上(superior)時(hour),虛拟機的(of)内存狀态和(and)數據都要(want)同步遷移過去。如果是(yes)共享存儲的(of)情況,實際上(superior)數據是(yes)不(No)需要(want)進行遷移的(of),隻需要(want)變化指向數據存儲的(of)鏈接而已。這(this)在(exist)加速了(Got it)遷移速度的(of)同時(hour)也減少了(Got it)在(exist)複制過程中網絡的(of)負載。

      OpenStack 動态遷移

      KVM動态遷移允許一(one)個(indivual)虛拟機由一(one)個(indivual)虛拟機管理器遷移到(arrive)另一(one)個(indivual),說的(of)詳細一(one)點,你可以(by)來(Come)來(Come)回回将一(one)台虛拟機在(exist)AMD架構主機與Intel架構主機上(superior)進行遷移,但是(yes)需要(want)注意的(of)是(yes),64位的(of)虛拟主機隻能被遷移到(arrive)64位的(of)宿主機上(superior),但是(yes)32位的(of)則有32位和(and)64位兩種選擇。在(exist)動态遷移過程中,不(No)能再對虛拟機進行操作(do),但是(yes)虛拟機内的(of)用(use)戶還是(yes)可以(by)在(exist)虛拟機内部繼續進行工作(do)的(of)。KVM主要(want)還是(yes)依賴于(At)共享存儲,某種程度上(superior),這(this)相對來(Come)說是(yes)需要(want)一(one)些資金投入的(of)。

      動态遷移需求:

      虛拟機存儲需要(want)放在(exist)分布式文件系統之上(superior),如NFS或在(exist)GlusterFSLibvirt必須要(want)開啓listen flag每一(one)個(indivual)計算節點(虛拟機管理器)都必須在(exist)同一(one)個(indivual)網絡/子網當中計算節點間的(of)認證必須提前完成配置DFS的(of)挂載節點在(exist)每一(one)個(indivual)計算節點必須保持一(one)緻

      OpenStack塊存儲遷移

      在(exist)OpenStack當中,KVM支持塊存儲遷移,這(this)也就是(yes)說虛拟機遷移不(No)是(yes)必須需要(want)共享存儲的(of)支持的(of)。在(exist)塊遷移的(of)場景下,虛拟機的(of)内存狀态與數據都将被遷移,但是(yes)遷移操作(do)也需要(want)消耗兩端的(of)CPU資源并且操作(do)花費時(hour)間較比共享存儲來(Come)說要(want)長一(one)些。在(exist)某些用(use)戶場景當中,如果我(I)們(them)比較關注于(At)主機的(of)可維護性,并且不(No)想花費過多經費,那麽應用(use)塊存儲遷移将是(yes)好的(of)解決方案。同時(hour),如果在(exist)沒有共享存儲的(of)環境中,我(I)們(them)想對計算節點進行内核維護、安全升級,那麽保證虛拟機服務不(No)被打斷,塊存儲遷移也是(yes)理想選擇。

      用(use)戶場景:

      用(use)戶沒有分布式文件系統,可能是(yes)由于(At)企業的(of)資金支持或者網絡延遲,但是(yes)卻想實現虛拟機的(of)高可用(use)性。

      VMware DRS 和(and) DPM

      基于(At)vMotion,DRS可以(by)動态監控虛機機及宿主機的(of)當前使用(use)狀況,并且爲(for)宿主機的(of)負載均衡提供支持。

      用(use)戶場景:

      部署階段:可以(by)對監控虛拟機執行自定義自動化腳本監控階段:DRS可以(by)在(exist)ESX(i)主機上(superior)分布式部署虛拟機,并且持續監控活躍虛拟機和(and)可用(use)資源,以(by)動态遷移虛拟機來(Come)實現資源利用(use)率最大(big)化

      基于(At)vMotion, DPM将虛拟機從低負載宿主機遷移掉,并且關閉以(by)達到(arrive)減少電能損耗。當負載增長,DPM将宿主機重啓,并且部署新的(of)虛拟機以(by)滿足負載需要(want)。

      OpenStack 調度器

      OpenStack包含了(Got it)對于(At)compute和(and)volume的(of)調度器,通過一(one)系列的(of)管理員設定的(of)規則參數和(and)過濾器,OpenStack調度器将虛拟機部署到(arrive)合适的(of)宿主機上(superior)。在(exist)過濾器方面,調度器是(yes)非常靈活的(of),用(use)戶可以(by)自己完成JSON格式的(of)過濾器,并且過濾器還包含很多預定義的(of)過濾器。雖然OpenStack調度器非常靈活,但是(yes)還是(yes)不(No)能完全替代DRS,原因如下:

      VMware High Availability(高可用(use))

      在(exist)vSphere中,虛拟機級别的(of)高可用(use)性是(yes)允許在(exist)虛拟機或者ESX(i)主機出(out)錯時(hour),在(exist)不(No)同宿主機部署相同的(of)虛拟機。這(this)裏不(No)要(want)和(and)容錯(FT)機制混淆,高可用(use)的(of)意義在(exist)于(At)當有一(one)些東西出(out)錯了(Got it),可以(by)在(exist)一(one)定時(hour)間内自我(I)修複。高可用(use)是(yes)在(exist)硬件出(out)問題的(of)時(hour)候保證虛拟機的(of)正常個(indivual)工作(do),如果真的(of)出(out)錯了(Got it),那麽隻能在(exist)不(No)同的(of)ESX(i)主機上(superior)啓動虛拟機,這(this)也可能造成服務的(of)中斷。

      OpenStack High Availability(高可用(use))

目前并沒有官方聲明OpenStack支持虛拟機級别的(of)高可用(use)性,這(this)個(indivual)特性在(exist)Folsom版本被提出(out),但是(yes)後續又被放棄了(Got it)。目前OpenStack有一(one)個(indivual)孵化項目Evacuate, 其作(do)用(use)是(yes)爲(for)OpenStack提供虛拟機級别高可用(use)支持。

      VMware Fault Tolerance(容錯)

      VMware容錯機制是(yes)通過監控虛拟機的(of)狀态和(and)所有變化,将這(this)些變化同步到(arrive)第二台備份ESX(i)服務器之上(superior)。容錯的(of)概念在(exist)于(At)無論是(yes)主還是(yes)從宿主機出(out)現問題,隻要(want)一(one)方能正常工作(do),那麽宿主機上(superior)的(of)虛拟機都保持正常工作(do)。抛開營銷中的(of)噱頭,這(this)種機制還是(yes)無法解決虛拟機中的(of)應用(use)程序崩潰,因爲(for)一(one)旦一(one)方崩潰,則這(this)個(indivual)變化也會同步到(arrive)從節點,當你停止虛拟機的(of)服務去修複它,從節點也會同樣停止服務。所以(by)這(this)個(indivual)機制隻能保證單點失效的(of)問題不(No)再出(out)現,而真正的(of)應用(use)層面的(of)容錯則需要(want)MSCS或者WCS來(Come)解決。考慮到(arrive)其他(he)方面如最高資源使用(use)、内存、硬盤、CPU、帶寬的(of)容錯,這(this)些方面都有局限性,并且是(yes)使用(use)量相對比較小的(of)功能。如實現這(this)些則這(this)需要(want)雙倍的(of)内存,由于(At)内存不(No)能跨主機複制,并且還需要(want)CPU lockstepping去同步每一(one)個(indivual)CPU指令。這(this)将導緻隻有單獨一(one)個(indivual)虛拟CPU被容錯機制所監控。

      OpenStack Fault Tolerance(容錯)

      在(exist)OpenStack中沒有針對于(At)容錯的(of)功能,并且截至目前也沒有計劃去完成這(this)些功能。未來(Come),KVM也不(No)再支持鏡像操作(do)功能。


      我(I)們(them)可以(by)看到(arrive),在(exist)功能的(of)支持方面和(and)功能細節,OpenStack與VMware還是(yes)有差距的(of),但是(yes)這(this)對OpenStack還是(yes)有優勢的(of),因爲(for)較比VMware的(of)昂貴價格,OpenStack免費、開放的(of)優勢顯現出(out)來(Come)。VMware高投入帶來(Come)的(of)功能,OpenStack大(big)部分可以(by)免費提供給客戶。

      從VMware在(exist)功能方面的(of)領先可以(by)看出(out),VMware還在(exist)繼續研發除了(Got it)vMotion、高可用(use)、容錯以(by)外其他(he)的(of)新功能去保護他(he)們(them)的(of)虛拟機;OpenStack一(one)方面跟随VMware的(of)腳步,另一(one)方面他(he)們(them)投入精力在(exist)支持更多硬件廠商解決方案的(of)上(superior)面。

      第三回合:用(use)例

在(exist)我(I)們(them)評價上(superior)述功能的(of)價值之前,首先我(I)們(them)需要(want)考慮用(use)例問題。在(exist)雲計算生(born)态系統中,有兩種類型的(of)用(use)戶需要(want)使用(use)雲計算資源:傳統型和(and)雲計算應用(use)型。雲計算應用(use)型用(use)戶将自己處理HA和(and)DR策略,而傳統型用(use)戶将依賴于(At)雲平台提供的(of)HA和(and)DR。看下面出(out)自VMware雲計算架構文章的(of)圖表。

      雲計算型應用(use)共同特點

      分布式無狀态、軟狀态失效切換在(exist)應用(use)端擴展性在(exist)應用(use)端

      傳統型應用(use)共同特點

      客戶端-服務器架構難以(by)橫向擴展失效切換在(exist)服務端擴展性在(exist)服務端

      傳統型應用(use)将需要(want)如FT、VM級别的(of)高可用(use)性、自動病毒掃描等功能,而雲計算型應用(use)則不(No)需要(want),當一(one)台虛拟機出(out)問題後,新的(of)一(one)台虛拟機将替代它。

Pet vs. Cattle

      換一(one)種思路去想這(this)件事,那就可以(by)從微軟 William Baker的(of)出(out)名文章 Pets vs. Cattle 的(of)比喻看出(out)OpenStack和(and)Vmware的(of)關系。

      比喻是(yes)這(this)樣說的(of):在(exist)傳統服務模式下,你可以(by)想象你的(of)主機就是(yes)你的(of)寵物,你給他(he)們(them)取名字,比如dusty、cern等等,他(he)們(them)被精心撫養長大(big)。當他(he)們(them)生(born)病了(Got it),你得修複他(he)們(them)。在(exist)雲計算型應用(use)服務模型中,虛拟機被看做是(yes)農場中的(of)公牛,他(he)們(them)的(of)名字通常都是(yes)編号,牛和(and)牛長得也差不(No)多,當他(he)們(them)生(born)病了(Got it),你就殺掉他(he),用(use)一(one)頭新牛代替。

      未來(Come)的(of)雲應用(use)架構應該像對待農場中的(of)公牛一(one)樣。VMware的(of)保養、保護虛拟機的(of)各種功能較比雲計算型應用(use)模式變得越來(Come)越不(No)那麽重要(want)了(Got it)。


      在(exist)這(this)輪比賽中,OpenStack追了(Got it)上(superior)來(Come),雖然VMware有很多OpenStack所不(No)具有的(of)功能,但是(yes)針對雲計算型應用(use),這(this)些功能變得不(No)那麽重要(want)。未來(Come),你很可能爲(for)那些你用(use)不(No)上(superior)的(of)、不(No)可控的(of)VMware添加功能買單。

      第四回合:價值

      現在(exist)是(yes)最後一(one)回合,我(I)們(them)将決定比賽結果。雖然,OpenStack還是(yes)VMware更有價值,這(this)個(indivual)問題并沒有很清晰的(of)答案,并且答案也取決于(At)部署規模。雖然OpenStack是(yes)免費使用(use)的(of),但是(yes)他(he)需要(want)有大(big)量工程資源和(and)領域專家才行,并且他(he)還需要(want)很多架構和(and)搭建方面的(of)工作(do),因爲(for)它支持很多部署場景,并且安裝過程都不(No)盡相同。VMware則需要(want)花費一(one)些經費購買權限,并且相對來(Come)說更加容易安裝和(and)運行,另外較比命令行,VMware則學習成本更低一(one)些。

      總得來(Come)說,OpenStack入門門檻較高,但是(yes)随着項目規模的(of)擴大(big),你将從中受益,因爲(for)不(No)必支付高額的(of)版權費用(use)。VMware雖然在(exist)小規模安裝時(hour)相對容易,但是(yes)随着規模擴大(big),事情就變了(Got it)。這(this)就是(yes)說,随着雲應用(use)大(big)規模化,大(big)家也更加熟悉OpenStack,那麽OpenStack的(of)入門門檻就低得多了(Got it)。


      在(exist)雲計算領域,OpenStack和(and)VMware這(this)兩位重量級玩家,VMware在(exist)功能和(and)架構上(superior)稍微領先,但是(yes)OpenStack作(do)爲(for)一(one)隻弱旅,卻在(exist)第三回合迎頭趕上(superior)并在(exist)最後一(one)回合給予對方毀滅性打擊。

上(superior)一(one)篇:下一(one)代防火牆和(and)普通防火牆有什麽區别 下一(one)篇:解析軟件架構