OpenStack發(fā)布Essex-3版本
OpenStack社區(qū)于1月26日號順利發(fā)布Essex-3(E3)。此次發(fā)布包含云計算控制中心Nova、鏡像服務Glance、認證服務Keystone和Dashboard項目Horizon,也包括對象存儲項目Swift,Swift1.4.5版本是1月12日發(fā)布的。目前OpenStack旗下主要就是以上五大項目,其中Keystone和Horizon是自Essex開始成為OpenStack核心項目的。
在去年9月22日發(fā)布Diablo之后,OpenStack社區(qū)隨即開始著手新版本的設計和開發(fā),新版本開發(fā)代號為Essex。Essex版本首次使用6個月的發(fā)布周期,而此前發(fā)布的四個版本:Austin、Bexar、Cactus、Diablo均是以3個月作為周期發(fā)布的。
去年10月6號OpenStack社區(qū)開始著手開發(fā)Essex版本以來,每5周迭代一個里程碑版本,直到1月26號順利完成Essex-3的發(fā)布,之前已經(jīng)經(jīng)歷了Essex-1和Essex-2,下一個里程碑Essex-4(E4)將于3月1日發(fā)布,如果一切順利,4月5日將正式發(fā)布Essex版本,具體日程詳見http://wiki.openstack.org/EssexReleaseSchedule。
從E3開始,新特性的開發(fā)已被凍結(jié),E4的主要工作就是bugfix,確保Essex現(xiàn)有功能的穩(wěn)定。那么現(xiàn)在來回顧一下Essex的主要新特性。
- 改進虛擬機狀態(tài)管理
當前虛擬機的狀態(tài)比較容易出錯,尤其是對那些需要長時間執(zhí)行的任務更是容易導致不確認性的結(jié)果。比如創(chuàng)建虛擬機過程中,一個常見的失敗將會導致狀態(tài)異常:因為這一步驟涉及很多操作,比如下載鏡像、暫時掛載鏡像以插入元數(shù)據(jù)、準備網(wǎng)絡環(huán)境、啟動虛擬機等等,任何一個步驟阻塞了,虛擬機的狀態(tài)就始終為building,直到你手工解除阻塞狀態(tài)或者去數(shù)據(jù)庫中手工變更該虛擬機狀態(tài)。新版本通過引入更加完善的有限狀態(tài)機等措施來解決這個問題。
- 支持主機聚合單元(host aggregates)
熟悉AWS的同學知道,AWS EC2按區(qū)域大小分兩類:Region和Availability zone,前者可以認為是一個地區(qū),后者可以認為是地區(qū)中的某個數(shù)據(jù)中心,而OpenStack的主機聚合單元可以認為是比AZ更小的單元,可以將同一個AZ中的實例分組,同一分組使用同一個網(wǎng)關(guān),同一組存儲等資源。這樣區(qū)分的主要目的是為了保證虛擬機在某個AZ中的高可用,比如,單AZ中某個VM 的宿主機需要維護,這時可以通過合適的虛機在線遷移技術(shù)遷移到另一個聚合單元中去。“聚合單元”是管理員界面的概念,對普通用戶透明。
- 全面支持Keystone認證
在Essex版本之前,Openstack的各個子項目比如Nova, Swift均使用各自獨立的認證系統(tǒng),而Essex版本將全面支持Keystone。Keystone是一款認證服務,有兩大功能:基于token的認證 (authentication,即authN)與和基于用戶-服務的授權(quán)(authorization,即authZ),可以連接外部認證系統(tǒng)如 LDAP。未來還將支持oAuth, SAML, openID。支持Keystone的同時,舊有認證功能將被棄用,相關(guān)代碼也即將刪除。
- 更加友好的Dashboard
Essex版本的Dashboard在用戶體驗上下了不少功夫,實現(xiàn)了由設計師Paul Tashima設計的原型:http://speakerdeck.com/u/paultashima/p/openstack-dashboard-wireframes-10142011
- 安全性改進
- API默認支持https
- 對OpenStack中組件之間的消息通訊加密
- 數(shù)據(jù)庫權(quán)限分離,每個API Server使用自己的數(shù)據(jù)庫賬號,并且只能管理自己API所關(guān)心的數(shù)據(jù)表。
- 支持Volume的快照備份API
AWS的EBS做快照時會把快照數(shù)據(jù)增量備份到S3,而Nova Volume目前只支持對存儲做快照,快照數(shù)據(jù)仍然存儲在volume節(jié)點的本地,而Essex將新增API支持把快照數(shù)據(jù)保存到OpenStack的S3實現(xiàn)——Swift中去。
- 支持從Volume啟動
Nova-Volume是Amazon EBS在OpenStack中的實現(xiàn),雖然不如EBS功能強大,但具備EBS基本功能,如動態(tài)分配、虛擬機掛載、快照等。支持從Volume啟動意味著虛擬機根分區(qū)不需要本地存儲,為以后的虛擬機遷移提供了方便。
Essex還做了一個重要決定,刪除了對Windows Hyper-V支持的相關(guān)代碼。事情的起因是OpenStack開發(fā)者在郵件列表一封標題為“Essex dead wood cutting”的提議:
考慮到Nova即將進入Feature-Freeze階段,是時候清理一些充滿bug并且沒有維護,或者根本沒有用到的代碼。”
其中就提到兩個建議:
Ajaxterm (unmaintained, security issues, replaced by VNC console)
Hyper-V support (known broken and unmaintained)
其中刪除Hyper-V的建議得到了大多數(shù)開發(fā)者的討論和支持。
官方changelog中給出了以下原因:
Hyper- V已經(jīng)持續(xù)多個版本沒有維護了,單元測試也很粗糙,幾乎沒有辦法去測試它,也沒有人計劃進一步維護相關(guān)代碼。在很長一段時間內(nèi),我們沒有收到任何反饋表明 它還能正常工作。另外,有許多接口更新已經(jīng)體現(xiàn)到其它的Hypervisor驅(qū)動中,只有Hyper-V一直沒有進展。即使它能夠工作,也仍只能是其它驅(qū)動功能的一個子集。
另一個原因也許是,目前還沒有基于Windows的IaaS云計算云臺采用OpenStack,Windows的授權(quán)可能也是一個問題。因為Nova的的設計非常模塊化,所以單一功能的刪減不會對其它系統(tǒng)造成影響。
新特性當然令人期待,但是目前OpenStack飽受詬病的就是bug太多,系統(tǒng)不夠穩(wěn)定,也很讓初學者惱怒。針對這種情況,OpenStack的發(fā)行經(jīng)理(Release Manager)Thierry Carrez在他的博文Making more solid OpenStack releases中也在呼吁開發(fā)者重視維護,而不是一味只管開發(fā)新特性。他指出,目前OpenStack社區(qū)在新版本發(fā)行上還存在以下問題:
- 開發(fā)者對于bugfix缺少關(guān)注
- 自動化測試還不夠充分,未能有效地捕獲異常
- 缺少bug分類,只有很少的人在做bug整理、分類和制定優(yōu)化級,導致一些最需要受到關(guān)注的bug淹沒在大量的噪音之中。
OpenStack于2月2號舉辦了一次線下的Bug消滅活動——Bug Squashing Day,該活動鼓勵大家參與bug整理、bug分類和bugfix等工作,效果很明顯,當天就消滅了總bugs數(shù)的20%~30%。
為了保證Essex版本質(zhì)量,社區(qū)也預留的足夠的時間——10周,來做bugfix工作,而Diablo發(fā)行前只有4周的時間。 相信Essex的發(fā)布會給云計算業(yè)界帶到更加深遠的影響,也希望更多的國內(nèi)有識之士參與到OpenStack社區(qū)的開發(fā)中來。