新聞中心

EEPW首頁 > 設計應用 > 高端路由器主備同步技術的研究

高端路由器主備同步技術的研究

作者: 時間:2016-10-10 來源:網(wǎng)絡 收藏

摘要設備通常采用來延長系統(tǒng)的可靠運行時間,而主備是實現(xiàn)的關鍵技術。針對傳統(tǒng)技術可靠性低,同步速率低的問題,提出了一種新的主備解決方案。新的方案使用了可靠的主備通道;提出給同步數(shù)據(jù)分類,并采用合適的方法同步。經(jīng)實驗驗證,該技術方案應用在上,提高了速率與可靠性,從而提高了系統(tǒng)性能,同時模塊化的設計,具有很好的通用性,實現(xiàn)簡單,實用性高。

本文引用地址:http://butianyuan.cn/article/201610/306154.htm

作為Internet骨干網(wǎng)的核心設備,其位置決定了它必須具備很高的穩(wěn)定性與可靠性。通過采用1+1的主控板冗余熱備份機制,是常用的提高設備可靠性與穩(wěn)定性的重要解決方案之一。主控板冗余機制,是指兩塊軟硬件相同的主控板同時工作,一塊為主用主控板,一塊為備用主控板。通常情況下,主用主控板處于正常工作狀態(tài),備用主控板處于備用狀態(tài),在一定的觸發(fā)條件下,備用板接替主用板所有工作,完成功能,從而保證設備的可靠運行。

而使倒換前后整個系統(tǒng)的業(yè)務狀態(tài)不發(fā)生變化的前提是由主備問的數(shù)據(jù)同步和鏈路切換來保證的。本文關注的重點為軟件層面,基于主備倒換熱備份的數(shù)據(jù)同步解決方案。通過結合高端路由器主備控制板卡之間需要同步數(shù)據(jù)的不同特點,采用合適的方法對這些數(shù)據(jù)進行同步;同時采用私有的以太網(wǎng)二層通信協(xié)議,建立一條獨立的主備數(shù)據(jù)同步通道。該方案提高了主備數(shù)據(jù)同步速率,保證數(shù)據(jù)同步的穩(wěn)定可靠,采用模塊化設計,實現(xiàn)簡單,實用性高。

1 高端路由器主備同步的總體軟件模型

1.1 主備同步方式的軟件實現(xiàn)方案

高端路由器一般采用分布式架構,控制平面和轉發(fā)平面嚴格分開,功能完全獨立。主控板負責控制平面,即整個設備的控制與管理,包括用戶的各種配置信息以及運行各種協(xié)議,轉發(fā)板負責轉發(fā)平面,即單純的數(shù)據(jù)轉發(fā)業(yè)務,它根據(jù)主控板通知消息維護自己的轉發(fā)表項,同時根據(jù)轉發(fā)表項轉發(fā)數(shù)據(jù)。主備同步完成后,主備控制板卡上的控制信息相同,此時進行主備倒換,轉發(fā)表項并不會刪除后重新學習,從而能保證業(yè)務的無間斷轉發(fā),實現(xiàn)主備控制板卡的無縫倒換。

因此,主備同步在主備倒換功能中具有非常重要的地位,其實現(xiàn)有兩種方式:分散式同步方式和集中式同步方式。分散式同步是由上層應用根據(jù)自身的情況,采用不同的數(shù)據(jù)同步機制,在各自的本模塊內部完成主備同步。相對于分散式同步,適用于簡單應用系統(tǒng),不便于統(tǒng)一管理調度,資源浪費的缺點,本文采用集中式同步方式。集中式同步方式,如圖1,是由操作系統(tǒng)為上層應用提供統(tǒng)一標準的同步接口,上層應用進程需要同步時,只需調用主備同步模塊提供的API函數(shù),通過專有的主備數(shù)據(jù)同步通道傳輸數(shù)據(jù),而不必關心數(shù)據(jù)同步的具體實現(xiàn)。這樣把主備倒換過程中的主備數(shù)據(jù)同步作為一個主備同步模塊,從主備倒換功能中獨立出來,便于對應用進程的同步對象進行統(tǒng)一管理與調度,模塊化的設計也更具有通用性、可移植性、自適應性。

