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