《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 高性能T比特路由器高可用性的研究與實(shí)現(xiàn)

高性能T比特路由器高可用性的研究與實(shí)現(xiàn)

2008-05-09
作者:周 麗,,蘭巨龍

  摘 要: 針對(duì)高性能T比特核心路由器,探討如何通過高可用性" title="高可用性">高可用性模塊的設(shè)計(jì)保證路由器的高可靠性,,確保主處理器的癱瘓不影響網(wǎng)絡(luò)的正常運(yùn)行,。
  關(guān)鍵詞: 高可用性 主備切換 心跳探測


  隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的高速發(fā)展,網(wǎng)絡(luò)設(shè)備的安全可靠越來越受到人們的重視,。路由器的高可用性成為網(wǎng)絡(luò)運(yùn)營商們關(guān)注的焦點(diǎn)。高可用性是指路由器的不間斷運(yùn)行能力,即持續(xù)操作能力,。它要求路由器本身所采用的硬件和軟件系統(tǒng)具有穩(wěn)定可靠的性能,并且可以從軟件設(shè)計(jì)入手,,實(shí)現(xiàn)一個(gè)高可用性的軟件產(chǎn)品,。
  本文以高性能T比特核心路由器為實(shí)例,探討如何通過高可用性模塊的設(shè)計(jì)保證網(wǎng)絡(luò)的高可靠性,,做到處理器故障不會(huì)影響網(wǎng)絡(luò)的連通性,,更不會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)的癱瘓,從根本上解決數(shù)據(jù)中心的風(fēng)險(xiǎn)問題,。
1 高可用性技術(shù)
  高可用性是指可持續(xù)的,、具有一致性和完整性的數(shù)據(jù)訪問,。高可用性系統(tǒng)通過提高服務(wù)器可靠性、磁盤可靠性,、應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序可靠性達(dá)到高可用性的要求,。可以通過共享磁盤陣列提高磁盤可靠性,,使用冗余網(wǎng)絡(luò)提高網(wǎng)絡(luò)可靠性,,使用合作的服務(wù)器提高服務(wù)器可靠性,通過應(yīng)用程序的探測與有效恢復(fù)提高應(yīng)用程序的可靠性,。
  路由器作為計(jì)算機(jī)網(wǎng)絡(luò)的核心設(shè)備,,其高可用性至關(guān)重要。在硬件方面,,路由器要有一個(gè)很好的體系結(jié)構(gòu)及各種冗余非常完善,,關(guān)鍵部件如路由引擎和交換矩陣要有冗余。在軟件方面,,其自身要強(qiáng)壯,,另外在遇到更換硬件、系統(tǒng)升級(jí),、增加板卡和改變鏈路等網(wǎng)絡(luò)調(diào)整時(shí),,軟件要有能力保證整個(gè)網(wǎng)絡(luò)業(yè)務(wù)不受局部調(diào)整的影響,讓整個(gè)網(wǎng)絡(luò)體現(xiàn)出非常高的可用性,,保證路由引擎進(jìn)行不丟包的切換,。主引擎發(fā)生故障,切換到副引擎時(shí)不丟包,,平滑切換,,否則硬件的冗余就沒有意義,是假冗余,。另外還要保證平穩(wěn)重啟" title="重啟">重啟,。當(dāng)路由重啟時(shí),由此產(chǎn)生的路由重新計(jì)算和網(wǎng)絡(luò)范圍的路由更新會(huì)消耗掉處理資源,,并有可能出現(xiàn)黑洞或瞬時(shí)轉(zhuǎn)發(fā)循環(huán)形式的非預(yù)期網(wǎng)絡(luò)行為,。而平穩(wěn)重啟會(huì)避免這種情況的發(fā)生。
  根據(jù)以上要求,,本文提出了一種適用于T比特路由器的主控軟件容錯(cuò)系統(tǒng)設(shè)計(jì)方案,。采用硬件冗余與軟件容錯(cuò)相結(jié)合、熱備與雙工" title="雙工">雙工相結(jié)合的工作方式代替?zhèn)鹘y(tǒng)的容錯(cuò)熱備份方案,,并根據(jù)該方案設(shè)計(jì)實(shí)現(xiàn)了高可用性模塊,。測試結(jié)果表明,采用該設(shè)計(jì)方案的主控軟件系統(tǒng)具有很好的容錯(cuò)性能和故障恢復(fù)能力,能夠滿足T比特路由器對(duì)主控軟件系統(tǒng)的高可用性要求,。
