升級版本
倒退十年,那時還不叫數(shù)據(jù)中心,叫數(shù)據(jù)機房,由于互聯(lián)網(wǎng)業(yè)務本身就不夠發(fā)達,人們對業(yè)務的中斷不敏感。這時重啟下設備,斷開十幾分鐘都是可以接受的,那時的網(wǎng)絡能用就行,對速度和中斷并不敏感,網(wǎng)絡在人們的生活中可有可無。如果網(wǎng)絡設備出現(xiàn)了問題,有了軟件BUG,直接提供修改的軟件版本,設備加載新的解決問題的版本,重啟解決問題。人們對網(wǎng)絡的要求從來沒有像現(xiàn)在這樣如此依賴,所以有了問題直接更換新的軟件版本解決問題,是比較徹底和快捷的方式,很少有人想到用其它方式來解決問題。不過,隨著網(wǎng)絡業(yè)務的蓬勃發(fā)展,人們對網(wǎng)絡的要求在不斷提升,尤其是24小時全可在線訪問的要求,這樣通過重啟設備去更換新版本的操作是很多數(shù)據(jù)中心客戶都無法接受的,萬不得已才會采用這種方法去解決軟件BUG。如此,便出現(xiàn)了其它一些更好的解決軟件BUG的方式。
加載補丁
打補丁解決現(xiàn)有網(wǎng)絡設備軟件版本的問題是目前最為通用的做法,對于正在運行的網(wǎng)絡設備,直接打一個熱補丁,將有問題的程序函數(shù)用新的函數(shù)替換掉,從而解決問題。這種方式不僅可以解決軟件存在的BUG,又不影響設備運行,這種做法廣為接受。不過,補丁方式不能解決所有的問題,是有條件的。首先,補丁解決的問題是有限的,如果補丁修改的函數(shù)數(shù)量過多,會導致補丁規(guī)模過大,無法制作或者會引入更多問題;其次,有些軟件BUG涉及到軟件的初始化或者是宏定義的函數(shù),這些地方必須要重啟設備,軟件重新初始化才能調(diào)到,這樣無法通過熱補丁的方式解決問題,只能通過冷補丁,也就是打上補丁還需要將設備重啟,然后補丁才能生效,冷補丁方式雖然能解決問題,但還是要重啟設備;第三,補丁增加了系統(tǒng)風險,補丁是通過很多鉤子函數(shù),在原有軟件版本里直接調(diào)用補丁里的新函數(shù),如果加載的補丁過多,補丁摞補丁,就要考慮補丁之間的影響,以及對軟件版本的影響。當一個軟件版本的補丁數(shù)量超過十個時,就不宜再增加了,太多反而會降低整個設備的運行可靠性。
不中斷業(yè)務升級版本
顯然,補丁不是萬能的,很多軟件BUG并不能通過補丁全搞定。這時還是要想如何才能升級版本的時候,能不中斷業(yè)務,于是就有了不中斷業(yè)務升級技術(shù)。這種升級軟件版本方式是有條件的,就是設備必須是堆疊環(huán)境或者主備環(huán)境,運行軟件版本的設備業(yè)務有備份,在升級整體設備的部分板卡或功能模塊時,業(yè)務切換到其它部分,保持繼續(xù)運行。當完成版本升級后,再將業(yè)務切回,然后再升級備用板卡或功能模塊,最終完成整體設備的軟件版本升級。另外,解決問題的軟件版本和原有版本差異不能太大,否則兩個版本就無法做兼容升級,不兼容版本的升級依然要中斷業(yè)務,所以解決問題的版本和原有版本差異性不能太大。
自動化升級補丁
現(xiàn)在的補丁或者是版本都需要人工去操作,像運營商的龐大網(wǎng)絡,一個城域網(wǎng)就可能有上千臺設備,要一一進行補丁升級,工作量巨大,且工作內(nèi)容重復,枯燥乏味。我們平時用的PC操作系統(tǒng),可以看到經(jīng)常提示加載補丁,只要PC連接互聯(lián)網(wǎng),就可以自動給PC下載,然后在重啟PC時,自動加載補丁,解決原有系統(tǒng)的軟件BUG。這種方式在數(shù)據(jù)中心網(wǎng)絡中也可以效仿,但有所不同。我們用的PC在重啟的時候就加載補丁,而數(shù)據(jù)中心網(wǎng)絡則不能隨便重啟,所以補丁加載的時候就會自動打上,自動生效。在數(shù)據(jù)中心里部署一個服務器,如果有網(wǎng)絡設備補丁需要打,就將補丁放在服務器上,服務器會自動同步所有網(wǎng)絡里的設備,然后判斷是否符合加載補丁要求,如果沒有問題則自動將補丁傳給設備,設備接受到這個補丁后,完成自動加載,如此可以大大節(jié)省打補丁的工作量,這種方式應該是未來我們所追求的方式。同時,未來的網(wǎng)絡設備要將軟件版本內(nèi)部的各個功能模塊做隔離,相互盡量沒有關(guān)聯(lián)和影響,這樣一個功能模塊有問題,只改這個功能模塊基本靠補丁就能搞定,這個補丁甚至可以是對整個功能模塊的修改。這樣加載這個補丁時,可以對其它功能模塊的業(yè)務不造成任何影響,只有這個功能模塊可能需要重新初始化一下,這樣對業(yè)務的影響面就小得多,甚至微乎其微。
數(shù)據(jù)中心網(wǎng)絡設備軟件也在一直找尋更好的解決軟件BUG的方法,相信方法會越來越好,在不影響業(yè)務的前提下,將網(wǎng)絡設備的軟件BUG自動修復。