時間就到了2016年。因為公司的項目稍微涉及到了一些OpenStack的內(nèi)容,所以又找了一些資料來看形用。只是安裝網(wǎng)絡(luò)節(jié)點(diǎn)/控制節(jié)點(diǎn)/計算節(jié)點(diǎn),就花了很多的時間证杭。其實如果本身項目的文檔寫得很完善田度,官方文檔肯定是最主要的參考資料。當(dāng)然解愤,安裝的過程中一定會遇到形形色色的問題镇饺,甚至有的問題重裝一遍就莫名其妙地不在了,適應(yīng)就好送讲。另外還要狠狠地吐槽一下百度奸笤,能搜到的有參考意義的文檔實在有限,還好有谷歌哼鬓〖嘤遥總的來說,如果所有的功能尤其是網(wǎng)絡(luò)通信都虛擬化了异希,其實也就沒有我們交換機(jī)什么事情了健盒。好在找到了overlay封裝和解封裝,軟件處理速度一般來說沒有ASIC處理快這個點(diǎn)称簿,成為我們宣傳的一大亮點(diǎn)味榛。
做了快一年的SDN/OpenFlow,有一點(diǎn)要被洗腦的感覺予跌。覺得傳統(tǒng)的路由交換都不如SDN高大上搏色。雖然知道有“首包上controller”,流表條目數(shù)等諸多限制券册,還是很堅持這一點(diǎn)频轿,直到接觸到Atrium這個project。
Atrium本質(zhì)上就是一個controller配合Quagga來使用烁焙。Quagga負(fù)責(zé)和外部的設(shè)備做BGP協(xié)議交互航邢,然后將相關(guān)信息通告給控制器,翻譯成流表形式下發(fā)到交換機(jī)骄蝇,從而實現(xiàn)兩邊的主機(jī)通信膳殷。確實,完全沒有必要把BGP的協(xié)議棧移植到controller上九火,而可以把開源的Quagga拿來直接集成赚窃。畢竟目前大部分網(wǎng)絡(luò)還是基于傳統(tǒng)的路由協(xié)議册招,SDN化是一個過程,期間肯定還要又互聯(lián)互通的需求勒极,這可能也是Atrium這個項目的初衷是掰。
我們上一代交換機(jī),曾經(jīng)提交過適配的driver辱匿〖矗可是Atrium的版本演化到16版本,處理流程發(fā)生了很大的變化匾七。尤其是我們新一代交換機(jī)需要重新編寫適配的driver絮短。調(diào)用指定的driver,這個很簡單昨忆,修改一下onos-driver.xml就好丁频。而driver文件,是用Java寫的扔嵌。作為沒用過Java的人限府,剛接下這個事情,還是心里沒底痢缎。好在Atrium提供了一份softer-switch的driver胁勺,可以用來參考。而且它本身用到的語法也并不復(fù)雜独旷。經(jīng)歷過多次修改-編譯-再修改-再編譯之后署穗,終于流表下發(fā)正確,主機(jī)可以通信了嵌洼!那一刻案疲,真的非常非常地開心!
在驗證自己家產(chǎn)品之余麻养,肯定還是要關(guān)注行業(yè)內(nèi)其它廠商的設(shè)備褐啡。后來發(fā)現(xiàn)P家的交換機(jī)porting OVS非常徹底,而且支持hybrid鳖昌,就抱著試試看的想法向公司打了申請备畦。真的沒想到批下來了,一周后许昨,親手把剛采購的P上了機(jī)架懂盐。接下來一周多的時間,就是查文檔糕档,實際操作莉恼,遇到問題騷擾P的客服小哥(后來可能是被我煩的都不怎么回復(fù)了……)。既有被P的一些亮點(diǎn)折服,也發(fā)現(xiàn)了P的一些問題俐银。
比較是一種很好的學(xué)習(xí)方法尿背。有句話說:“沒有比較就沒有傷害”。我更推崇的是“沒有比較就沒有進(jìn)步”悉患。就像研究生的時候“拼湊論文”残家,如果你只拿這別人寫得一篇論文來看榆俺,你一定是抄襲的售躁。如果你拿來了十篇論文來參考,總歸能比較出一些優(yōu)劣茴晋,看出一些行業(yè)的共性和趨勢陪捷。套用到現(xiàn)在的工作中,整天搞自己的一套诺擅,漸漸思路就會被束縛市袖。而通過和其它友商產(chǎn)品的比較,才能找出不足烁涌,也能堅定對自己產(chǎn)品的信心苍碟。
除了完善內(nèi)部產(chǎn)品測試流程之外,在積累了一些和各種控制器互通的經(jīng)驗后撮执,我又主動開始編寫一份相關(guān)文檔微峰,就是將交換機(jī)和Ryu/ONOS/OpenDaylight如何互通,如何通過WebUI/CLI/REST操作flow/group/meter的步驟記錄下來抒钱,甚至放了很多的截圖上去蜓肆。寫完后不久,就開始有很多客戶陸陸續(xù)續(xù)來詢問相關(guān)的問題谋币。把這個文檔先丟過去仗扬,節(jié)省了我們很多support的時間和精力蕾额。這些不光是個人的積累,對于公司來說也是有意義的事情诅蝶。