2 基于高性能T比特路由器的主控軟件容錯(cuò)系統(tǒng)設(shè)計(jì)
2.1 主控軟件容錯(cuò)系統(tǒng)設(shè)計(jì)中的基本問題

  基于容錯(cuò)需求的考慮,,當(dāng)主控系統(tǒng)出現(xiàn)軟硬件故障時(shí)路由器仍需要正常工作,故硬件配置采用1+1冗余設(shè)計(jì),,配備主用(Active)和備用(Standby)兩塊主控板" title="主控板">主控板,,構(gòu)建雙主控?zé)醾淙蒎e(cuò)系統(tǒng)。當(dāng)主用主控板發(fā)生故障,,系統(tǒng)自動(dòng)進(jìn)行主備切換,,由備用主控板接替主用板工作,保證業(yè)務(wù)的正常運(yùn)行,。當(dāng)主用模塊發(fā)生嚴(yán)重故障或主用復(fù)位時(shí),,將觸發(fā)自動(dòng)倒換方式,及時(shí)倒換到備用板,。這種1+1冗余設(shè)計(jì)可擴(kuò)展到N+1冗余設(shè)計(jì),。
  整個(gè)切換過程對(duì)用戶透明,需要考慮的重點(diǎn)和實(shí)現(xiàn)的難點(diǎn)在于主備系統(tǒng)間數(shù)據(jù)庫一致性問題,、平滑切換技術(shù)的實(shí)現(xiàn)和故障監(jiān)測機(jī)制,。
  (1)數(shù)據(jù)庫一致性問題
  路由器主控板上記錄了系統(tǒng)實(shí)時(shí)運(yùn)行數(shù)據(jù),因此正常工作中需要進(jìn)行實(shí)時(shí)的系統(tǒng)數(shù)據(jù)備份,,以保證主用和備用上的數(shù)據(jù)庫一致,,否則在主備切換時(shí),備用不能正常接替主用,。針對(duì)該問題,,在高可用性模塊的設(shè)計(jì)中,采用了一種雙工與熱備相結(jié)合的不完全熱備設(shè)計(jì),。需要備份的數(shù)據(jù)主要是系統(tǒng)數(shù)據(jù)庫中的路由表項(xiàng)和轉(zhuǎn)發(fā)表表項(xiàng),。
  雙工與熱備相結(jié)合的不完全設(shè)計(jì)是指:雙主控板上都運(yùn)行心跳探測程序用于故障探測,主用主控板上運(yùn)行路由器正常工作所需要的所有應(yīng)用程序,,而備用主控板上運(yùn)行部分重要應(yīng)用程序,。這些程序正常工作時(shí)與主用主控板上的程序有相同的輸入數(shù)據(jù),但處理結(jié)果并不輸出,。這樣的設(shè)計(jì)保證了路由器出現(xiàn)故障進(jìn)行切換時(shí)低耗時(shí),,減輕了需要備份的數(shù)據(jù)量,,既不像完全雙工工作方式那樣浪費(fèi)資源,,又避免了熱備工作方式的很多不足,性能明顯優(yōu)于純粹的熱備或者雙工方式,。
  數(shù)據(jù)備份有冷備份和熱備份兩種,。冷備份是在數(shù)據(jù)庫已經(jīng)正常關(guān)閉的情況下,進(jìn)行完整數(shù)據(jù)庫的備份,是最快和最安全的方法,。冷備份的最大問題是必須在數(shù)據(jù)庫關(guān)閉的情況下進(jìn)行,,當(dāng)數(shù)據(jù)庫處于打開狀態(tài)時(shí),執(zhí)行數(shù)據(jù)庫文件系統(tǒng)備份是無效的,。
  熱備份是在數(shù)據(jù)庫運(yùn)行時(shí),,采用archivelog mode方式備份數(shù)據(jù)。有雙機(jī)鏡像和共享磁盤陣列兩種方案,。雙機(jī)鏡像方案可選擇將主數(shù)據(jù)庫服務(wù)器上的表,、文件、數(shù)據(jù)庫或全部內(nèi)容通過專用連接通道鏡像到備用服務(wù)器上,,優(yōu)點(diǎn)是簡單,、便宜,缺點(diǎn)是降低系統(tǒng)資源,。共享磁盤陣列方案為兩臺(tái)主機(jī)共用一個(gè)磁盤陣列,,優(yōu)點(diǎn)是不降低系統(tǒng)性能,為目前較為流行的主流技術(shù),,但要求磁盤陣列具有較高的可靠性,。
  對(duì)于運(yùn)行在骨干網(wǎng)中的路由器,冷備份顯然不適用,。因?yàn)槁酚善鬟\(yùn)行過程中不可能定時(shí)關(guān)閉數(shù)據(jù)庫來備份數(shù)據(jù),,更不可能在路由器出現(xiàn)故障時(shí)再備份數(shù)據(jù)。因此采用熱備份,。鑒于要備份的數(shù)據(jù)量不大,,不必采取雙機(jī)鏡像和共享磁盤陣列方式。在本設(shè)計(jì)中采用了一種新型的數(shù)據(jù)熱備份方式:將需要備份的數(shù)據(jù)以日志文件的形式存儲(chǔ),,通過TCP傳輸方法將文件轉(zhuǎn)化為數(shù)據(jù)流由主用主控板備份到備用主控板上,,實(shí)現(xiàn)實(shí)時(shí)備份。面向連接的TCP傳輸可靠且速度快,,丟失文件的概率極小,。
  (2)切換延時(shí)問題
  路由器主控系統(tǒng)出現(xiàn)故障時(shí),要能夠?qū)τ脩敉该鞯剡M(jìn)行主備切換,,就要實(shí)現(xiàn)系統(tǒng)間的無縫切換,,減少切換過程中的時(shí)延并降低數(shù)據(jù)丟失率。無縫切換是一種完美的切換,,包括快速切換和平滑切換兩方面,。快速切換意味著低延遲,,平滑切換就是低的數(shù)據(jù)包丟失率,,無縫切換是兩者的結(jié)合,,即低延遲和低丟失率。對(duì)于快速切換,,要求在單板掉鏈之前完成切換過程,,使備用主控板接替主用主控板的工作,保證路由器中的各個(gè)流程正常工作不受主控故障的影響,,使網(wǎng)絡(luò)正常運(yùn)行,。對(duì)于平滑切換,有兩點(diǎn)要求:一是切換時(shí),,主備用主控板上的數(shù)據(jù)庫是一致的,;二是在主備用數(shù)據(jù)庫一致的基礎(chǔ)上,備用主控板啟用后能在規(guī)定的時(shí)間內(nèi)完成備份數(shù)據(jù)的導(dǎo)入,。所謂規(guī)定的時(shí)間,,也包含在切換的總時(shí)間內(nèi),切換時(shí)間=發(fā)現(xiàn)故障時(shí)間+啟用切換時(shí)間+故障接管時(shí)間,。
  (3)故障監(jiān)測機(jī)制
  系統(tǒng)中的兩塊主控板,,經(jīng)過主備協(xié)商后確定主備地位,一塊為Master狀態(tài),,控制整個(gè)系統(tǒng),;另一塊為Slave狀態(tài),處于備份狀態(tài),。兩塊主控板之間通過UDP傳輸心跳報(bào)文交互自身的狀態(tài)數(shù)據(jù),,以識(shí)別主控的軟/硬件故障。路由器正常運(yùn)行時(shí),,主用和備用主控板之間定時(shí)發(fā)送keepalive報(bào)文進(jìn)行心跳探測,,報(bào)文內(nèi)容中包含了自身的狀態(tài)信息。備用主控板在定時(shí)器到期前未收到來自主用主控板的keepalive報(bào)文就認(rèn)為主用主控板失效,,進(jìn)入主備切換,,備用主控板成為新主用,自動(dòng)接管原主用主控板的服務(wù)程序,,繼續(xù)提供服務(wù),。原主用主控板從故障中恢復(fù)或被更換后,會(huì)重新發(fā)送協(xié)商報(bào)文,,與新主用主控板取得聯(lián)系,,成為新備用主控板,而不必再進(jìn)行一次切換,,節(jié)省了系統(tǒng)資源,。
