摘 要:采用硬件冗余和軟件容錯相結合、熱備與雙工相結合的工作方式代替傳統的容錯熱備份方式,提出了一種適于核心路由器主控系統的容錯設計方案。分析了主控容錯系統設計中的基本問題,并針對這些問題提出了了該容錯系統的具體實現方案。測試結果表明,采用了該設計方案的主控軟件系統具有很好的容錯性能和故障恢復能力,能夠滿足核心路由器對主控軟件系統的高可用性要求。
關鍵詞:主控系統;核心路由器;容錯;熱備份;硬件冗余
[b][align=center]One Kind of Fault-Tolerant Design Proposal Suitable for the Core
Router Muster Control System
Wang Xin-min[/align][/b]
Abstract: With the hardware redundancy and software fault-tolerant unifies, hot backup and the duplex working ways which replaced the traditional the fault-tolerant hot backup ways, proposed one kind of fault-tolerant design proposal suitable for the core router muster control system. Analyzed the basic question of muster control system in the fault-tolerant design, and aimed at these questions to propose this fault-tolerant system concrete realization plan. The test result indicated that, used this design proposal ,the muster control software system has good fault-tolerant performance and the breakdown restores ability, could satisfy the high usability request of the muster control software system in core router.
Keyword: muster control ;core router; fault tolerant; hot backup; hardware redundancy
1 前言
隨著高速網絡的迅速發展以及人們對網絡的依賴性越來越來高,主干網絡的可靠性顯得尤為重要。并且隨著國家對網絡基礎建設的投入不斷加大力度,以及對網絡核心設備國產化的堅定決心,促使了網絡核心設備的研發在國內獲得了迅速發展,并取得了一定的研究成果。但與國外一些知名廠商和研究機構設計的設備還是有一定差距,這種差距不僅僅是在功能上,更多的是體現在諸如可靠性、容錯性、擴展性等等這些方面,而這些方面恰恰能影響到該設備所能提供的服務質量。因此本文針對網絡核心設備——核心路由器上主控系統高容錯性設計做了一定研究與探討,并提出了一種適于核心路由器主控系統的高容錯性實現方案。
2 高可靠性技術
高可靠性是指可持續的、具有一致性和完整性的數據訪問。高可用性系統通過提高服務器可靠性、磁盤可靠性、應用程序可靠性來達到高可用性的要求。具體實現可以通過共享磁盤陣列來提高磁盤可靠性,使用冗余網絡來提高網絡可靠性,使用合作的服務器來提高服務器的可靠性,通過應用程序的探測與有效恢復來提高應用程序的可靠性。
路由器作為計算機網絡的核心設備,其高可用性至關重要。對于路由器來說要實現高可用性,從硬件來看,要有一個很好的體系結構,各種冗余非常完善。關鍵部件如路由引擎和交換矩陣要有冗余。從軟件來看,其自身要強壯,另外在遇到更換硬件、系統升級、增加板卡和改變鏈路等網絡調整時,軟件要有能力保證整個網絡業務不受局部調整的影響,讓整個網絡體現出非常高的可用性,它要保證路由引擎進行不丟包的切換。主引擎發生故障,切換到副引擎時不丟包,平滑切換,否則硬件的冗余就沒有意義,是假冗余。另外還要保證平穩重啟。通常當路由重啟時,由此產生的路由重新計算和網絡范圍的路由更新會消耗掉處理資源,并有可能出現黑洞或瞬時轉發循環形式的非預期網絡行為。而平穩重啟會避免這種情況的發生。
對于網絡設備可用性的研究,目前主要集中在設備生產廠家進行,技術專用性和保密性強,可參考的設計細節不多。不過對于可維修的系統,衡量其可靠性的指標叫做可用度,相應的理論又叫做可用性理論。核心路由器就是一個可維修的系統。根據系統的可靠度,從高到低可以分為四個檔次:連續可用性系統(Continuous Availability System),容錯系統(Fault Tolerance Syetem),高可用系統(High Availability System),容災系統(Disaster Tolerance System)。前兩種一般用于航天和軍工等領域,對于核心路由器,要求達到高可用系統。系統可用性是指在容許的極限故障數目內,系統按規范成功運行的概率。
可用性理論的研究主要包括兩個范疇:提高元部件可靠性達到系統可靠的避錯技術和使用給定器件構成高可靠性系統的容錯技術。目前元部件的可靠性研究已十分成熟,并在工業中廣泛采用。而且對于一個系統,無論采用多少避錯設計方法,總不能保證永遠不出錯。所以容錯技術成為了提高系統可用性的研究熱點。目前,核心路由器的可靠性實現就普遍采用了這種技術。
3 核心路由器的主控系統容錯系統設計
3.1主控系統容錯系統設計中的基本問題
基于容錯需求的考慮,當主控系統出現軟硬件故障時路由器仍要正常工作,故硬件配置方面采用1+1冗余設計,配備主用(Active)和備用(Standby)兩塊主控板,構建雙主控熱備容錯系統。當主用主控板發生故障,系統自動進行主備切換,由備用主控板接替主用板工作,保證業務的正常運行。當主用模塊發生嚴重故障或主用復位時,將觸發自動倒換方式,及時倒換到備用板。這種1+1冗余設計可擴展到N+1冗余設計。
整個切換過程要保證對用戶是透明的,需要考慮的重點和實現的難點在于主備系統間數據庫一致性問題、平滑切換技術的實現和故障監測機制。
l 數據庫一致性問題
路由器主控板上有系統實時運行記錄的數據,因此正常工作過程中需要進行實時的系統數據備份,以保證做到主用和備用上的數據庫一致,否則在主備切換時,備用就不能正常接替主用。針對該問題,在高可用性模塊的設計中,采用了一種雙工與熱備相結合的不完全熱備設計,需要備份的數據主要是系統數據庫中的路由表項和轉發表表項。
所謂雙工與熱備相結合的不完全設計是指,雙主控板上都運行心跳探測程序用于故障探測,主用主控板上運行路由器正常工作所需要的所有應用程序,而備用主控板上運行部分重要應用程序,這些程序正常工作,和主用上的這些程序有相同的輸入數據,但處理結果并不輸出。這樣的設計保證了路由器出現故障進行切換時低耗時,減輕了需要備份的數據量,既又不象完全雙工工作方式那樣浪費資源,又避免了熱備工作方式的很多不足,性能明顯優于純粹的熱備或者雙工方式。
數據備份有冷備份和熱備份兩種:冷備份是在數據庫已經正常關閉的情況下,進行完整數據庫的備份,是最快和最安全的方法,但是冷備份的最大問題是必須在數據庫關閉的情況下進行,當數據庫處于打開狀態時,執行數據庫文件系統備份是無效的。
熱備份是在數據庫運行的情況下,采用archivelog mode方式備份數據。有雙機鏡像和共享磁盤陣列兩種方案,雙機鏡像方案可選擇將主數據庫服務器上的表、文件、數據庫或全部內容通過專用連接通道鏡像到備用服務器上作,優點是簡單、便宜,缺點是降低系統資源。共享磁盤陣列方案為兩臺主機共用一個磁盤陣列,優點是不降低系統性能,為目前較為流行的主流技術,但要求磁盤陣列具有較高的可靠性。
對于運行在骨干網中的路由器,冷備份顯然不適用,因為路由器運行過程中不可能定時關閉數據庫來備份數據,更不可能在路由器出現故障時再備份數據,因此采用熱備份。鑒于要備份的數據量不大,不必要采取雙機鏡像和共享磁盤陣列方式,在本設計中采用了一種新型的數據熱備份方式:將需要備份的數據以日志文件的形式存儲,通過TCP傳輸的方法將文件轉化為數據流由主用備份到備用上,實現實時備份。面向連接的TCP傳輸可靠且速度快,丟失文件的概率極小,故非常可靠。
l 平滑過渡――切換延時問題
路由器主控系統出現故障時,要能夠對用戶透明地進行主備切換,就要實現系統間的無縫切換,減少切換過程中的時延并降低數據丟失率。無縫切換是一種完美的切換,包括快速切換和平滑切換兩個方面。快速切換意味著低延遲,平滑切換就是低的數據包丟失率,無縫切換是兩者的結合,即低延遲和低丟失率。對于快速切換,要求在單板掉鏈之前完成切換過程,使備用接替主用的工作,保證路由器中的各個流程正常不受主控故障的影響,不影響網絡的正常運行;對于平滑切換,有兩點要求,一是切換時,主備用主控板上的數據庫是一致的,二是在主備用數據庫一致的基礎上,備用啟用后能在規定的時間[4]內完成備份數據的導入。所謂規定的時間,也包括在切換的總時間內,切換時間[4]=發現故障的時間+啟用切換的時間+故障接管時間。
l 故障監測機制
系統中的兩塊主控板,經過主備協商后確定主備地位,一塊為Master狀態,控制整個系統;另一塊為Slave狀態,處于備份狀態。兩塊主控板之間通過UDP傳輸心跳報文交互自身的狀態數據來識別主控的軟/硬件故障。路由器正常運行過程中,主用和備用主控板之間定時互相發送keepalive報文進行心跳探測,報文內容中包含了自身的狀態信息。備用在定時器到期前未收到來自主用的keepalive報文就認為主用失效,進入主備切換成為新主用,自動接管原主用的服務程序,繼續提供服務。原主用從故障中恢復或被更換后,會重新發送協商報文,與新主用取得聯系,成為新備用,而不必再進行一次切換,節省了系統資源。
3.2高可用性模塊的設計及實現
在主控軟件容錯系統的設計方案中,采用了兩塊主控板掛載八塊單板,兩塊主控板之間通過面向無連接的UDP通信機制交互心跳數據,通過面向連接的TCP通信機制傳輸備份文件數據流;主控板與單板之間通過高速以太網連接。圖1中給出了該系統的總體結構圖。
按照功能的不同,在設計方案中將高可用性模塊劃分為三個子模塊:AS通信模塊、AS系統監控模塊和AS Keepalive模塊,如圖2所示。
AS通信模塊,負責主控系統上高可用性模塊與系統數據維護模塊(SYSDATA)和板間通信模塊(BDCOM)間的通信,數據備份和TCP傳輸;
AS監控模塊,負責主控軟件各個系統進程的監控與維護、管理等核心功能,當某個軟件占cpu使用百分比過大時,認為該主控軟件運行不正常,根據該軟件的運行規則和重要性選擇恢復策略,重啟該進程或者進入主備切換;
AS Keepalive模塊,負責兩塊主控板之間的主備協商,確定主控板的主備地位;在路由器正常運行過程中,定時向對方主控板發送keepalive報文進行心跳探測;針對網絡擁塞可能導致的丟包,以及cpu排隊處理多線程時可能超時處理keepalive報文,造成的主用主控“假死”現象,采用了再協商(Re-negotiation)技術,在超時收不到對方主控板發送的keepalive報文時不直接認為對方主控板故障,而是進行一次退避,與對方發送協商報文進行再協商,再協商與初始化過程中的主備協商不完全相同。采用Re-negotiation技術與通常采用的單純固定不變的心跳探測技術相比較,可以更好地提高系統心跳環境適應能力和穩定性,更好地保證了系統的高可用性。
[align=center]

