專利名稱:通信設備平滑升級方法及系統的制作方法
技術領域:
本發明涉及通信領域升級技術,尤其涉及一種通信設備平滑升級方法及系統。
背景技術:
在系統安全性設計中,為許多單板設計了 l + l備份的特性。在對這類單板 升級時,可以利用單板主備機制,來避免業務中斷。
圖1為現有技術中通信設備通過主備倒換方式實現升級的示意圖,圖1中 以斜線填充表示處于主用狀態,處于主用狀態的單板稱為主板,處于備用狀態 的單板稱為備板。如圖l所示,先加載新版本到備板,即圖1中的右板,右板 重啟后發起4^fr求,M主板,即圖1中的左板同步過來的進程數據區數據,
左板繼續處理業務。當所有進程數據區數據備份完畢后,進行主備倒換左板 釋放不保護資源,成為新備板;右板向外圍板鏈路發送鏈路切換命令,將外圍 板鏈路切換至右板,此時右板成為新主板,啟動新版本處理業務;最后,再加 載新版本到左板,完成原主板,即新備板的版本升級。
采用上述主備倒換方式進行升級,會存在以下風險如果在上述過程中, 新版本與原版;^目比,業務進程的進程數據區結構發生了變化,則升級過程中, 若備板依然備份主板同步過來的進程數據區數據,則數據指針有可能指向錯誤 的數據地址,進而導致進程數據區M錯誤甚至系統崩潰。
發明內容
有鑒于此,本發明的主要目的在于提供一種通信設備平滑升級方法及系統, 能夠實現通信i殳備的平滑升級。
為達到上述目的,本發明的技術方案是這樣實現的
4本發明提供一種通信設備平滑升級方法,包括
加3
數據區#請求,進程數據區備^i青求中攜帶進程數據區版本號;
收到進程數據區名4分請求后,主板判斷自身業務進程的進程數據區版本號 與備板上業務進程的進程數據區版本號是否一致,若一致,則主板發送備份響 應消息給備板;若不一致,則主板發送^#結束消息給備板; 所有進程數據區數據備份結束后,進行主備倒換。
其中,所述備份響應消息中包括主板上對應業務進程的進程數據區版本 號及進程數據區數據'
上述技術方案中,所述主板和備板上需要同步的業務進程均設置有數據區 版本一致性全局變量;
在主板與備板上對應的業務進程的進程數據區版本號相同時,設置該數據 區版本一致性全局變量為"相同";
在主板與備板上對應的業務進程的進程數據區版本號不相同時,設置該數 據區版本一致性全局變量為"不同"。
上述技術方案中,所述主備倒換具體為主板釋放非保護數據區,倒換成 新備板,向原備 _送倒換成功消息,原備板收到倒換成功消息后倒換成新主 板,向外圍板鏈路發送鏈路切換命令,將通信鏈路切換至新主板,啟動新版本 處理業務,
上述技術方案中,該方法進一步包括新備板加載新版本,進行版本升級。 上述技術方案中,所述主板設置有模塊;
該方法進一步包括主板上的模塊接收到其他模塊發來的模塊間消息后, 判斷自身的消息版本號與收到的模塊間消息中攜帶的消息版本號是否一致,若 一致,則根據模塊間消息內容進行相應的業務處理;若不一致,則釋放或者丟 棄該^i塊間消息。
本法明還提供了一種通信設備平滑升級系統,包括備板和主板;其中, 備板包括備板升級單元、數據備份單元;主板包括主板判斷單元;具體的備板升級單元,用于加載新版本,并發送包含備板上業務進程的進程數據
區版本號的進程數據區M請求給主板;
數據備盼單元,用于接收主板判斷單元發來的^#響應消息或備份結束消 息,進行進程數據區數據的備份;
主板判斷單元,用于獲取進程數據區M請求中的備板上業務進程的進程 數據區版本號,判斷備板上業務進程的進程數據區版本號與主板上對應業務進 程的進程數據區版本號是否一致,在一致時,判斷單元發送備份響應消息給備 板升級單元;在不一致時,判斷單元發送M結束消息給備板升級單元。
其中,所述備除響應消息中包括主板上對應業務進程的進程數據區版本 號及進程數據區數據。
上述技術方案中,所述主板和備板上需要同步的業務進程均設置有數據區 版本一致性全局變量;
在主板與備板上對應的業務進程的進程數據區版本號相同時,該數據區版 本一致性全局變量被設置為"相同";
在主板與備板上對應的業務進程的進程數據區版本號不相同時,該數據區 版本一致性全局變量^皮i殳置為"不同"。
上述技術方案中,所述主板設置有模塊,所述才莫塊包括消息接收單元和 判斷單元;具體的
消息接收單元,用于接收其他模塊發來的模塊間消息;
判斷單元,用于判斷自身的消息版本號與收到的模塊間消息中攜帶的消息 版本號是否一致,在一致時,根據模塊間消息內容進行相應的業務處理;在不 一致時,則釋^:或者丟棄該消息。
本發明的通信設備平滑升級方法及系統,在通信設備升級過程中,通過在 進程數據區備份請求中增加進程數據區版本號,實現進程數據區版本號的傳遞、 檢測,進而根據檢測結果進行相應處理,避免因在進程數據區版本號不一致的 情況下進行進程數據區備盼帶來的系統問題。同時,本發明進一步在模塊間消 息中增加消息版本號,實現消息版本號的傳遞、檢測,進而根據檢測結果進行相應處理,避免因模塊版本不一致,導致的消息處理錯誤。
圖1為現有技術中通信設備通過主備倒換方式實現升級的示意圖; 圖2為本發明通信設備平滑升級方法的流程示意圖; 圖3為本發明實施例通信設備平滑升級方法示意圖。
具體實施例方式
本發明的基本思想是通信設備升級過程中,通過在進程數據區M請求 中增加相應的版本號,實現版本號的傳遞、檢測,進而根據檢測結果進行相應 處理。避免因在版本號不一致的情況下進行進程數據區名"分帶來的系統問題。
圖2為本發明通信設備平滑升級方法的流程示意圖,如圖2所示,本發明 方法包括
步驟1:備板加載新版本并重啟,備板上需要同步的業務進程向主板上對 應業務進程發送進程數據區M請求,進程數據區備盼請求中攜帶進程數據區 版本號。
步驟2:收到進程數據區^f》清求后,主板判斷自身業務進程的進程數據 區版本號與備板上業務進程的進程數據區版本號是否一致,若一致,則主板發 送備除響應消息給備板;若不一致,則主板發送備份結束消息給備板;
本步驟中,備份響應消息中包括主板上對應業務進程的進程數據區版本 號及進程數據區數據。
步驟3:所有進程數據區數據備々分結束后,進行主備倒換; 本步驟中,主備倒換具體為主板釋放非保護數據區,倒換成新備板,向 原備M送倒換成功消息;原備板收到倒換成功消息后倒換成新主板,向外圍 板鏈路發送鏈路切換命令,將通信鏈路切換至新主板,啟動新版本處理業務。 該方法進一步包括新備板加載新版本,進行版本升級。 步驟l中通過在進程數據區備份請求中攜帶進程數據區版本號,實現了版本號的傳遞,具體的
對于與進程數據區主備同步有關的消息,需要在消息體中增加進程數據區 版本號字段,如備板加載新版本重啟后,備板上進程基站子系統應用部分 (BSSAP, Base Subsystem Application Part)向主板上BSSAP進程發送進程數 據區^^貪求消息mbSynchrDataReqEvent,要求備份BSSAP進程數據區數據, 在消息體中增加WORD類型字段BSSAP信息版本號(wBssapInfoVersionNo ), 用來表示備板當前BSSAP進程數據區版本號。
對于主備同步過程,在備板加栽新版本,備板上電后,向主板發送進程數 據區備份請求,該進程數據區備份請求中攜帶備板上該進程數據區的版本號, 主板發送給備板的備份響應消息中攜帶主板上對應業務進程的進程數據區版本 號。
步驟2中通過比較主板上業務進程的進程數據區版本號與備板上對應業務 進程的進程數據區版本號是否一致,實現了進程數據區版本號的檢測,具體的
對于進程數據區主備同步,主板上的業務進程在收到備板的進程數據區備 份請求后,獲取該程數據區備份請求中攜帶的進程數據區版本號,并與主板上 對應業務進程的進程數據區版本號比較,實現進程數據區版本專的檢測。主板 上業務進程通過進程數據區的備份響應消息或備份結束消息將主板上業務進程 的進程數據區版本號傳遞給備板上對應業務進程。
步驟2中對進程數據區版本號不一致的處理,具體為
對于進程數據區主備同步過程,主板上的業務進程檢測到與備板上對應業 務進程的進程數據區版本號不一致時,后續進行以下處理
1) 進程數據區主備同步過程中,不進行進程數據區的*過程;
2) 業務處理過程中,不進行穩態進程數據區主備*過程;或
3 )在主備倒換過程中,原主板上業務進程釋放所有正在進行的業務過程和 有關資源,并進行計費。
主板和備板上需要同步的業務進程均設置有數據區版本一致性全局變量, 用來記錄主、備板上對應業務進程的進程數據區版本號是否一致,下面,對數據區版本一致性全局變量,以下可簡稱為全局變量進行說明
主板和備板上需要同步的業務進程依靠該業務進程的數據區版本一致性全局變量來記錄主、備板上對應業務進程的進程數據區版本是否一致。如業務進程BSSAP定義字節(BYTE)類型的數據區版本一致性全局變量g_bssapSynDataReliability,通過維護此全局變量的值來記錄主、備板上BSSAP數據區版本是否一致。在業務進程上電進入主用狀態或者備用狀態時,該全局變量應初始化為"未知(Unknown),,。在備板上業務進程向主板上對應業務進程傳遞備板上該業務進程數據區版本號后,主板上業務進程的該全局變量應修改為"相同(SAME)"或者"不同(DIFF)"。在主板上業務進程向備板上業務進程傳遞主板上的此業務進程數據區版本號后,備板上該業務進程的全局變量也應修改為"SAME"或者"DIFF"。主板與備板通信中斷,該全局變量的取值置為"Unknown",主板與備板通信恢復,則不修改該全局變量取值。主備倒換過程,也不修改該全局變量的取值。
下面結合附圖和實施例進一步說明本發明通信設備平滑升級方法。實施例
本實施例以呼叫業務為例。
圖3為本發明實施例通信設備平滑升級方法示意圖,如圖3所示,該實施例中包括四個單板,分別為單板a、單板a,、單板b及單板b,;其中,單板a,為單板a的備板,單板b,為單板b的備板,單板a及單板b處于主用狀態。單板a與單板a,、單板b與單板b,之間交互進程數據區消息。下面,以單板a與單板a,之間的主備升級過程為例進行說明。
單板a,加栽新版本,上電后,單板a,各業務進程進入備用狀態,各業務進程的數據區版本一致性全局變量置為"Unknown"。單板a上電后,各業務進程進入主用狀態時,各業務進程的全局變量也被設置為"Unknown".單板a,呼叫業務進程向單板a呼叫業務進程發送進程數據區備份請求消息,攜帶此呼叫業務進程數據區對應的版本號。單板a呼叫業務進程收到該進程數據區^#請求后,獲取該進程數據區備份請求中攜帶的版本號,與單板a上對應呼叫業務進
9程的進程數據區版本號進行比較。
如果版本號相同,即版本一致,則單板a發送備份響應消息給單板a,進行正常的備板備份過程,且單板a上將本業務進程的全局變量設置為"SAME"。單板a,上收到進程數據區備份響應消息后,將本業務進程的全局變量設置為"SAME"。
如果版本號不相同,即版本不一致,則單板a向單板a,進程發送進程數據區備份結束消息,不再進行進程數據區的主板與單板a,之間的備盼處理,并將該進程數據區版本一致性全局變量設置為"DIFF",進程數據區備份結束消息中攜帶數據區版本不一致信息。單板a,收到該進程數據區備份結束消息后結束單板a,上對應業務進程的數據區4^過程,并將單板a,上該業務進程的全局變量設置為"DIFF"。另夕卜,單板a在判定單板a與單板a,之間的呼叫業務進程數據區版本號不一致后,通知呼叫鏈上的其它進程,進行去保護的相關處理。
如果進程數據區版本號不一致,則在主備倒換時,單板a上的所有呼叫將被全部釋放掉,并且在釋放呼叫的同時,需要把對端半呼叫以及相關的其它資源全部釋》文掉。
主板和備板設置有若千模塊,該模塊可為CPU。由于升級過程中各單板的升級順序有先有后,在業務不中斷的情況下,就會出現主板上版本不同的模塊或不同主板上的模塊之間發生消息交互的情況,此處發生消息交互的模塊可以是不同主板上的模塊,也可以是同一主板上的模塊。在通信設備升級過程中,單板的升級順序有先有后,若新版本與原版本相比,模塊間消息的結構發生了變化,則數據指針有可能指向錯誤的數據地址,使接收模塊間消息的模塊不能正確處理收到的消息。
如圖3所示,單板a上設置有兩個模塊,分別為模塊al和模塊a2;單板b上也設置有兩個模塊,分別為模塊bl和模塊b2。在單板a、單板b處于主用狀態時,模塊al、模塊a2、模塊bl和模塊b2之間發生消息交互。在通信設備升級過程中,單板a和單板b的升級順序有先有后,若新版本與原版^目比,模塊間消息的結構發生了變化,則會導致消息處理錯誤。級,本發明方法進一步
包括對于業務處理過碎呈中的才莫塊間消息,如呼叫過^f呈中的消息、短消息過程中的消息、呼叫過程中發生切換等,需要在消息體中增加消息版本號字段;整個升級過程中,模塊間交互消息需要攜帶發送消息的才莫塊消息版本號。
接收模塊間消息的模塊判斷自身的消息版本號與收到的模塊間消息中攜帶的消息版本號是否一致,若一致,則接收并進行相應的業務處理;若不一致,則釋放或者丟棄該才莫塊間消息。
對于升級過程中的模塊間消息,模塊在收到模塊間消息后,獲取模塊間消息中攜帶的消息版本號,并與本沖莫塊中該消息的版本號宏進行比較,實現版本號的檢測。
對于模塊間消息,接收模塊間消息的模塊檢測到消息版本號不一致后,將直接丟棄能夠拋棄的消息,拋棄不可行時則發起業務釋放過程。
下面以不同^^莫塊間的交互業務消息為例,進一步說明升級過程中,處于不同模塊的業務進程之間的消息版本號的傳遞、檢測和后續處理。
本實施例中,業務進程A和業務進程B分別處于不同的模塊。
業務進程A在主用狀態業務處理過程中,發送才莫塊間消息到業務進程B。模塊間消息中攜帶業務進程A的消息結構對應的版本號。業務進程B在收到該模塊間消息后,獲取該模塊間消息中攜帶的版本號,并與自身所處模塊的該消息結構對應的版本號進行比較,若相同,即版本一致,則業務進程B進行正常的消息處理;若不相同,即版本不一致,則業務進程B則按照以下原則處理
1) 對于有定時器保護和不影響業務的消息,可以直接丟棄;
2) 對于影響業務*,如果丟棄會導致資源掛死的重要消息,需要發起釋放而不能直接丟棄;
3) 對于新接入的業務,如呼叫業務,如果是模塊間第一條消息,立即發起釋放或者發送NACK消息;
4) 對于釋放類消息,應該獲取釋放消息中的可靠數據來進行業務釋放;
5) 對于一些與業務無關的維護管理類消息,如復原類消息、負荷控制消息、維護管理消息,即使版本不一致也需要根據消息中可靠的數據來正常處理。
模塊間消息版本號采用集中注冊登記維護機制,具體的由于模塊間消息數量非常多,并且不同的業務進程針對交互的消息可能會由于協調和溝通產生理解的誤差。為了避免這種誤差,因此將所有的消息是否需要傳遞版本號以及當前的版本號值由專門進程集中注冊、維護、和管理,通過查詢注冊表決定應該如何處理;模塊間消息的交互可以統一調用封裝好的發送函數和接收函數,發送函數攜帶本模塊消息版本號,接收函數通過查詢注冊表來決定消息版本號是否一致,此非本發明重點,在此不予贅述。
對于本板主備的進程數據區版本一致,其它單板的主備進程數據區版本不一致的情況,則在其它單板發生主備倒換的時候,需要處理來自于其它單板的模塊倒換消息,并利用該模塊倒換消息把對端半呼叫在該^^塊上的非穩態和穩態不保護的呼叫全部釋放掉,保證相關的資源釋放干凈,避免資源掛死。
對于存在主備同步機制的各個進程數據區和各條模塊間消息,都需要維護各自的版本號宏。在新版本的開發過程中,如果新版本與原版本相比,某個進程數據區或者某條模塊間消息結構發生了變化,則必須將此變化的進程數據區或者模塊間消息版本號宏的取值在原版本的基礎上增加某一數值,如加i,作
為新版本的版本號,以區別新舊版本號。
本發明還提供了一種實現上述通信設備平滑升級方法的系統,該系統包括備板和主板;其中,備板包括備板升級單元、數據*單元;主板包括主板判斷單元;具體的
備板升級單元,用于加載新版本,并發送包含備板上業務進程的進程數據區版本號的進程數據區備份請求給主板;
數據備f分單元,用于接收主板判斷單元發來的*響應消息或*結束消息,進行進程數據區數據的M;
主板判斷單元,用于獲取進程數據區名普清求中的備板上業務進程的進程數據區版本號,判斷備板上業務進程的進程數據區版本號與主板上對應業務進程的進程數據區版本號是否一致,在一致時,判斷單元發送備除響應消息給備板升級單元;在不一致時,判斷單元發送備份結束消息給備板升級單元。
其中,備份響應消息中包括主板上對應業務進程的進程數據區版本號及進程數據區數據。
其中,主板和備板上需要同步的業務進程均設置有數據區版本一致性全局
變量;
在主板與備板上對應的業務進程的進程數據區版本號相同時,該數據區版
, ,1 r*V 、 、 , 、 " , ■ 。* , " , _^ —、 一墨
不一雙性全局哭玄^f反T父直刃"和問";
在主板與備板上對應的業務進程的進程數據區版本號不相同時,該數據區版本一致性全局變量被設置為"不同"。
同時,主板還設置有模塊,所述模塊包括消息接收單元和判斷單元;具體的
消息接收單元,用于接收其他模塊發來的模塊間消息;
判斷單元,用于判斷自身的消息版本號與收到的才莫塊間消息中攜帶的消息版本號是否一致,在一致時,根據模塊間消息內容進行相應的業務處理;在不一致時,則釋;^文或者丟棄該消息。
目前,核心網網元小版本升級都可以采用此種升級方法來實現。核心網網元從安全系統考慮,單板都是1+1備份的,可根據上述升級步驟進行升級,從而做到無風險平滑升級,降低升級過程對業務的影響。
以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。
1權利要求
1、一種通信設備平滑升級方法,其特征在于,包括加載新版本的備板上需要同步的業務進程向主板上對應業務進程發送進程數據區備份請求,進程數據區備份請求中攜帶進程數據區版本號;收到進程數據區備份請求后,主板判斷自身業務進程的進程數據區版本號與備板上業務進程的進程數據區版本號是否一致,若一致,則主板發送備份響應消息給備板;若不一致,則主板發送備份結束消息給備板;所有進程數據區數據備份結束后,進行主備倒換。
2、 根據權利要求1所述的通信設備平滑升級方法,其特征在于,所述M 響應消息中包括主板上對應業務進程的進程數據區版本號及進程數據區數據。
3、 根據權利要求1或2所述的通信設備平滑升級方法,其特征在于,所述 主板和備板上需要同步的業務進程均設置有數據區版本一致性全局變量;在主板與備板上對應的業務進程的進程數據區版本號相同時,設置該數據 區版本一致性全局變量為"相同";在主板與備板上對應的業務進程的進程數據區版本號不相同時,設置該數 據區版本一致性全局變量為"不同"。
4、 根據權利要求3所迷的通信設備平滑升級方法,其特征在于,所述主備 倒換具體為主板釋放非保護數據區,倒換成新備4反,向原備板發送倒換成功 消息,原備板收到倒換成功消息后倒換成新主板,向外圍板鏈路發送鏈路切換 命令,將通信鏈路切換至新主板,啟動新版本處理業務。
5、 根據權利要求4所述的通信設備平滑升級方法,其特征在于,該方法進 一步包括新備板加載新版本,進行版本升級。
6、 根據權利要求1或2所述的通信設備平滑升級方法,其特征在于,所述 主板設置有4莫塊;該方法進一步包括主板上的模塊接收到其他模塊發來的模塊間消息后, 判斷自身的消息版本號與收到的模塊間消息中攜帶的消息版本號是否一致,若一致,則根椐模塊間消息內容進行相應的業務處理;若不一致,則釋放或者丟 棄該模塊間消息。
7、 一種通信設備平滑升級系統,其特征在于,包括備板和主板;其中, 備板包括備板升級單元、數據備份單元;主板包括主板判斷單元;具體的備板升級單元,用于加載新版本,并發送包含備板上業務進程的進程數據 區版本號的進程數據區備份請求給主板;數據M單元,用于接收主板判斷單元發來的備除響應消息或備份結束消 息,進行進程數據區數據的^P分;主板判斷單元,用于獲取進程數據區備份請求中的備板上業務進程的進程 數據區版本號,判斷備板上業務進程的進程數據區版本號與主板上對應業務進 程的進程數據區版本號是否一致,在一致時,判斷單元發送備份響應消息給備 板升級單元;在不一致時,判斷單元發送M結束消息給備板升級單元。
8、 根據權利要求7所述的通信設備平滑升級系統,其特征在于,所述備份 響應消息中包括主板上對應業務進程的進程數據區版本號及進程數據區數據。
9、 根據權利要求7或8所述的通信設備平滑升級系統,其特征在于,所述 主板和備板上需要同步的業務進程均設置有數據區版本一致性全局變量;在主板與備板上對應的業務進程的進程數據區版本號相同時,該數據區版 本一致性全局變量被設置為"相同";在主板與備板上對應的業務進程的進程數據區版本號不相同時,該數據區 版本一致性全局變量凈皮設置為"不同"。
10、 根據權利要求7或8所述的通信設備平滑升級系統,其特征在于,所 述主板設置有模塊,所述模塊包括消息接收單元和判斷單元;具體的消息接收單元,用于接收其他才莫塊發來的才莫塊間消息;判斷單元,用于判斷自身的消息版本號與收到的模塊間消息中攜帶的消息 版本號是否一致,在一致時,根據模塊間消息內容進行相應的業務處理;在不 一致時,則釋放或者丟棄該消息。
全文摘要
本發明公開一種通信設備平滑升級方法,包括加載新版本的備板上需要同步的業務進程向主板對應業務進程發送進程數據區備份請求,進程數據區備份請求中攜帶進程數據區版本號;收到進程數據區備份請求后,主板判斷自身業務進程的進程數據區版本號與備板上業務進程的進程數據區版本號是否一致,若一致,則主板發送備份響應消息給備板;若不一致,則主板發送備份結束消息給備板;所有進程數據區數據備份結束后,進行主備倒換。本發明還公開了一種通信設備平滑升級系統,包括備板和主板;其中,備板包括備板升級單元、數據備份單元;主板包括主板判斷單元。本發明方法和系統能夠實現通信設備的平滑升級。
文檔編號H04L12/24GK101631044SQ20091016308
公開日2010年1月20日 申請日期2009年8月24日 優先權日2009年8月24日
發明者高紅梅 申請人:中興通訊股份有限公司