在云計算生態(tài)系統(tǒng)中,有兩種類型的用戶需要使用云計算資源:傳統(tǒng)型(Traditional IT applications)和在互聯(lián)網(wǎng)大潮下逐漸崛起云計算應(yīng)用型(Cloud-aware applications)。國外廣為流傳的一個比喻是:在傳統(tǒng)服務(wù)模式下,可以想象服務(wù)器就是IT的寵物(Pets),給他們?nèi)∶?,精心撫養(yǎng)長大,當(dāng)他們生病了,你得修復(fù)他們;在新形態(tài)的應(yīng)用服務(wù)模型中,虛擬機被看做是農(nóng)場中的公牛(Cattle),名字通常都是編號,當(dāng)他們生病了,你就殺掉他,用一頭新牛代替。VMWare和OpenStack的云計算Vision、功能、特點對比正式這個戰(zhàn)爭或者說趨勢的一個生動寫照。未來的應(yīng)用架構(gòu)應(yīng)該像對待農(nóng)場中的公牛一樣:VMware的“保養(yǎng)”、保護虛擬機的各種功能較比云計算型應(yīng)用模式可能會逐漸變得越來越不那么重要。本文在國外廣泛流傳,熱議不斷,中國社區(qū)意譯分享給大家,歡迎積極討論。
全文如下:
云計算OpenStack 、VMware的優(yōu)劣對比2
在Cloud領(lǐng)域,我們討論最多的就是VMware與OpenStack的對比。事實上,這也是那些想使用OpenStack的人們熱議的話題。我已經(jīng)在SF Bay OpenStack會議中多次針對這個話題做了討論,會議中很多朋友都希望我把這些討論寫下來。為了讓讀者能夠更好地了解本文的內(nèi)容,我決定通過兩大云計算產(chǎn)品在數(shù)據(jù)中心應(yīng)用的關(guān)鍵點對比的方式去完成本文的內(nèi)容,內(nèi)容可能包括:開放與非開放的軟件系統(tǒng),企業(yè)級傳統(tǒng)應(yīng)用與云計算應(yīng)用,自由軟件與授權(quán)軟件,通過嚴(yán)格功能測試的產(chǎn)品與開放性功能的產(chǎn)品等。
本文中內(nèi)容具體包括以下幾個部分:設(shè)計、功能集、客戶用例和價值,每點都以十分來評價,最終我們將以總分來決定贏家。
第一回合:設(shè)計
VMware軟件套件是自底向上的架構(gòu),下端邊界為虛擬機管理器。像VMware的vSphere和vCloud director產(chǎn)品都是依賴于免費的ESX(i) 虛擬機管理器, ESX(i)虛擬機管理器為他們提供了非常優(yōu)秀的部署架構(gòu)。本身VMware的軟件套件也是經(jīng)過全面測試過的,并且都有單一部署框架。總的來說,VMware的產(chǎn)品由于其架構(gòu)的健壯性,很多高規(guī)格用戶在多數(shù)據(jù)中心規(guī)模的環(huán)境中都有使用。換句話說,VMware的軟件系統(tǒng)是封閉的,并且軟件的發(fā)展路線是完全遵循VMware自己的發(fā)展目標(biāo),用戶或消費者在此方面沒有任何控制權(quán)。
OpenStack作為一個開源系統(tǒng),沒有任何一家單獨的公司在控制OpenStack的發(fā)展路線。本身OpenStack是年輕的,還不滿三周歲,但是他卻具有巨大的市場動力,與此同時,很多大公司都在支持OpenStack發(fā)展(詳見:OpenStack支持者)。有了如此多公司的資源投入,OpenStack的發(fā)展是多元化的。然而這也帶來了問題,就是OpenStack部署和架構(gòu)的實施和維護成本較比VMware有了陡然提高,與此同時,由于相對快速的版本更新速度,技術(shù)支持文檔不能跟上產(chǎn)品的腳步。
VMware在設(shè)計方面稍占優(yōu)勢,這源于它優(yōu)秀的文檔資料以及便捷易用的部署和管理接口。OpenStack在這個方面也在緊追不舍,并且在硬件和虛擬機管理層其保持了它自身的靈活性,更是提供了多廠商支持。
第二回合:功能
云計算OpenStack 、VMware的優(yōu)劣對比2
VMware vMotion
vMotion是vSphere DRS、DPM和主機維護三大功能的合集。其中虛擬機動態(tài)遷移允許將一臺虛擬機在零關(guān)機的情況下由一臺宿主機遷移到另一臺上,這原本是需要共享存儲的支持的,但在vSphere 5.1中,VMware已經(jīng)不需要通過共享存儲實現(xiàn)動態(tài)遷移了。當(dāng)一臺虛擬機由一個宿主機遷移到另一個上時,虛擬機的內(nèi)存狀態(tài)和數(shù)據(jù)都要同步遷移過去。如果是共享存儲的情況,實際上數(shù)據(jù)是不需要進行遷移的,只需要變化指向數(shù)據(jù)存儲的鏈接而已。這在加速了遷移速度的同時也減少了在復(fù)制過程中網(wǎng)絡(luò)的負載。
OpenStack 動態(tài)遷移
云計算OpenStack 、VMware的優(yōu)劣對比1
KVM動態(tài)遷移允許一個虛擬機由一個虛擬機管理器遷移到另一個,說的詳細一點,你可以來來回回將一臺虛擬機在AMD架構(gòu)主機與Intel架構(gòu)主機上進行遷移,但是需要注意的是,64位的虛擬主機只能被遷移到64位的宿主機上,但是32位的則有32位和64位兩種選擇。在動態(tài)遷移過程中,不能再對虛擬機進行操作,但是虛擬機內(nèi)的用戶還是可以在虛擬機內(nèi)部繼續(xù)進行工作的。KVM主要還是依賴于共享存儲,某種程度上,這相對來說是需要一些資金投入的。
動態(tài)遷移需求:
虛擬機存儲需要放在分布式文件系統(tǒng)之上,如NFS或在GlusterFSLibvirt必須要開啟listen flag每一個計算節(jié)點(虛擬機管理器)都必須在同一個網(wǎng)絡(luò)/子網(wǎng)當(dāng)中計算節(jié)點間的認(rèn)證必須提前完成配置DFS的掛載節(jié)點在每一個計算節(jié)點必須保持一致
OpenStack塊存儲遷移
云計算OpenStack 、VMware的優(yōu)劣對比
在OpenStack當(dāng)中,KVM支持塊存儲遷移,這也就是說虛擬機遷移不是必須需要共享存儲的支持的。在塊遷移的場景下,虛擬機的內(nèi)存狀態(tài)與數(shù)據(jù)都將被遷移,但是遷移操作也需要消耗兩端的CPU資源并且操作花費時間較比共享存儲來說要長一些。在某些用戶場景當(dāng)中,如果我們比較關(guān)注于主機的可維護性,并且不想花費過多經(jīng)費,那么應(yīng)用塊存儲遷移將是好的解決方案。同時,如果在沒有共享存儲的環(huán)境中,我們想對計算節(jié)點進行內(nèi)核維護、安全升級,那么保證虛擬機服務(wù)不被打斷,塊存儲遷移也是理想選擇。
用戶場景:
用戶沒有分布式文件系統(tǒng),可能是由于企業(yè)的資金支持或者網(wǎng)絡(luò)延遲,但是卻想實現(xiàn)虛擬機的高可用性。
VMware DRS 和 DPM
基于vMotion,DRS可以動態(tài)監(jiān)控虛機機及宿主機的當(dāng)前使用狀況,并且為宿主機的負載均衡提供支持。
用戶場景:
部署階段:可以對監(jiān)控虛擬機執(zhí)行自定義自動化腳本監(jiān)控階段:DRS可以在ESX(i)主機上分布式部署虛擬機,并且持續(xù)監(jiān)控活躍虛擬機和可用資源,以動態(tài)遷移虛擬機來實現(xiàn)資源利用率最大化
基于vMotion, DPM將虛擬機從低負載宿主機遷移掉,并且關(guān)閉以達到減少電能損耗。當(dāng)負載增長,DPM將宿主機重啟,并且部署新的虛擬機以滿足負載需要。
OpenStack 調(diào)度器
OpenStack包含了對于compute和volume的調(diào)度器,通過一系列的管理員設(shè)定的規(guī)則參數(shù)和過濾器,OpenStack調(diào)度器將虛擬機部署到合適的宿主機上。在過濾器方面,調(diào)度器是非常靈活的,用戶可以自己完成JSON格式的過濾器,并且過濾器還包含很多預(yù)定義的過濾器。雖然OpenStack調(diào)度器非常靈活,但是還是不能完全替代DRS,原因如下:
在vSphere中,虛擬機級別的高可用性是允許在虛擬機或者ESX(i)主機出錯時,在不同宿主機部署相同的虛擬機。這里不要和容錯(FT)機制混淆,高可用的意義在于當(dāng)有一些東西出錯了,可以在一定時間內(nèi)自我修復(fù)。高可用是在硬件出問題的時候保證虛擬機的正常個工作,如果真的出錯了,那么只能在不同的ESX(i)主機上啟動虛擬機,這也可能造成服務(wù)的中斷。
OpenStack High Availability(高可用)
目前并沒有官方聲明OpenStack支持虛擬機級別的高可用性,這個特性在Folsom版本被提出,但是后續(xù)又被放棄了。目前OpenStack有一個孵化項目Evacuate, 其作用是為OpenStack提供虛擬機級別高可用支持。
VMware Fault Tolerance(容錯)
VMware容錯機制是通過監(jiān)控虛擬機的狀態(tài)和所有變化,將這些變化同步到第二臺備份ESX(i)服務(wù)器之上。容錯的概念在于無論是主還是從宿主機出現(xiàn)問題,只要一方能正常工作,那么宿主機上的虛擬機都保持正常工作。拋開營銷中的噱頭,這種機制還是無法解決虛擬機中的應(yīng)用程序崩潰,因為一旦一方崩潰,則這個變化也會同步到從節(jié)點,當(dāng)你停止虛擬機的服務(wù)去修復(fù)它,從節(jié)點也會同樣停止服務(wù)。所以這個機制只能保證單點失效的問題不再出現(xiàn),而真正的應(yīng)用層面的容錯則需要MSCS或者WCS來解決。考慮到其他方面如最高資源使用、內(nèi)存、硬盤、CPU、帶寬的容錯,這些方面都有局限性,并且是使用量相對比較小的功能。如實現(xiàn)這些則這需要雙倍的內(nèi)存,由于內(nèi)存不能跨主機復(fù)制,并且還需要CPU lockstepping去同步每一個CPU指令。這將導(dǎo)致只有單獨一個虛擬CPU被容錯機制所監(jiān)控。
云計算OpenStack 、VMware的優(yōu)劣對比
OpenStack Fault Tolerance(容錯)
在OpenStack中沒有針對于容錯的功能,并且截至目前也沒有計劃去完成這些功能。未來,KVM也不再支持鏡像操作功能。
我們可以看到,在功能的支持方面和功能細節(jié),OpenStack與VMware還是有差距的,但是這對OpenStack還是有優(yōu)勢的,因為較比VMware的昂貴價格,OpenStack免費、開放的優(yōu)勢顯現(xiàn)出來。VMware高投入帶來的功能,OpenStack大部分可以免費提供給客戶。
從VMware在功能方面的領(lǐng)先可以看出,VMware還在繼續(xù)研發(fā)除了vMotion、高可用、容錯以外其他的新功能去保護他們的虛擬機;OpenStack一方面跟隨VMware的腳步,另一方面他們投入精力在支持更多硬件廠商解決方案的上面。
第三回合:用例
在我們評價上述功能的價值之前,首先我們需要考慮用例問題。在云計算生態(tài)系統(tǒng)中,有兩種類型的用戶需要使用云計算資源:傳統(tǒng)型和云計算應(yīng)用型。云計算應(yīng)用型用戶將自己處理HA和DR策略,而傳統(tǒng)型用戶將依賴于云平臺提供的HA和DR??聪旅娉鲎訴Mware云計算架構(gòu)文章的圖表。
分布式無狀態(tài)、軟狀態(tài)失效切換在應(yīng)用端擴展性在應(yīng)用端
傳統(tǒng)型應(yīng)用共同特點
客戶端-服務(wù)器架構(gòu)難以橫向擴展失效切換在服務(wù)端擴展性在服務(wù)端
傳統(tǒng)型應(yīng)用將需要如FT、VM級別的高可用性、自動病毒掃描等功能,而云計算型應(yīng)用則不需要,當(dāng)一臺虛擬機出問題后,新的一臺虛擬機將替代它。
Pet vs. Cattle
換一種思路去想這件事,那就可以從微軟 William Baker的出名文章 Pets vs. Cattle 的比喻看出OpenStack和Vmware的關(guān)系。
比喻是這樣說的:在傳統(tǒng)服務(wù)模式下,你可以想象你的主機就是你的寵物,你給他們?nèi)∶郑热鏳usty、cern等等,他們被精心撫養(yǎng)長大。當(dāng)他們生病了,你得修復(fù)他們。在云計算型應(yīng)用服務(wù)模型中,虛擬機被看做是農(nóng)場中的公牛,他們的名字通常都是編號,牛和牛長得也差不多,當(dāng)他們生病了,你就殺掉他,用一頭新牛代替。
未來的云應(yīng)用架構(gòu)應(yīng)該像對待農(nóng)場中的公牛一樣。VMware的保養(yǎng)、保護虛擬機的各種功能較比云計算型應(yīng)用模式變得越來越不那么重要了。
在這輪比賽中,OpenStack追了上來,雖然VMware有很多OpenStack所不具有的功能,但是針對云計算型應(yīng)用,這些功能變得不那么重要。未來,你很可能為那些你用不上的、不可控的VMware添加功能買單。
第四回合:價值
現(xiàn)在是最后一回合,我們將決定比賽結(jié)果。雖然,OpenStack還是VMware更有價值,這個問題并沒有很清晰的答案,并且答案也取決于部署規(guī)模。雖然OpenStack是免費使用的,但是他需要有大量工程資源和領(lǐng)域?qū)<也判?,并且他還需要很多架構(gòu)和搭建方面的工作,因為它支持很多部署場景,并且安裝過程都不盡相同。VMware則需要花費一些經(jīng)費購買權(quán)限,并且相對來說更加容易安裝和運行,另外較比命令行,VMware則學(xué)習(xí)成本更低一些。
總得來說,OpenStack入門門檻較高,但是隨著項目規(guī)模的擴大,你將從中受益,因為不必支付高額的版權(quán)費用。VMware雖然在小規(guī)模安裝時相對容易,但是隨著規(guī)模擴大,事情就變了。這就是說,隨著云應(yīng)用大規(guī)模化,大家也更加熟悉OpenStack,那么OpenStack的入門門檻就低得多了。