2.2 高可用性模塊的設(shè)計(jì)及實(shí)現(xiàn)
  在主控軟件容錯(cuò)系統(tǒng)設(shè)計(jì)中,采用了兩塊主控板掛載八塊單板,。兩塊主控板之間通過面向無連接的UDP通信機(jī)制交互心跳數(shù)據(jù),,通過面向連接的TCP通信機(jī)制傳輸備份文件數(shù)據(jù)流;主控板與單板之間通過高速以太網(wǎng)連接,。圖1給出了該系統(tǒng)的總體結(jié)構(gòu)圖,。

?


  按照功能的不同,在設(shè)計(jì)方案中將高可用性模塊劃分為三個(gè)子模塊:AS通信模塊,、AS系統(tǒng)監(jiān)控模塊和AS keepalive模塊,,如圖2所示。
  AS通信模塊負(fù)責(zé)主控系統(tǒng)上高可用性模塊與系統(tǒng)數(shù)據(jù)維護(hù)模塊(SYSDATA)和板間通信模塊(BDCOM)間的通信,、數(shù)據(jù)備份和TCP傳輸,。
  AS監(jiān)控模塊負(fù)責(zé)主控軟件各個(gè)系統(tǒng)進(jìn)程的監(jiān)控、維護(hù),、管理等核心功能,。當(dāng)某個(gè)軟件占CPU使用百分比過大時(shí),則認(rèn)為該主控軟件運(yùn)行不正常,,根據(jù)該軟件的運(yùn)行規(guī)則和重要性選擇恢復(fù)策略,,重啟該進(jìn)程或者進(jìn)入主備切換。
  AS keepalive模塊負(fù)責(zé)兩塊主控板之間的主備協(xié)商,,確定主控板的主備地位,;在路由器正常運(yùn)行過程中,定時(shí)向?qū)Ψ街骺匕灏l(fā)送keepalive報(bào)文進(jìn)行心跳探測,;針對(duì)網(wǎng)絡(luò)擁塞可能導(dǎo)致的丟包以及CPU排隊(duì)處理多線程時(shí)可能超時(shí)處理keepalive報(bào)文造成的主用主控板“假死”現(xiàn)象,,采用再協(xié)商(Re-negotiation)技術(shù),在超時(shí)收不到對(duì)方主控板發(fā)送的keepalive報(bào)文時(shí)不直接認(rèn)為對(duì)方主控板故障,,而是進(jìn)行一次退避,,與對(duì)方發(fā)送協(xié)商報(bào)文進(jìn)行再協(xié)商。再協(xié)商與初始化過程中的主備協(xié)商不完全相同,。Re-negotiation技術(shù)與通常采用的單純固定不變的心跳探測技術(shù)相比,,可以更好地提高系統(tǒng)心跳環(huán)境的適應(yīng)能力和穩(wěn)定性,更好地保證系統(tǒng)的高可用性,。