a.jpg

1. 2 主備數(shù)據(jù)同步通道

以往舊方案中的主備數(shù)據(jù)同步都是在倒換過程中并發(fā)進行的,數(shù)據(jù)的傳輸使用UDP一次處理,這種方法數(shù)據(jù)易丟失且會增加主備倒換時間。為解決以上問題,提高傳輸?shù)目煽啃院屯剿俾?,主備同步模塊提供一條采用消息確認方式的可靠鏈路層同步通道,并針對同步數(shù)據(jù)的不同特點,在鏈路層通道中采用不同的同步方式。

上層應用需要同步數(shù)據(jù)時,調用主備同步模塊提供的接口后,數(shù)據(jù)通過私有協(xié)議進行封裝,根據(jù)目的板卡和發(fā)送板卡設置相應的目的MAC地址和源MAC地址,采用消息確認方式,可靠的傳輸?shù)侥康陌蹇āV饔冒褰o備用板發(fā)送同步數(shù)據(jù)后,啟用定時器等待備用板數(shù)據(jù)接收的確認消息,特定時間沒有收到確認消息后,主用板向備用板重傳數(shù)據(jù)。備用板收到主用板傳輸?shù)臄?shù)據(jù)后,調用上層應用接受同步數(shù)據(jù)的接口,然后執(zhí)行相關命令,執(zhí)行成功后給主用板發(fā)送一個確認消息。當主用板收到備用板的確認消息后,對相關資源進行調整和釋放,然后開始發(fā)下一個同步數(shù)據(jù)包。

2 主備數(shù)據(jù)同步

主備同步模塊工作的實質是在合適的時機,針對具體的配置信息的特點,采用合適的同步方法對這些配置數(shù)據(jù)進行同步。因此主備同步模塊主要需要完成三部分的工作,即同步時機的獲取、同步對象的劃分、同步方法的實現(xiàn)。如圖2所示,為主備同步模塊結構。

b.jpg

2. 1 同步時機的獲取

為了在合適的時機進行主備數(shù)據(jù)同步,即獲取同步時機,需要對主備板卡的狀態(tài)進行管理,主備板卡的狀態(tài)由私有控制協(xié)議HA的狀態(tài)機維護,如圖3所示。

c.jpg

HA協(xié)議主要實現(xiàn)了以下3個方面的功能:1)主、備控制板卡的彼此發(fā)現(xiàn)和會話連接的建立;2)主、備控制板卡的網(wǎng)管配置同步時機的獲取;3)提供硬件和軟件結合的故障檢測

機制。

HA協(xié)議通過心跳機制提供主備板卡的軟件故障檢測,同時接受硬件中斷信息的上報,從而實現(xiàn)硬件和軟件結合的故障檢測機制。心跳信息也用于主控板和備用板之間的握手,維護它們的狀態(tài)變遷。系統(tǒng)初始化的時候,HA協(xié)議創(chuàng)建并啟動心跳和故障檢測定時器,為上層應用模塊提供注冊用的函數(shù)鉤子,當主備板卡的狀態(tài)發(fā)生變遷時,通知相關模塊進行角色變化,數(shù)據(jù)同步等相應的操作。

因此,主備板卡之間除了需要傳輸需要同步的數(shù)據(jù)外,還需要傳輸HA協(xié)議的心跳信息。主備板卡之間通常需要留有另外的連接通道用于心跳機制的通信,把控制傳輸和數(shù)據(jù)同步傳輸分離開來,防止因數(shù)據(jù)傳輸通道的故障導致主備板卡狀態(tài)的異常,從而導致整個設備的故障。

2.2 高端路由器主備同步數(shù)據(jù)分類