圖 1 主控軟件容錯系統總體結構圖[/align]
[align=center]

圖 2 高可用性模塊詳細設計圖[/align]
4 系統容錯性的測試
本文利用Adtech AX/4000路由器測試儀,在不同負載下,對HAL的效率及可靠性進行了測試,測試結果如圖3所示。測試時的發包速率服從馬爾可夫調制泊松過程(MMPP),圖3-1和圖3-2分別給出了隨著不同故障情況下,路由器吞吐率和時延的測試結果。測試結果表明該主控系統的容錯設計可用對路由器運行中出現的各種錯誤做出一定的處理,雖然其延時和吞吐率會受到一定影響。尤其在10%的故障情況下,系統的延時并不是特別大,將可能地降低了系統故障對用戶的影響。當然在高故障情況下,系統的吞吐率下降的非常明顯,因此在下一步設計中將重點研究產生這一現象的原因,并加以改善。
[align=center]

圖3-1 延時性測試

圖3-2 吞吐率測試[/align]
5 總結
本文研究了T比特核心路由器的主控系統結構,設計了高可用性模塊,該模塊采用熱備份模式,通過對主控板的硬件冗余設置,配合軟件實現上的數據熱備份、及心跳探測等技術消除T比特路由器中主控單點故障。該模塊應用于T比特路由器主控軟件系統中,當主用主控板發生故障時,可以快速、準確、平滑地進行主備切換,從而提高了系統的穩定性和可靠性,最終實現路由器的高可用性。
參考文獻:
1 中華人民共和國信息產業部科學技術司,YD/T1097-2001《路由器設備技術規范—高端路由器》. 2001.
2 Cisco White Paper, The Evolution of High-End Router Architectures, Basic Scalability and Performance Considerations for Evaluating Large-Scale Router Designs
3 Vitesse Semiconductor Corporation, Longmont, Colorado, IQ2000 Network Processor Product Brief, 2000.
4 James Aweya,On the design of IP routers Part 1:Router architectures, Journal of Systems Architecture 46 (2000) pp:483-511.
顏永紅, 張帆. TCAM路由更新的硬件優化[J]. 微計算機信息 , 2006,12-2:254-256。