2.3 AS系統(tǒng)設(shè)計(jì)的特點(diǎn)
  (1)整個(gè)AS系統(tǒng)的設(shè)計(jì)采用層次與模塊相結(jié)合的結(jié)構(gòu)模型,,克服了軟、硬件分離和脫節(jié)的問題,,提高系統(tǒng)的靈活性和可移植性,。模型的每一層均可以看作是一個(gè)相對(duì)獨(dú)立的系統(tǒng)。在每一層中又按照系統(tǒng)功能,,劃分不同的功能模塊,。各個(gè)模塊之間獨(dú)立工作,完成不同的功能,,降低故障的概率,。
  (2)硬軟件相結(jié)合實(shí)現(xiàn)主控板的熱備份容錯(cuò),。
  (3)采用熱備與雙工相結(jié)合的設(shè)計(jì),系統(tǒng)切換時(shí)間短,,平均切換時(shí)間為0.8秒,。
  (4)切換過程中對(duì)用戶透明,無需重新啟動(dòng)主控板,,對(duì)故障板支持熱插拔,,方便維修。
  (5)系統(tǒng)工作效率高,。整個(gè)系統(tǒng)中,,各個(gè)子模塊分工合作,數(shù)據(jù)備份及傳輸由AS通信模塊通過消息隊(duì)列和TCP傳輸完成,。主控系統(tǒng)軟件的監(jiān)控和部分軟件的出錯(cuò)重啟由AS監(jiān)控模塊完成,。AS keepalive模塊用UDP傳輸進(jìn)行主備間的心跳監(jiān)測通信,且在交互的心跳報(bào)文中包含了當(dāng)前主用和備用主控板的狀態(tài)數(shù)據(jù)等,,用于更新狀態(tài)機(jī),,避免盲目切換和無效切換。
  (6)本設(shè)計(jì)中數(shù)據(jù)庫實(shí)時(shí)更新,,且一旦備用主控板收到TCP傳輸?shù)膫浞菸募蛯?dǎo)入到本地?cái)?shù)據(jù)庫中,,而不是出現(xiàn)故障進(jìn)行主備切換時(shí)再從數(shù)據(jù)備份文件中讀取數(shù)據(jù)。因此不會(huì)產(chǎn)生數(shù)據(jù)不同步的問題,,而且大大地減少了切換時(shí)的工作量,,加快了切換速度。