高端路由器主備倒換功能中主控板需要同步的信息有系統(tǒng)全局配置信息、系統(tǒng)的狀態(tài)信息、軟件各模塊的配置信息、CPU狀態(tài)信息、軟件路由表項等。每種配置信息都有自己的特點,比如對實時性要求的高低、信息量的大小、信息更新的頻率、對系統(tǒng)的重要程度等。對不同的配置信息采取與其相適應的備份機制同步方法,可以提高主備數(shù)據(jù)同步效率。

根據(jù)信息來源的不同,可以把需要同步的配置信息分為靜態(tài)配置信息和動態(tài)配置信息。

靜態(tài)配置信息根據(jù)其信息量的大小和實時性的要求又可以分為兩種:主用板和備用板都處在穩(wěn)定態(tài)的時候,用戶手動配置的命令行信息,即需要實時同步的信息;以及主用板處在穩(wěn)定態(tài)的時候,備用板上電,此時需要同步到備用板上的配置信息,即主控板的所有配置信息,網(wǎng)管把主用板上的所有配置信息保存到主用板的 CFCard或Flash,然后HA協(xié)議通知網(wǎng)管同步該配置信息。

動態(tài)配置信息是指系統(tǒng)運行協(xié)議而產生的動態(tài)信息,協(xié)議運行產生的鄰居狀態(tài),相關協(xié)議表項等都是動態(tài)配置信息。動態(tài)配置信息根據(jù)是否需要被周期性同步可以分為周期性同步配置信息和非周期同步配置信息,有些協(xié)議表項需要定時周期性的刷新,即周期性同步配置信息,有的協(xié)議表項不需要周期性刷新或者周期很大,即為非周期性同步配置信息。

靜態(tài)配置信息一般相對穩(wěn)定,用戶易控制,動態(tài)配置信息一般具有相對不穩(wěn)定,量較大,用戶無法控制等特點。

2.3 同步方法的實現(xiàn)

針對靜態(tài)配置信息和動態(tài)配置信息的不同特點,通過相同的數(shù)據(jù)同步通道,采用不同的同步方式來提高同步的效率。

2.3.1 靜態(tài)配置信息同步

靜態(tài)配置信息中,主用板與備用板都處在穩(wěn)定工作態(tài)時,用戶手動配置的命令行信息實時性要求高,信息量小,以增量的方式實時同步到備用板,通過命令行解析,執(zhí)行與主用板上相同的操作。主備用板卡執(zhí)行相同的命令行解析,備用板收到主用板同步過來的命令行配置,調用和主用板相同的上層應用接口,但應用進程可以通過攜帶不同的標志位,同步數(shù)據(jù)通道根據(jù)標志位來判斷是否需要給對端同步數(shù)據(jù),防止備用板收到主用板同步的命令行配置后,又給主用板同步配置。

而主用板處于穩(wěn)定工作態(tài)后,備用板再上電,這時主用板的所有配置信息都要同步到備用板,這種初始化同步配置信息的信息量一般較大。通常軟件模塊把配置信息以字符串格式寫入后綴名為“.cfg”配置文件,然后把配置文件通過FTP同步到備用板,備用板收到后按照配置文件里的配置逐一執(zhí)行配置,從而保證主備板數(shù)據(jù)一致。這種傳統(tǒng)的方法配置恢復采用單任務,各個模塊按一定的順序,依次經(jīng)過命令解析、命令匹配和命令下發(fā)等流程,配置恢復效率低下,同時在配置恢復時各模塊存在較強的耦合性,各模塊必須按一定的順序進行恢復工作,否則可能出現(xiàn)配置執(zhí)行失敗。把配置文件采用二進制格式保存,并按模塊和特性進行組織保存,并且配置恢復采用直接賦值的形式,簡化了配置信息的解析和下發(fā),去除了各模塊間的耦合,并使用多進程技術可以實現(xiàn)多模塊并行的數(shù)據(jù)恢復,極大的提高了同步效率。

