圖1 單進程GR

主備進程的GR。提供備份進程的運行,實時接收主進程的狀態(tài),以隨時準備接替主進程運行。當系統(tǒng)發(fā)現(xiàn)主進程故障后自動重啟,但無需等待其重啟,備進程將升級為“主”進程,直接接替工作。當故障進程重啟完成后,將工作在“備”狀態(tài),以備進程身份運行。這種方式相對于單進程的GR,恢復時間更短,可用性更高,但占用資源稍多,一般分布式系統(tǒng)的主控板進程使用此方式(如圖2所示,active為“主”,standby為“備”)。

圖2 主備進程的GR

通過支持進程備份,使得系統(tǒng)中的各進程可以自行進行平滑的重啟恢復,而在過去新程序從啟動到正常工作需要一段時間,在某些情況下可能會很長。在這段時間內(nèi),由于程序還不能夠正常工作,無法完成同外界設備的交互,會引起網(wǎng)絡上的振蕩,造成流量中斷。而現(xiàn)在工作在“備”狀態(tài)的程序“時刻準備著”接替 “主”用程序,一旦發(fā)現(xiàn)異常,立即切換工作狀態(tài),可以大大縮短切換時間,讓外界幾乎感覺不到設備曾經(jīng)“切換過”。這不僅提高了系統(tǒng)可用性,而且不會對網(wǎng)絡上其他節(jié)點的協(xié)議運行造成影響。

三、 系統(tǒng)級高可用性

系統(tǒng)級的高可靠性在網(wǎng)絡操作系統(tǒng)中是比較早產(chǎn)生的技術(shù),即同時運行主系統(tǒng)和冗余備份系統(tǒng),當主系統(tǒng)發(fā)生故障時,自動進行倒換,備系統(tǒng)直接接替其工作。原來的主系統(tǒng)重啟后,重新以備系統(tǒng)身份運行。

以前,系統(tǒng)級的倒換基本上是解決軟件故障的唯一辦法,隨著進程級GR功能的出現(xiàn),大部分的軟件故障可以通過進程級的GR修復,無需進行整系統(tǒng)的倒換,這樣大大減小了需要系統(tǒng)級倒換的場景,提高了整個系統(tǒng)的可用性。這就像醫(yī)學上新出現(xiàn)的微創(chuàng)手術(shù),有效降低了對人體的整個系統(tǒng)的損傷和影響。

另外隨著技術(shù)的發(fā)展,目前的主備系統(tǒng)與傳統(tǒng)意義上的主備系統(tǒng)也有很大區(qū)別。例如Comware上實現(xiàn)了控制平面分布式功能,將控制進程的主進程運行在不同的控制單元上,當一個主控單元發(fā)生故障時,只有運行在故障控制單元上的主進程才會受到影響。這樣大大減小了系統(tǒng)級倒換對整個系統(tǒng)的影響范圍(如圖3所示)。

圖3 控制平面分布式

隨著虛擬化技術(shù)的發(fā)展,網(wǎng)絡操作系統(tǒng)可以支持將一個設備虛擬成多個邏輯設備使用,每個控制節(jié)點被虛擬成了多個虛擬控制系統(tǒng),在一個虛擬系統(tǒng)出現(xiàn)故障需要整個系統(tǒng)倒換時,也不會影響其它虛擬設備的運行,進一步減少了系統(tǒng)級倒換對設備的影響。

四、 ISSU不中斷業(yè)務升級

ISSU(In-Service Software Upgrade)即不中斷業(yè)務升級。與出現(xiàn)故障的不可預知不同,系統(tǒng)軟件升級是一種人為因素,由于全部在操作員的控制下進行,因此只要實現(xiàn)合理,可以做到比出現(xiàn)故障更小的系統(tǒng)沖擊。

新一代網(wǎng)絡操作系統(tǒng)實現(xiàn)了通過依次升級各板保證升級過程的平穩(wěn)、可靠進行。通過主控板的交替升級,始終保障至少一個主控系統(tǒng)對整個系統(tǒng)進行控制。如圖4所示,首先對備板進行升級,完成后進行主備倒換,同時完成主板及各個接口板的升級,在此過程中均可以進行回退,恢復使用原有版本。如果確定使用新的版本,最后需要進行確認,完成整個升級過程。

圖4 ISSU過程

·補丁升級

補丁的升級是對系統(tǒng)影響最小的方式,對系統(tǒng)基本沒有影響,但補丁只適用于修改個別缺陷。真正的ISSU應做到版本升級時的不中斷業(yè)務。

·增量升級

同樣受益于模塊化的設計,多數(shù)情況下的升級并不需要重啟整個軟件,只需要升級受影響的模塊,在系統(tǒng)運行過程中完成軟件升級,這樣使得上面 ISSU過程中的各個步驟對系統(tǒng)沖擊更小,達到更加完美的ISSU。H3C將Comware實現(xiàn)的這種升級稱為增量升級,自動比較出升級版本與當前版本的差異,如果差異不涉及核心部分,可以在系統(tǒng)運行過程中直接進行差異部分的升級,否則才進行整個軟件的重啟升級。在增量升級時即使需要升級的進程正在運行,也可以通過進程級的GR完成進程軟件升級。

另外為了方便用戶使用,還可以將整個軟件系統(tǒng)分為多個軟件包,即包含一個基礎(chǔ)軟件包和多個功能包。這樣一般的升級只需要加載功能包,使得升級更有針對性,減少了對系統(tǒng)不必要的影響

·核心部分整版本升級

當然如果升級涉及軟件核心部分,每個單板不可避免停止整個軟件運行開始運行新版本軟件的過程,如何才能保障這個過程中被升級單板的業(yè)務不中斷?這是ISSU中很關(guān)鍵又是最困難的一點。傳統(tǒng)的技術(shù)都是盡量將這個時間縮短,但無論縮短到什么程度,硬件轉(zhuǎn)發(fā)都要經(jīng)歷一次中斷才能完成新老版本軟件控制權(quán)的交替。以Comware為例,最新采用了一種軟重啟技術(shù),從根本上解決了這個問題。在軟件升級過程中,硬件狀態(tài)一直保持不變,按照原有轉(zhuǎn)發(fā)表項進行數(shù)據(jù)轉(zhuǎn)發(fā)。當新版本軟件開始運行后,通過版本間兼容的數(shù)據(jù)恢復,繼續(xù)程序的運行,直接接管對硬件的控制。即在整個升級過程中,轉(zhuǎn)發(fā)業(yè)務一直持續(xù)沒有間斷的進行。更進一步,為了防止升級過程中由于控制程序短暫停止工作,造成不必要的網(wǎng)絡動蕩,Comware還增加了控制代理功能,在整個系統(tǒng)中選擇一個沒有正在升級的單板啟動控制代理服務,對升級軟件中時間敏感的控制邏輯,臨時交由代理服務幫助處理。通過以上的軟重啟技術(shù),使得整個升級過程轉(zhuǎn)發(fā)業(yè)務不中斷,控制協(xié)議不震蕩。

五、 結(jié)束語

通過模塊化軟件結(jié)構(gòu)以及進程級GR、軟重啟等新技術(shù)的引入,新一代網(wǎng)絡操作系統(tǒng)將提供更好的可靠性及ISSU能力。

分享到

zhangcun

相關(guān)推薦