本文研究了T比特核心路由器的主控軟件結(jié)構(gòu),,設(shè)計(jì)了高可用性模塊,。該模塊采用熱備份模式,通過對(duì)主控板的硬件冗余設(shè)置,,配合軟件實(shí)現(xiàn)的數(shù)據(jù)熱備份及心跳探測等技術(shù)消除T比特路由器中主控單點(diǎn)故障,。該模塊應(yīng)用于T比特路由器主控軟件系統(tǒng)中,當(dāng)主用主控板發(fā)生故障時(shí),,可以快速,、準(zhǔn)確、平滑地進(jìn)行主備切換,,從而提高了系統(tǒng)的穩(wěn)定性和可靠性,,最終實(shí)現(xiàn)路由器的高可用性。
參考文獻(xiàn)
1 James Aweya.On the design of IP routers Part 1:Router architectures.Journal of Systems Architecture 46(2000):483~511
2 使用熱備份進(jìn)行分時(shí)恢復(fù).http://www.eygle.com/ha/Use.Hot.Backup.Recover.Day.by.Day.htm
3 雙機(jī)熱備指南.http://www.ha999.com/index.htm
4 申志冰,,羅 宇.利用Heartbeat實(shí)現(xiàn)Linux上的雙機(jī)熱備份系統(tǒng).計(jì)算機(jī)工程與應(yīng)用,,2002;(19)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。