2.3.2 動態(tài)配置信息同步

動態(tài)配置信息,是由系統(tǒng)運行協(xié)議而產生的與協(xié)議有關的信息,這些數(shù)據(jù)信息關系到倒換后協(xié)議狀態(tài)是否正確,關系到主備板卡能否實現(xiàn)無縫倒換,根據(jù)其是否需要周期性同步而分類。ARP,ND,TCP等這些協(xié)議表項數(shù)據(jù),會定時周期性刷新軟件表項,需要周期性同步到備用板卡;而運行路由協(xié)議而產生的軟件路由表項,鄰居信息等,當路由協(xié)議的狀態(tài)發(fā)生變化會導致這些表項變化,很長周期后協(xié)議自己刷新表項也會導致表項變換,因此是非周期的動態(tài)同步配置信息,采用嚴格消息確認方式同步數(shù)據(jù)。

對于那些短時間內變化頻繁,需要定時刷新表項的協(xié)議,為了保證主備板卡的協(xié)議狀態(tài)一致,一般是把協(xié)議進程的消息定時或者實時的同步轉發(fā)給備用板進程。對于這種周期性同步消息沒有必要進行嚴格確認,因為動態(tài)數(shù)據(jù)在短時間內會再改變,當同步周期很短的時候,會給主用板的處理器和主備板之間的通信造成很大壓力。協(xié)議模塊可以通過攜帶標志位,在數(shù)據(jù)同步通道根據(jù)其標志位來進行不同的處理。

3 實驗與驗證

在相同的硬件環(huán)境下,采用新舊兩個不同的方案制作的軟件版本進行實驗對比。方案一,使用UDP傳輸主備同步數(shù)據(jù)的傳統(tǒng)方案;方案二,改進后實現(xiàn)主備數(shù)據(jù)同步的新方案。

1)實驗環(huán)境

高端路由器設備,設備上有一塊主用控制卡、一塊備用控制卡、一塊業(yè)務線卡,思博倫TestCenter儀表。按圖4拓撲圖搭建環(huán)境。

d.jpg

2)實驗方法

TestCenter儀表的兩個端口分別與業(yè)務線卡上的兩個端口相連,儀表與設備相連的端口運行路由協(xié)議(RIP、OSPF、ISIS、BGP等),儀表與設備建立鄰居,儀表口通告路由(IPV4路由50 W,IPV6路由25 W),兩個儀表口對打流。記錄同步不同類型不同容量路由的時間,得出其平均值;短周期不停同步大量數(shù)據(jù)到備用板,統(tǒng)計失敗次數(shù),計算丟包率,得出可靠性。

3)實驗結論

多次主備倒換后,可以看到主備控制卡角色變換,沒有數(shù)據(jù)包丟失,主備控制卡實現(xiàn)了無縫倒換。圖5所示,為用命令行rsp switch進行主備倒換的結果圖,可以看到9號槽和10號槽主控角色的變換。統(tǒng)計多次數(shù)據(jù),得出方案一和方案二各個階段數(shù)據(jù)同步的平均時間,并計算出兩個方案主備同步的可靠性,如表1所示。

e.jpg

由此可以得出,改進后的主各同步方案,可以應用在高端路由器設備中,實現(xiàn)了主備控制卡的無縫倒換,并且相對傳統(tǒng)舊的同步方案,提高了數(shù)據(jù)同步的可靠性與速率。

4 結束語

主備數(shù)據(jù)同步技術是實現(xiàn)通信設備主備倒換的關鍵技術之一,本文主要對這一技術進行了研究與改進。通過改進主備數(shù)據(jù)傳輸通道,劃分同步對象,采用合適的同步方法,從而實現(xiàn)高效可靠的主備同步。該技術方案已經(jīng)通過測試,在高端路由器設備上能夠有效可靠的運行,并且實現(xiàn)簡單,實用性高。



評論


技術專區(qū)

關閉