專利名稱:一種成對冗余結(jié)構(gòu)中器件的升級方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子技術(shù)領(lǐng)域,具體地涉及一種成對冗余結(jié)構(gòu)中器件的升級方 法及設(shè)備。
背景技術(shù):
在通信或存儲等對系統(tǒng)可用性、可靠性要求很高的領(lǐng)域,由很多工作節(jié)點(diǎn) 組成的系統(tǒng)內(nèi)一般包含互為冗余的成對節(jié)點(diǎn)。系統(tǒng)內(nèi)的工作節(jié)點(diǎn)數(shù)一般為偶數(shù), 節(jié)點(diǎn)之間有支撐用戶業(yè)務(wù)的通信通道。有的系統(tǒng)中在成冗余對的兩個(gè)節(jié)點(diǎn)之間 有高可用性的低數(shù)據(jù)速率通道,這種底層數(shù)據(jù)通道結(jié)構(gòu)簡單,實(shí)現(xiàn)復(fù)雜度低,
比如常見的RS-232串口, JTAG調(diào)試口等。
系統(tǒng)運(yùn)行期內(nèi),可能會在硬件上升級工作節(jié)點(diǎn),比如使用更高性能的單板 替換現(xiàn)有工作單板,這種升級被稱為硬升級。另一種則是節(jié)點(diǎn)的軟升級,即工 作節(jié)點(diǎn)投入使用后在其工作期內(nèi),會需要代碼的升級,升級的代碼可能是系統(tǒng) 運(yùn)行的程序代碼,也可能是各類可編程器件的邏輯代碼。本文涉及的是節(jié)點(diǎn)的 軟升級。
對如前所述的由多個(gè)冗余對組成的系統(tǒng),如果需要全部升級系統(tǒng),則系統(tǒng) 內(nèi)成對的節(jié)點(diǎn)是不能同時(shí)升級的,而是有先后,這是因?yàn)樵谕ㄐ呕蛘叽鎯Φ阮I(lǐng) 域內(nèi),這種冗余對承擔(dān)的用戶業(yè)務(wù)是不能隨便中斷或者根本不能中斷的。如果 冗余對中第一節(jié)點(diǎn)升級失敗,那么第二節(jié)點(diǎn)就不能再"冒險(xiǎn)"進(jìn)行升級了。
冗余對中的每一工作節(jié)點(diǎn)為一個(gè)微控制器系統(tǒng), 一般包含但不限于如下部 分用于處理數(shù)據(jù)的CPU、存放系統(tǒng)運(yùn)行代碼的各種存儲器、收發(fā)數(shù)據(jù)的通信 接口、基本輸入輸出系統(tǒng)BIOS (Basic Input Output System)、與用戶終端交互 的管理接口 、各類用于收集板卡信息及處理底層復(fù)位中斷信號等的可編程邏輯 器件(PLD, Programmable Logic Device)等。對冗余對中的節(jié)點(diǎn),現(xiàn)有的升級方法為用戶通過管理接口將升級所用的代 碼傳送給CPU,并下達(dá)升級命令。CPU解析用戶命令,將代碼按照可被具體器件 接受的格式,通過相應(yīng)的編程接口寫入至存儲或邏輯器件中。
從此過程中可以看出,節(jié)點(diǎn)的升級都是由節(jié)點(diǎn)自身的CPU完成的。
在上述節(jié)點(diǎn)升級方法中,如果由于存儲器、可編程器件等目標(biāo)器件的某種問
題,使得CPU確認(rèn)了代碼已經(jīng)寫入完畢而實(shí)際上寫入的代碼并不完整或者含有錯(cuò) 誤,這將導(dǎo)致在一次CPU認(rèn)為是升級完畢后的正常重啟之后此單板掛死。而且由 于此類目標(biāo)器件在系統(tǒng)中扮演著很重要的角色,如PLD器件一般要擔(dān)當(dāng)控制整個(gè) 單板的上電、復(fù)位等的關(guān)鍵功能,因此這類目標(biāo)器件的升級失敗將導(dǎo)致整個(gè)單 板無法再次響應(yīng)用戶命令。
此節(jié)點(diǎn)升級失敗導(dǎo)致冗余對的另一節(jié)點(diǎn)不能再"冒險(xiǎn)"升級,否則將有可 能導(dǎo)致整個(gè)冗余對掛死而中斷用戶業(yè)務(wù)。
為了解決上上面的問題,現(xiàn)有的另一種技術(shù)為單板增加了一個(gè)錯(cuò)誤恢復(fù)控 制器。該技術(shù)的節(jié)點(diǎn)升級方法和前面的技術(shù)一樣,但是如果遇到了節(jié)點(diǎn)重啟后 掛死的問題時(shí),錯(cuò)誤恢復(fù)控制器就會轉(zhuǎn)入系統(tǒng)修復(fù)模式,用默認(rèn)值刷新目標(biāo)器 件,再次重啟單板,系統(tǒng)恢復(fù)正常。該現(xiàn)有技術(shù)雖然解決了單板升級遇到底層 故障無法自修復(fù)的問題,但是其引入了新的控制器模塊,增加了系統(tǒng)的成本, 也相應(yīng)增加了系統(tǒng)的復(fù)雜度。
發(fā)明內(nèi)容
本發(fā)明提供一種成對冗余結(jié)構(gòu)中器件的升級方法及設(shè)備,以減少現(xiàn)有技術(shù) 中存在的無法軟修復(fù)和降低升級成本高的問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供一種成對冗余結(jié)構(gòu)中器件的升級方
法,該方法包括
利用該冗余對結(jié)構(gòu)中的第二冗余單元向互為冗余對的第一冗余單元的目標(biāo) 器件中寫入升級代碼,并通知所述第一冗余單元重啟;
檢査所述第一冗余單元的所述目標(biāo)器件是否升級成功;
5如果升級不成功,將所述目標(biāo)器件升級前的版本代碼重新寫入該目標(biāo)器件, 進(jìn)行目標(biāo)器件的恢復(fù)。
本發(fā)明還提供一種目標(biāo)器件的升級設(shè)備,所述目標(biāo)器件和升級設(shè)備分別位 于成冗余對的第一冗余單元和第二冗余單元中,該升級設(shè)備包括
代碼寫入單元,用于向所述目標(biāo)器件中寫入升級代碼,并通知所述第一冗 余單元重啟;
檢查單元,用于檢查所述目標(biāo)器件是否升級成功;
恢復(fù)單元,用于在所述目標(biāo)器件升級不成功時(shí),將所述目標(biāo)器件升級前的 版本代碼重新寫入該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。
本發(fā)明實(shí)施例通過成冗余對結(jié)構(gòu)的另一冗余單元來升級本冗余單元中的目 標(biāo)器件,既提高了器件升級的可靠性,又降低了額外的升級成本。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分, 并不構(gòu)成對本發(fā)明的限定。在附圖中
圖l為本發(fā)明實(shí)施例l中對器件升級的流程圖2為本發(fā)明實(shí)施例的成冗余對的本板和對板之間的交互示意圖; 圖3為本發(fā)明實(shí)施例2中對器件升級的流程圖; 圖4為本發(fā)明一實(shí)施例中目標(biāo)器件的升級設(shè)備的結(jié)構(gòu)框圖; 圖5為本發(fā)明另一實(shí)施例中目標(biāo)器件的升級設(shè)備的結(jié)構(gòu)框圖6為圖5中檢査單元的結(jié)構(gòu)框圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明的 具體實(shí)施例進(jìn)行詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施例及其說明用于解釋本 發(fā)明,但并不作為對本發(fā)明的限定。
實(shí)施例一本發(fā)明實(shí)施例提供一種成對冗余結(jié)構(gòu)中器件的升級方法。如圖1所示,該 方法包括如下步驟
步驟IIO,由該冗余對結(jié)構(gòu)中的第二冗余單元向互為冗余對的第一冗余單元 的目標(biāo)器件中寫入升級代碼,并通知所述第一冗余單元重啟。
本發(fā)明實(shí)施例中,第一冗余單元和第二冗余單元為冗余對,并且該第一冗 余單元和第二冗余單元既可以是構(gòu)成工作節(jié)點(diǎn)的單板,也可以是一個(gè)單板或節(jié) 點(diǎn)中的互為冗余的模塊。
第二冗余單元將全部升級代碼寫入第一冗余單元的目標(biāo)器件后,通知所述 第一冗余單元重啟以使升級生效。
本實(shí)施例中,所述目標(biāo)器件可以是BIOS等系統(tǒng)模塊,也可以是可編程邏輯 器件(PLD),該可編程邏輯器件包括復(fù)雜的可編程邏輯器件(CPLD)。
步驟l 2G ,檢査所述第一冗余單元的所述目標(biāo)器件是否升級成功。
正常情況下,第一冗余單元重啟后以新版本代碼運(yùn)行。但如果此時(shí)存在現(xiàn) 有技術(shù)中提到的寫入的代碼不完整或含有錯(cuò)誤等問題,將導(dǎo)致第二冗余單元認(rèn) 為升級成功了而實(shí)際上目標(biāo)器件并未升級成功,即當(dāng)?shù)谝蝗哂鄦卧貑⒑蠹磼?死。因此,在通知第一冗余單元重啟后,要在設(shè)定時(shí)間內(nèi)檢查所述第一冗余單 元的所述目標(biāo)器件是否升級成功,該設(shè)定的時(shí)間可以是系統(tǒng)正常重啟的最大時(shí) 間,但本發(fā)明并不限于此。
步驟13Q,如果升級不成功,利用所述第二冗余單元將所述目標(biāo)器件升級前 的版本代碼重新寫入第一冗余單元的該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。
通過如上的對目標(biāo)器件的升級方法,分割了成對冗余結(jié)構(gòu)中器件的業(yè)務(wù)功
能歸屬和維護(hù)功能歸屬。在現(xiàn)有技術(shù)中,冗余單元中器件的業(yè)務(wù)功能和維護(hù)功
能一般都?xì)w屬到本冗余單元的控制器,而本發(fā)明實(shí)施例中每一冗余單元中器件
的業(yè)務(wù)功能歸屬在本冗余單元的控制器,而對該器件的維護(hù)功能卻歸屬到成冗
余對的另一冗余單元上,具體例如該另一冗余單元的控制器上。這樣位于第二 冗余單元的器件只為本冗余單元的業(yè)務(wù)服務(wù),若由于這些器件的軟故障導(dǎo)致系統(tǒng)出現(xiàn)異常,那第二冗余單元就可以對第一冗余單元的器件開展維護(hù)功能。這 樣既提高了系統(tǒng)升級的可靠性,又降低了實(shí)現(xiàn)復(fù)雜度,且不增加額外的成本。
實(shí)施例二
本實(shí)施例另提出一種成對冗余結(jié)構(gòu)中器件的升級方法。本實(shí)施例中,成對 冗余結(jié)構(gòu)為一對單板,分別稱為節(jié)點(diǎn)A和節(jié)點(diǎn)B,待升級的單板稱為本板,即節(jié)
點(diǎn)A,另一單板稱為對板,即節(jié)點(diǎn)B。
圖2為本實(shí)施例的冗余對中對板升級本板的結(jié)構(gòu)示意圖。圖2中各節(jié)點(diǎn)內(nèi)部 以及節(jié)點(diǎn)間的有向箭頭代表單板升級時(shí)的數(shù)據(jù)流向,單板正常工作時(shí)的數(shù)據(jù)流 并未在圖中標(biāo)示。由圖2中可以看出,位于節(jié)點(diǎn)A上的BIOS、 PLD等器件,其編程 通道實(shí)際上是由節(jié)點(diǎn)B提供并控制的,但正常狀態(tài)下BIOS、 PLD等器件都為節(jié)點(diǎn)A 服務(wù)。因此從業(yè)務(wù)功能來看,節(jié)點(diǎn)A上的PLD等器件是歸屬于節(jié)點(diǎn)A的,而從軟升 級功能,即維護(hù)功能來看,這些器件是歸屬于節(jié)點(diǎn)B的。
如圖3所示,本實(shí)施例的對節(jié)點(diǎn)A中目標(biāo)器件的軟升級流程包括如下步驟
步驟310,節(jié)點(diǎn)B遠(yuǎn)程接收對節(jié)點(diǎn)A的目標(biāo)器件升級所用的代碼數(shù)據(jù)包,該代 碼數(shù)據(jù)包中可包含有目標(biāo)器件當(dāng)前版本的代碼和新版本的代碼,即升級代碼。
當(dāng)節(jié)點(diǎn)B上未存儲有節(jié)點(diǎn)A的待升級目標(biāo)器件的代碼數(shù)據(jù)時(shí),執(zhí)行該步驟。 此時(shí),用戶可通過節(jié)點(diǎn)B的管理接口實(shí)現(xiàn)遠(yuǎn)程接入,通過FTP方式或其他方式將 升級目標(biāo)器件的代碼數(shù)據(jù)包上傳至節(jié)點(diǎn)B中。
如果節(jié)點(diǎn)B上預(yù)先存儲有節(jié)點(diǎn)A的待升級目標(biāo)器件的代碼數(shù)據(jù),該步驟省略。
步驟320,可選地,在要為節(jié)點(diǎn)A的目標(biāo)器件進(jìn)行升級時(shí),用戶可遠(yuǎn)程接入 節(jié)點(diǎn)A,為節(jié)點(diǎn)A下達(dá)關(guān)閉業(yè)務(wù)的通知。
本實(shí)施例中,所述目標(biāo)器件可以是BIOS等系統(tǒng)模塊,也可以是可編程邏輯 器件(PLD),該可編程邏輯器件包括復(fù)雜的可編程邏輯器件(CPLD)。
步驟33Q,節(jié)點(diǎn)B通過與節(jié)點(diǎn)A之間的通信接口向節(jié)點(diǎn)A發(fā)送升級目標(biāo)器件的 消息,以通知節(jié)點(diǎn)A將要升級節(jié)點(diǎn)A上的目標(biāo)器件,如PLD器件(包括CPLD器件)。
8在對節(jié)點(diǎn)A的目標(biāo)器件進(jìn)行升級時(shí),用戶可通過管理接口給節(jié)點(diǎn)B下達(dá)升級A
的目標(biāo)器件的命令,該命令由節(jié)點(diǎn)B與節(jié)點(diǎn)A的通信接口向節(jié)點(diǎn)A發(fā)送,通知節(jié)點(diǎn) A將要升級節(jié)點(diǎn)A上的目標(biāo)器件。
步驟340,節(jié)點(diǎn)A響應(yīng)來自節(jié)點(diǎn)B的消息,關(guān)閉正在運(yùn)行的業(yè)務(wù),所有業(yè)務(wù)關(guān) 閉完成后發(fā)送應(yīng)答(ACK)消息給節(jié)點(diǎn)B。
節(jié)點(diǎn)A發(fā)送ACK消息給節(jié)點(diǎn)B,表示升級前的準(zhǔn)備就緒。
步驟350,節(jié)點(diǎn)B收到節(jié)點(diǎn)A的己準(zhǔn)備就緒的ACK消息后,將升級代碼寫入節(jié) 點(diǎn)A的目標(biāo)器件,并通知節(jié)點(diǎn)A重啟。
節(jié)點(diǎn)B可通過與節(jié)點(diǎn)A的編程通道,按照目標(biāo)器件接受的數(shù)據(jù)格式將升級代 碼寫入目標(biāo)器件。例如節(jié)點(diǎn)B通過JTAG編程通道按照J(rèn)TAG規(guī)定的數(shù)據(jù)格式將升 級代碼數(shù)據(jù)寫入到節(jié)點(diǎn)A的CPLD器件中。
節(jié)點(diǎn)B在確認(rèn)升級代碼完全寫入節(jié)點(diǎn)A的目標(biāo)器件后,通知節(jié)點(diǎn)A重啟以使升 級生效。例如,節(jié)點(diǎn)B可通過編程通道,如JTAG編程通道,校驗(yàn)升級的代碼是否 寫入完畢,確認(rèn)寫入完畢后通過通信接口命令節(jié)點(diǎn)A重啟以使升級生效。
步驟360,檢查節(jié)點(diǎn)A是否升級成功。
正常情況下,節(jié)點(diǎn)A重啟后以新版本代碼運(yùn)行。但如果遇到寫入的升級代碼 不完整或含有錯(cuò)誤等問題,則會存在節(jié)點(diǎn)B認(rèn)為節(jié)點(diǎn)A升級成功了而實(shí)際上節(jié)點(diǎn)A 并未升級成功,即當(dāng)節(jié)點(diǎn)A重啟后即掛死。因此,在通知節(jié)點(diǎn)A重啟后的設(shè)定時(shí) 間內(nèi),節(jié)點(diǎn)B要檢查節(jié)點(diǎn)A是否升級成功。
在設(shè)定時(shí)間內(nèi)檢查節(jié)點(diǎn)A升級是否成功的步驟具體可為節(jié)點(diǎn)B采用一個(gè)超 時(shí)定時(shí)策略,即啟動一個(gè)對板升級超時(shí)定時(shí)器,例如定時(shí)5分鐘,并每隔若干秒 向節(jié)點(diǎn)A發(fā)送一次查詢命令,以查詢節(jié)點(diǎn)A的狀態(tài)。如果節(jié)點(diǎn)A在運(yùn)行,則節(jié)點(diǎn)A 在收到節(jié)點(diǎn)B的查詢命令后會向節(jié)點(diǎn)B返回應(yīng)答(ACK)消息。正常情況下,節(jié)點(diǎn) A會在超時(shí)定時(shí)器設(shè)定的時(shí)間到達(dá)之前發(fā)送ACK應(yīng)答消息給節(jié)點(diǎn)B,這就證明升級 成功。如果在超時(shí)定時(shí)器設(shè)定的時(shí)間內(nèi)節(jié)點(diǎn)A沒有應(yīng)答,那么可以證明節(jié)點(diǎn)A重 啟之后掛死了。因此本步驟中節(jié)點(diǎn)B通過如下方式來檢査節(jié)點(diǎn)A是否升級成功如果在超時(shí) 定時(shí)器設(shè)定的時(shí)間(如5分鐘)之內(nèi)接收到節(jié)點(diǎn)A返回的應(yīng)答消息,那么證明節(jié)
點(diǎn)A己經(jīng)升級成功。如果在這段時(shí)間之內(nèi)節(jié)點(diǎn)A未響應(yīng),那證明對節(jié)點(diǎn)A上目標(biāo)器 件的升級并未成功。超時(shí)定時(shí)器設(shè)定的時(shí)間可以為系統(tǒng)正常關(guān)閉、重啟至正常 工作狀態(tài)的最大時(shí)間。
步驟380,如果節(jié)點(diǎn)A上目標(biāo)器件的升級不成功,節(jié)點(diǎn)B將所述目標(biāo)器件升級 前的版本重新寫入節(jié)點(diǎn)A的該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。
例如,如果節(jié)點(diǎn)B確認(rèn)節(jié)點(diǎn)A上目標(biāo)器件的升級不成功,則直接進(jìn)入強(qiáng)制恢 復(fù)目標(biāo)器件程序,將升級前的舊代碼重新寫入目標(biāo)器件,然后強(qiáng)制重啟節(jié)點(diǎn)A。
步驟390,可選地,在重啟節(jié)點(diǎn)A后可采用超時(shí)定時(shí)策略,即啟動超時(shí)定時(shí) 器,檢査目標(biāo)器件是否恢復(fù)成功。
步驟400,如果恢復(fù)不成功,可再次執(zhí)行步驟380,進(jìn)行目標(biāo)器件的恢復(fù)。 如果恢復(fù)若干次(如2次)后節(jié)點(diǎn)A仍然未響應(yīng),則執(zhí)行步驟410。
步驟410,節(jié)點(diǎn)B可通過管理接口向用戶告警。
在前述步驟390中,如果檢查目標(biāo)器件恢復(fù)成功,則節(jié)點(diǎn)B可再次執(zhí)行歩驟3 50,重新進(jìn)行節(jié)點(diǎn)A中所述目標(biāo)器件的升級。此時(shí)步驟380之前還包括步驟370, 以限定升級的次數(shù)。
步驟370,判斷升級次數(shù)是否大于設(shè)定值,如2。如果大于2,表示升級2次 還不成功,則說明系統(tǒng)可能有不能軟修復(fù)的故障,此時(shí)節(jié)點(diǎn)B可通過管理接口發(fā) 送告警信息至用戶,以通知技術(shù)人員前往維護(hù)。
如果節(jié)點(diǎn)A升級成功,可以按照與上述相同的步驟升級節(jié)點(diǎn)B,只不過此時(shí) 本版是節(jié)點(diǎn)B,對板則是節(jié)點(diǎn)A。在此不作贅述。
本發(fā)明實(shí)施例的如上冗余對中對板升級本板的方法,分割了冗余對中器件 的業(yè)務(wù)功能歸屬和維護(hù)功能歸屬,把平常都?xì)w屬到一個(gè)控制器(如節(jié)點(diǎn)A的CPU) 的兩個(gè)功能現(xiàn)在分別歸屬到成冗余對的本板和對板的兩個(gè)獨(dú)立的控制器(如分 別歸屬到節(jié)點(diǎn)A的CPU和節(jié)點(diǎn)B的控制器)上,位于本板的器件只為本板業(yè)務(wù)服務(wù),
10若由于這些器件的軟故障導(dǎo)致本板系統(tǒng)出現(xiàn)異常,那另一個(gè)正常工作的對板上 的控制器就可以對本板的器件開展維護(hù)功能。這樣可大幅提高冗余對升級的可 靠性,又降低了實(shí)現(xiàn)復(fù)雜度且不增加額外的成本。
并且,本發(fā)明實(shí)施例的對器件的升級方法,不僅限于成冗余對的單板和單 板之間,還同樣適用于一個(gè)單板上成冗余對的模塊與模塊之間的互操作,這將 很大程度地提高模塊與模塊的健壯性。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀取存儲
介質(zhì)中,比如R0M/RAM、磁碟、光盤等。 實(shí)施例3
本實(shí)施例提供一種目標(biāo)器件的升級設(shè)備,所述目標(biāo)器件和升級設(shè)備分別位 于成冗余對的第一冗余單元和第二冗余單元中,如圖4所示,該升級設(shè)備400包
括
代碼寫入單元410,用于向所述目標(biāo)器件中寫入升級代碼,并通知所述第一 冗余單元重啟。
檢査單元420,用于在所述第一冗余單元重啟后設(shè)定時(shí)間內(nèi)檢查所述目標(biāo)器 件是否升級成功。
恢復(fù)單元43G,用于在所述目標(biāo)器件升級不成功時(shí),將所述目標(biāo)器件升級前 的版本代碼重新寫入該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。
本發(fā)明另一實(shí)施例中,如圖5所示,該升級設(shè)備400還包括
獲取單元440,用于在代碼寫入單元向所述目標(biāo)器件中寫入升級代碼前獲取 所述目標(biāo)器件的升級前的版本代碼和所述升級代碼。
發(fā)送單元450,用于在代碼寫入單元向所述目標(biāo)器件中寫入升級代碼前向所 述第一冗余單元發(fā)送升級目標(biāo)器件的命令。
本發(fā)明另一實(shí)施例中,所述升級設(shè)備還包括-調(diào)用單元460,用于在所述目標(biāo)器件的恢復(fù)不成功時(shí),調(diào)用所述恢復(fù)單元進(jìn)
行目標(biāo)器件的恢復(fù),直至恢復(fù)成功或恢復(fù)達(dá)到設(shè)定的次數(shù);
報(bào)警單元470,用于在恢復(fù)達(dá)到設(shè)定的次數(shù)后還未成功時(shí),發(fā)出告警信息。 本發(fā)明實(shí)施例中,所述報(bào)警單元也可以連接第一檢查單元,用于在對第一
冗余單元的目標(biāo)器件進(jìn)行若干次升級都不成功時(shí),發(fā)出報(bào)警信息。 本發(fā)明另一實(shí)施例中,如圖6所示,所述檢査單元420包括 查詢單元610,用于在所述第一冗余單元重啟后,定期向第一冗余單元發(fā)送
查詢消息;
確認(rèn)單元620,如果在設(shè)定的時(shí)間內(nèi)接收到第一冗余單元的應(yīng)答消息,則確 認(rèn)升級成功,否則確認(rèn)升級失敗。
本發(fā)明實(shí)施例的對目標(biāo)器件的升級設(shè)備分割了成對冗余結(jié)構(gòu)中器件的業(yè)務(wù) 功能歸屬和維護(hù)功能歸屬。在現(xiàn)有技術(shù)中,冗余單元中器件的業(yè)務(wù)功能和維護(hù) 功能一般都?xì)w屬到本冗余單元的控制器,而本發(fā)明實(shí)施例中每一冗余單元中器 件的業(yè)務(wù)功能歸屬在本冗余單元的控制器,而對該器件的維護(hù)功能卻歸屬到成 冗余對的另一冗余單元上,具體例如該另一冗余單元的控制器上。這樣位于第 一冗余單元的器件只為本冗余單元的業(yè)務(wù)服務(wù),若由于這些器件的軟故障導(dǎo)致 系統(tǒng)出現(xiàn)異常,那第二冗余單元就可以對第一冗余單元的器件開展維護(hù)功能。 這樣可降低實(shí)現(xiàn)復(fù)雜度,大幅提高冗余對升級的可靠性卻不增加額外的成本。
以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn) 一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不 用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、 等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種成對冗余結(jié)構(gòu)中器件的升級方法,其特征在于,包括利用該成對冗余結(jié)構(gòu)中的第二冗余單元向互為冗余對的第一冗余單元的目標(biāo)器件中寫入升級代碼,并通知所述第一冗余單元重啟;檢查所述第一冗余單元的所述目標(biāo)器件是否升級成功;如果升級不成功,利用所述第二冗余單元將所述目標(biāo)器件升級前的版本代碼重新寫入該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,利用該冗余對結(jié)構(gòu)中的第二 冗余單元向互為冗余對的第一冗余單元的目標(biāo)器件中寫入升級代碼之前包括向所述第一冗余單元發(fā)送升級其目標(biāo)器件的命令。
3、 根據(jù)權(quán)利要求l所述的方法,其特征在于,利用該冗余對結(jié)構(gòu)中的第二 冗余單元向互為冗余對的第一冗余單元的目標(biāo)器件中寫入升級代碼之前包括第二冗余單元獲取所述目標(biāo)器件的升級前的版本代碼和所述升級代碼。
4、 根據(jù)權(quán)利要求l所述的方法,其特征在于,還包括 檢査所述目標(biāo)器件的恢復(fù)是否成功;如果不成功,重復(fù)進(jìn)行目標(biāo)器件的恢復(fù),直至恢復(fù)成功或恢復(fù)達(dá)到設(shè)定的 次數(shù);如果恢復(fù)達(dá)到設(shè)定的次數(shù)后還未成功,由該第二冗余單元發(fā)出告警信息。
5、 根據(jù)權(quán)利要求l所述的方法,其特征在于,檢査所述第一冗余單元的所 述目標(biāo)器件是否升級成功是指在所述第一冗余單元重啟后,定期向第一冗余單元發(fā)送查詢消息,如果在 設(shè)定的時(shí)間內(nèi)接收到第一冗余單元的應(yīng)答消息,則確認(rèn)升級成功;否則確認(rèn)升 級失敗。
6、 一種目標(biāo)器件的升級設(shè)備,其特征在于,所述目標(biāo)器件和升級設(shè)備分別 位于成冗余對的第一冗余單元和第二冗余單元中,該升級設(shè)備包括代碼寫入單元,用于向所述目標(biāo)器件中寫入升級代碼,并通知所述第一冗余單元重啟;檢査單元,用于檢査所述目標(biāo)器件是否升級成功;恢復(fù)單元,用于在所述目標(biāo)器件升級不成功時(shí),將所述目標(biāo)器件升級前的 版本代碼重新寫入該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。
7、 根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,還包括發(fā)送單元,用于在代碼寫入單元向所述目標(biāo)器件中寫入升級代碼前向所述 第一冗余單元發(fā)送升級目標(biāo)器件的命令。
8、 根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,還包括獲取單元,用于在代碼寫入單元向所述目標(biāo)器件中寫入升級代碼前獲取所 述目標(biāo)器件的升級前的版本代碼和所述升級代碼。
9、 根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,還包括-調(diào)用單元,用于在所述目標(biāo)器件的恢復(fù)不成功時(shí),調(diào)用所述恢復(fù)單元進(jìn)行 目標(biāo)器件的恢復(fù),直至恢復(fù)成功或恢復(fù)達(dá)到設(shè)定的次數(shù);報(bào)警單元,用于在恢復(fù)達(dá)到設(shè)定的次數(shù)后還未成功時(shí),發(fā)出告警信息。
10、 根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述檢查單元包括 查詢單元,用于在所述第一冗余單元重啟后,定期向第一冗余單元發(fā)送查詢消息;確認(rèn)單元,如果在設(shè)定的時(shí)間內(nèi)接收到第一冗余單元的應(yīng)答消息,則確認(rèn) 升級成功,否則確認(rèn)升級失敗。
全文摘要
本發(fā)明實(shí)施例提供一種成對冗余結(jié)構(gòu)中器件的升級方法及設(shè)備,該方法包括利用該冗余對結(jié)構(gòu)中的第二冗余單元向互為冗余對的第一冗余單元的目標(biāo)器件中寫入升級代碼,并通知所述第一冗余單元重啟;檢查所述第一冗余單元的所述目標(biāo)器件是否升級成功;如果升級不成功,將所述目標(biāo)器件升級前的版本代碼重新寫入該目標(biāo)器件,進(jìn)行目標(biāo)器件的恢復(fù)。本發(fā)明實(shí)施例分割了成對冗余結(jié)構(gòu)中器件的業(yè)務(wù)功能歸屬和維護(hù)功能歸屬,既提高了器件升級的可靠性,又不增加額外的成本。
文檔編號G06F11/07GK101556542SQ200910141658
公開日2009年10月14日 申請日期2009年5月25日 優(yōu)先權(quán)日2009年5月25日
發(fā)明者李曉初 申請人:成都市華為賽門鐵克科技有限公司