OpenStack從2010年開源至今,已經走過8個年頭,其正在進入主流企業(yè)市場,但該項目依然面臨較難部署和管理的老問題。有一點是毫無疑問的,那就是OpenStack保持著高速增長的態(tài)勢,超過585家企業(yè),接近4萬人通過各種方式支持著這個超過2000萬行的開源項目的持續(xù)發(fā)展。
ZStack項目初始于2015年,相對OpenStack要年輕很多,由于其具有易用、穩(wěn)定、靈活、超高性能等特點,迅速成為市場的新寵兒,其功能在不斷的完善,其性能在不斷的加強。發(fā)展以及成熟的速度遠快于OpenStack,其市場認可程度不弱于OpenStack。
介紹
OpenStack是一個開源的云計算管理平臺項目,由幾個主要的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的云環(huán)境,項目目標是提供實施簡單、可大規(guī)模擴展、豐富、標準統(tǒng)一的云計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。開源于2010年,當前最新版本Queens。
ZStack是下一代開源的云計算IaaS(基礎架構即服務)軟件。它主要面向的是未來的智能數(shù)據(jù)中心,通過提供全完善的API來管理包括計算、存儲和網絡在內的數(shù)據(jù)中心的各種資源。ZStack具有易用、穩(wěn)定、靈活、超高性能等特點。分為商業(yè)版以及開源社區(qū)版本。起步于2015年,當前最新版本2.5.1。
架構
OpenStack架構圖如下圖。以前有個朋友吐槽說,這是一群小蜘蛛在結網,雖然有序,但每一個小蜘蛛的網都不盡相同。當這些網連起來的時候,就會讓人看的眼花繚亂。因為每一次的請求任務都需要在各個子系統(tǒng)之間來回協(xié)調,任何一處出問題,都將導致創(chuàng)建失敗。比如當創(chuàng)建虛擬機的時候,需要從認證,計算,網絡,鏡像,存儲等環(huán)節(jié)都走通,否則就不要想創(chuàng)建一個健康運行的虛擬機。下面的圖展示出了OpenStack的主要的幾個組件的調用關系。
消息隊列在OpenStack整個架構中扮演著至關重要的作用,正是因為OpenStack部署的靈活性、模塊的松耦合、架構的扁平化,反而使OpenStack更加依賴于消息隊列,所以消息隊列收發(fā)消息的性能和消息隊列的HA能力直接影響OpenStack的性能。最典型的場景就是如果當大量的監(jiān)控數(shù)據(jù)充斥著消息隊列時,平臺性能將呈現(xiàn)直線下滑。下圖展示出了OpenStack中消息隊列關系。
OpenStack相比,ZStack服務之間的交互調用要簡單很多,消息隊列為核心,所有服務交互都通過消息隊列,結構拓撲呈現(xiàn)星狀,簡單直接,因而核心出問題就會影響到大多數(shù)的功能。但全異步架構以及無狀態(tài)服務大大加強了平臺的健壯。ZStack的強一致性使其很簡單就可以實現(xiàn)HA,而無需像OpenStack那樣必須借助第三方工具實現(xiàn)HA高可用。下圖展示了ZStack的星形拓撲結構。
部署
安裝一直是OpenStack的幾大難題之一,尤其是對剛接觸到OpenStack的新人而言。這也客觀上提高了大家學習OpenStack云計算的技術門檻。筆者13年開始接觸OpenStack,有幸在公司申請到三臺高配的物理服務器一個月的使用權限。作為一個OpenStack小白,當時的規(guī)劃是一星期的安裝,一星期的架構學習,兩星期的綜合學習,最后變成一個月都是在安裝。想想,直到現(xiàn)在都是滿眼心酸淚。當然這都是早時期,現(xiàn)在針對部署與安裝也有了很多工具,比如puppet,ansible,容器化的kolla。雖然這些工具也大大簡化了OpenStack的部署安裝,但是依然卻無法解決openstack運維的復雜度,更不用說后續(xù)新版本的升級。
安裝部署以及升級對ZStack而言,從來都是簡單,快速,無感。ZStack自定義了ISO,封裝了網絡配置以及ZStack服務管理的命令,哪怕是一個運維小白也能夠很快安裝好一個ZSack平臺,不需要太長的學習周期。同時官方文檔以及案例都很齊全,有任何問題只要在官方群里留言都能獲取ZStack一線工程師快速的恢復。
計算、存儲與網絡
OpenStack的計算,存儲,網絡組件分別是nova,cinder,neutron。其中nova作為最早期的項目,其成熟度已經很高,穩(wěn)定性已經大大加強,功能也在不停的擴展。比如GPU支持,裸機管理,heat編排,容器編排,大數(shù)據(jù)計算等。cinder作為核心的塊存儲模塊在openstack中提供著至關重要的角色,后端支持ceph,lvm,glusterfs,nfs以及各種商業(yè)存儲,配置比較麻煩,需要更改配置文件,調試,重啟服務,甚至是更改代碼去適配對應的存儲。至于云主機默認是不支持增量快照的,只支持全量備份功能,針對傳統(tǒng)的系統(tǒng)盤龐大的情況,會影響效率,浪費磁盤空間。
neutron是網絡管理模塊,底層支持flat,vlan,vxlan,gre等網絡模式。neutron支持多種高級特性,比如vpn功能,負載均衡功能,HA功能,DVR功能??捎眯赃€是比較強的,而且針對很多廠商的網絡設備都有plugin支持。當然,neutron的效率,復雜性也是容易讓人詬病的,至今,已經有多次的代碼重構。當然,重構也不僅僅是因為代碼混亂復雜以及效率低的問題,同時也是為了能夠與openstack的其他項目,如容器的kuryr等項目更好的結合使用。
相對而言ZStack就會簡單容易很多。ZStack在一鍵安裝之后,無論是計算,存儲還是網絡,都只要在頁面控制臺點擊操作相應的資源,不涉及到任何后端復雜配置修改。配置修改實時生效,也不需要重啟任何服務。ZStack計算節(jié)點頁面添加,擁有動態(tài)擴容,實時監(jiān)控,自動愈合等多種特性,無需過多的人工參與。不管是開源的ceph,glusterf,nfs還是商業(yè)的Fusionstor,san光釬存儲,頁面直接添加。云主機與云盤都支持增量快照,全量備份功能,這一點與OpenStack完全相反。
ZStack的網絡模型是二層+三層,二層決定了是novlan,vlan,vxlan的類型,三層決定了是扁平,路由,vpc的類型。網絡靈活配置。同時,物理網卡支持復用,可以創(chuàng)建多個同種類型的二層網絡。支持分布式網絡,可以緩解dns的壓力與優(yōu)化東西向的流量,云路由網絡以及vpc網絡是使用優(yōu)化過的vyos作為平臺路由器,配置簡單,支持多種高級特性,可以支持熱遷移,支持分布式,穩(wěn)定性以及性能都不錯。雖然不支持HA功能,但是自愈能力強。vyos本質上是虛擬機,因此會占一定的宿主機資源,性能與物理設備相比較而言會有部分損耗。
運維監(jiān)控
早期的OpenStack云平臺監(jiān)控項目Ceilometer被一分為四(Ceilometer、Gnocchi、Aodh、Panko),各司其職!其中Ceilometer負責采集計量數(shù)據(jù)并加工預處理;Gnocchi主要用來提供資源索引和存儲時序計量數(shù)據(jù);Aodh主要提供預警和計量通知服務;Panko主要提供事件存儲服務。促成Ceilometer分裂的主要原因是性能開銷很大,并且隨著時間的推移性能瓶頸會愈加明顯直至奔潰。至于底層運維監(jiān)控可以使用zabbix,也可以集成到現(xiàn)有的ceilometer體系中。至今,OpenStack已經發(fā)展到Queens版本,監(jiān)控依然是其性能瓶頸之一。dashboard默認沒有集成監(jiān)控與告警,需要額外的自定義開發(fā)。
ZStack的監(jiān)控方案采用開源prometheus和influxdb,監(jiān)控信息存儲在prometheus數(shù)據(jù)庫,告警則使用prometheus自帶的alertmanager,至于事件以及審計等信息存儲在influxdb與mysql數(shù)據(jù)庫中。平臺擁有大多數(shù)的監(jiān)控項,支持自定義告警項添加,但暫時還未支持模板方式批量添加監(jiān)控告警項。借助于prometheus的高效率的函數(shù)計算以及匯聚,zstack也提供了監(jiān)控大屏和監(jiān)控top5的功能,有助于實時分析平臺的資源使用情況。當然,openstack也可以借助prometheus或者zabbix實現(xiàn)類似的功能。
其他
OpenStack是當前最流行,同時也是目前最為流行的開源云操作系統(tǒng)框架。OpenStack提供的不僅僅提供IAAS的服務,同時也提供PAAS服務,不管其孵化項目是否成熟,但至少擁有了一個開放,廉價的解決方案,比如數(shù)據(jù)庫服務,容器服務,大數(shù)據(jù)處理,裸機管理,計費管理等項目。國內的也有公有云等借助或者借鑒OpenStack,而實現(xiàn)了自身的安全穩(wěn)定的公有云平臺。而也有專業(yè)的OpenStack廠商實現(xiàn)了私有云或混合云平臺。近幾年來,OpenStack借助國家去IOE的策略,已經遍布多家銀行,政企以及運營商。
相對OpenStack,ZStack依然很年輕。其核心以是私有云與混合云為主,主要提供IAAS服務,核心代碼開源,提供企業(yè)版本。幾乎每個月都會發(fā)布一個新版本,但是升級基本不會存在任何問題,一句命令全部搞定,這一點是OpenStack遠遠比不上的。盡管如此,當前在某些方面,ZStack還是無法替代openstack相比,比如容器服務,數(shù)據(jù)庫服務,大數(shù)據(jù)管理等。至于以后ZStack是否會添加新功能,那要等以后再說。
總結
本文主要是從運維管理,計算,存儲,網絡等方面對OpenStack與ZStack進行了簡單的對比,兩者各有優(yōu)劣。筆者認為,OpenStack適合有研發(fā)能力,有較高的運維能力,有PAAS甚至是SAAS需要的組織。ZStack能夠提供一整套安全可靠,方便快捷的私有云或者混合云環(huán)境,ZStack更加適合資源有限,沒有辦法投入太多在研發(fā)以及運維上的組織。當然,這也并不是絕對的,利用ZStack或者OpenStack實現(xiàn)私有云都不乏案例。至于是選擇OpenStack還是ZStack還是要結合真實的需求。
作者:祝祥 新鈦云服運維架構師
十年運維經驗,曾任刻通云運維工程師、微燭云和某互聯(lián)網金融平臺首席運維架構師。擁有OpenStack、CCIE、阿里云、ZStack等技術認證。有上萬臺云主機,PB級別分布式存儲運維經驗。熟悉各種虛擬化技術,軟硬件,網絡,容器編排等技術,擁有python開發(fā)經驗。熱愛各種開源技術。
免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。