由UnitedStack網(wǎng)絡(luò)組提出并創(chuàng)建的Steth項(xiàng)目,在上周日(1月17日)正式并入Big Tent,成為OpenStack正式項(xiàng)目。該項(xiàng)目主要針對(duì)網(wǎng)絡(luò)故障排查和部署前的硬件網(wǎng)絡(luò)環(huán)境檢查。
這是自Big Tent模式確認(rèn)以來(lái),UnitedStack有云第一個(gè)并入Big Tent的項(xiàng)目,也是繼Scalpels項(xiàng)目和pandaman之后,來(lái)自中國(guó)的項(xiàng)目再次被社區(qū)接納。作為OpenStack開源社區(qū)的一員,我們既是受益者,也是社區(qū)的建設(shè)者和所有人。
Steth項(xiàng)目因何而來(lái)?解救忙碌的網(wǎng)絡(luò)工程師
Steth項(xiàng)目是怎么出現(xiàn)的?因?yàn)榫W(wǎng)絡(luò)工程師實(shí)在太累了。這種感覺不是一個(gè)人,而是在UnitedStack有云網(wǎng)絡(luò)團(tuán)隊(duì)每個(gè)人的認(rèn)知。
“我們每周都會(huì)有新項(xiàng)目或者新POC,很多時(shí)間都花在了調(diào)試硬件網(wǎng)絡(luò)的連通性或者性能上。Steth的初衷就是為了解決這些問(wèn)題。”Steth項(xiàng)目的核心貢獻(xiàn)者、UnitedStack有云SDN網(wǎng)絡(luò)部工程師萇智如是說(shuō)。
Steth項(xiàng)目的核心貢獻(xiàn)者、UnitedStack有云SDN網(wǎng)絡(luò)部工程師萇智
當(dāng)前,UnitedStack有云業(yè)務(wù)爆發(fā)式增長(zhǎng),部署規(guī)模逐步擴(kuò)大,背后是研發(fā)和支持團(tuán)隊(duì)高效運(yùn)轉(zhuǎn)和鼎力支持。但是,讓網(wǎng)絡(luò)工程師最懊惱的是在部署過(guò)程中遇到的很多問(wèn)題和Neutron 沒有任何關(guān)系。比如 Vlan 配錯(cuò)了、交換機(jī)上Vlan 沒放行、Floating IP 網(wǎng)關(guān)沒有起、甚至用于 VxLan 隧道的 Endpoint IP配錯(cuò)了,此外一些奇怪的現(xiàn)網(wǎng)還會(huì)帶來(lái)一些例如策略路由造成的簡(jiǎn)單檢查無(wú)法暴露但虛擬機(jī)卻無(wú)法發(fā)送廣播報(bào)文、光纖質(zhì)量引發(fā)的跨機(jī)柜通信帶寬異常等等問(wèn)題。
這些“簡(jiǎn)單的小問(wèn)題”在傳統(tǒng)網(wǎng)絡(luò)中也會(huì)遇到一些,只是當(dāng)網(wǎng)絡(luò)遇到OpenStack,問(wèn)題疊加,就更難診斷。但是這些問(wèn)題會(huì)占用工程師的大量時(shí)間,需要逐一排查解決。
Steth項(xiàng)目的核心貢獻(xiàn)者、UnitedStack有云SDN網(wǎng)絡(luò)部工程師姚威
“對(duì)于新部署的Region,我們總會(huì)遇到很多莫名的網(wǎng)絡(luò)配置或性能問(wèn)題,Steth能夠迅速抓包分析數(shù)據(jù)包路徑,定位問(wèn)題所在;對(duì)于生產(chǎn)Region,可能會(huì)被虛擬網(wǎng)絡(luò)連通性困擾,Steth能夠在虛擬設(shè)備上發(fā)包快速模擬問(wèn)題現(xiàn)場(chǎng)。”Steth項(xiàng)目的核心貢獻(xiàn)者、UnitedStack有云SDN網(wǎng)絡(luò)部工程師姚威如是說(shuō),正是這樣的愿景誕生了Steth。
Steth項(xiàng)目解析 如何完成網(wǎng)絡(luò)檢查
網(wǎng)絡(luò)的的穩(wěn)定性是是OpenStack云平臺(tái)穩(wěn)定可用的基石。Steth的出發(fā)點(diǎn)很簡(jiǎn)單,就是在Neutron 內(nèi)置有一個(gè) sanity test,用于檢查本機(jī)的情況,Steth 可以作為 Sanity 的分布式補(bǔ)充,檢查 Neutron 運(yùn)行的整個(gè)環(huán)境。
具體來(lái)說(shuō),Steth集成了一系列實(shí)用的腳本和第三方工具(包括iperf、tcpdump等),并能夠模擬虛擬機(jī)發(fā)出 DHCP 請(qǐng)求、ARP 請(qǐng)求,幫助網(wǎng)絡(luò)運(yùn)營(yíng)者實(shí)時(shí)追蹤VM網(wǎng)絡(luò)的狀態(tài)。
Steth采用了多節(jié)點(diǎn)架構(gòu)
在上面的架構(gòu)圖中,可以看到Steth是無(wú)狀態(tài)的CLI和控制器,通過(guò) Agent可以讀取配置文檔。通過(guò)與OpenStack的交互,在需要時(shí)向相關(guān)的Agent發(fā)送RPC請(qǐng)求。此外,Steth的Agent需要安裝在每一個(gè)計(jì)算節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn)之上,Steth的控制器中的配置文件為其指定IP地址。“通過(guò)Steth我們可以使用CLI遠(yuǎn)程調(diào)用運(yùn)行在個(gè)節(jié)點(diǎn)的Steth-Agent提供的API,快速定位網(wǎng)絡(luò)問(wèn)題,為運(yùn)維人員提供準(zhǔn)確的排查思路,從而節(jié)省運(yùn)維人員花費(fèi)在定位網(wǎng)絡(luò)問(wèn)題上的時(shí)間。”萇智解釋道。
需要指出的是,Steth項(xiàng)目除了可以應(yīng)用在OpenStack環(huán)境以外,還可以使用在其他的分布式網(wǎng)絡(luò)環(huán)境中。這個(gè)監(jiān)測(cè)工具,基于C/S模式運(yùn)行,能夠在OpenStack網(wǎng)絡(luò)環(huán)境部署前或者運(yùn)營(yíng)過(guò)程中對(duì)網(wǎng)絡(luò)問(wèn)題進(jìn)行精準(zhǔn)定位。目前,Steth僅適用于ML2網(wǎng)絡(luò)。
網(wǎng)絡(luò)監(jiān)測(cè) 為什么不能借用其他項(xiàng)目?
如果說(shuō)自動(dòng)化是解決大規(guī)模部署之后,網(wǎng)絡(luò)監(jiān)測(cè)的必由之路,那么在OpenStack的眾多項(xiàng)目中是否有一款適合的呢?事實(shí)上,找成熟項(xiàng)目也是UnitedStack有云網(wǎng)絡(luò)組最初的想法,但是很快大家就發(fā)現(xiàn),這條路行不通。
Steth項(xiàng)目的核心貢獻(xiàn)者、UnitedStack有云SDN網(wǎng)絡(luò)部門PTL 王為
“在設(shè)計(jì)Steth之前,我們考察了Zabbix和Scalpals等同類工具。但感覺現(xiàn)有的工具仍然無(wú)法滿足我們?cè)诖笠?guī)模部署過(guò)程中的網(wǎng)絡(luò)運(yùn)維需求。”Steth項(xiàng)目的核心貢獻(xiàn)者、UnitedStack有云SDN網(wǎng)絡(luò)部PTL王為說(shuō),“實(shí)際上,Mirantis也同樣遇到了網(wǎng)絡(luò)自動(dòng)化運(yùn)維的問(wèn)題,他們?cè)贔UEL中集成了 network-checker,這個(gè)工具后來(lái)被剝離出來(lái)成為獨(dú)立項(xiàng)目。但network-checker相對(duì)簡(jiǎn)單、代碼質(zhì)量和把控比較糟糕,無(wú)法滿足我們的需求。Zabbix的技術(shù)架構(gòu)相對(duì)僵化,Scalpals在解決新集群部署方面還有一些局限。”
既然沒有合適的項(xiàng)目,那我們就開發(fā)自己的項(xiàng)目并且快速開源,幫助每一個(gè)業(yè)務(wù)快速增長(zhǎng)的公司擺脫疲于奔命的現(xiàn)狀吧。姚威說(shuō):“我們想要提供一條OpenStack網(wǎng)絡(luò)的無(wú)痛部署和運(yùn)維的途徑,節(jié)約老手時(shí)間,免除新手煩惱。”
花絮 Steth項(xiàng)目并入BigTent
在正式解讀了Steth項(xiàng)目之后,創(chuàng)造這一項(xiàng)目的UnitedStack有云網(wǎng)絡(luò)組集體登場(chǎng),熱烈歡迎
Steth項(xiàng)目的核心貢獻(xiàn):王為、萇智、姚威(右起)
Steth項(xiàng)目的審閱時(shí)間非常短,只有四天的時(shí)間,期間還因?yàn)橹孛膯?wèn)題耽誤了一天半。因?yàn)镾teth的使命正是社區(qū)亟待解決的問(wèn)題,所以快速得到了認(rèn)可。
除了Steth項(xiàng)目,UnitedStack有云還有另外一個(gè)項(xiàng)目正在準(zhǔn)備向社區(qū)提交,敬請(qǐng)期待好消息。
此外,Steth項(xiàng)目從成立到現(xiàn)在只有不到兩個(gè)月的時(shí)間,它還有很多不成熟的地方。我們希望有更多的OpenStack開發(fā)者可以加入,讓我們共同打造一個(gè)快速交付,持續(xù)運(yùn)維的OpenStack網(wǎng)絡(luò)!