欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

執(zhí)行不同版本的軟件的冗余處理器的配置同步的制作方法

文檔序號:6498442閱讀:349來源:國知局
專利名稱:執(zhí)行不同版本的軟件的冗余處理器的配置同步的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及共享配置要求的冗余設(shè)備。更具體而言,本發(fā)明涉及維持網(wǎng)絡(luò)設(shè)備的高可用性。
背景技術(shù)
在被配置用于使用冗余性的系統(tǒng)內(nèi),需要至少兩個處理單元,其中至少一個被指定為“活動單元”,而至少另一個被指定為“備用單元”。這里所使用的“單元”是指一個或多個處理器、線路卡等等。備用單元的任務(wù)是在活動單元發(fā)生故障時接替活動單元,在理想情況下這是在沒有任何服務(wù)中斷的情況下進(jìn)行的?;顒訂卧?fù)責(zé)提供服務(wù)并管理系統(tǒng)配置。為了提供備用能力,在任何時刻,其配置視圖必須與活動單元所擁有的視圖保持同步。初始配置以及所有后續(xù)的配置變化都必須被同步到備用單元。
一般而言,系統(tǒng)可以被配置處于“冷”、“暖”或“熱”備用狀態(tài)。盡管這些術(shù)語未精確地定義,但是象征性的溫度增加指示出備用單元的相對較高的準(zhǔn)備就緒狀態(tài)。一般而言,冷備用狀態(tài)是指硬件冗余性。當(dāng)在冷備用狀態(tài)期間發(fā)生故障時,網(wǎng)絡(luò)設(shè)備將會重啟動,并且備用單元變成活動。在暖備用狀態(tài)中,存在硬件冗余性和足夠的應(yīng)用冗余性,從而在切換(switch over)時網(wǎng)絡(luò)設(shè)備不必重啟動。但是,經(jīng)由網(wǎng)絡(luò)設(shè)備的會話丟失并且需要重啟動。熱備用狀態(tài)是指存在硬件冗余性和足夠的應(yīng)用冗余性,從而使得一旦發(fā)生切換,設(shè)備不被重啟動,并且經(jīng)由網(wǎng)絡(luò)設(shè)備的會話經(jīng)過切換之后仍被保持。在本發(fā)明的上下文中,我們描述的是工作在被稱為“有狀態(tài)切換”(SSO)的熱備用模式中的系統(tǒng)中的配置同步。
本發(fā)明的受讓人開發(fā)了這樣的方法,在這些方法中,活動單元可以執(zhí)行與備用單元的鏡像不同的鏡像。除此之外,這些方法還允許了在網(wǎng)絡(luò)設(shè)備在無任何服務(wù)中斷的情況下工作的同時網(wǎng)絡(luò)設(shè)備的備用單元的軟件鏡像被改變。這種改變提供了更新的鏡像(即升級)或更舊的鏡像(即降級)以在備用單元上執(zhí)行。在這個改變期間,系統(tǒng)繼續(xù)在SSO(熱備用)模式中工作。

發(fā)明內(nèi)容
提供了用于在活動單元和備用單元執(zhí)行不同版本的軟件鏡像時維持配置同步的方法和裝置。優(yōu)選實(shí)現(xiàn)方式允許了即使在備用單元執(zhí)行與活動單元上執(zhí)行的鏡像不同的鏡像的情況下系統(tǒng)也能在熱備用狀態(tài)中工作。
根據(jù)本發(fā)明的某些方面,提供了維護(hù)其中兩個鏡像不同的網(wǎng)絡(luò)設(shè)備中的配置同步的方法。該方法包括以下步驟a)動態(tài)地確定具有被活動單元的第一鏡像所支持但不被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將第一組命令的至少第一部分變換成具有被備用單元上的第二鏡像所支持的第二語法的第一經(jīng)變換命令。
第二語法可以是較低級別的語法。變換步驟可以由活動單元執(zhí)行。該方法還可以包括確定第一組命令中不能被變換成第二語法的第二部分以及確定第二部分的命令是否需要被同步到備用單元。
步驟b)可以在多個部分中執(zhí)行,每個部分包括連續(xù)的變換級別之間的變換。步驟a)可以包括以下步驟確定用于第一鏡像的第二組可能的命令;確定用于第二鏡像的第三組可能的命令;以及將第二組與第三組相比較以確定第一組。該方法可以包括確定被第二鏡像支持但不被第一鏡像支持的命令的備用差異列表。該方法可以包括以下步驟將第一經(jīng)變換命令同步到備用單元。
本發(fā)明的其他方面還提供了一種維持配置同步的方法。該方法包括以下步驟a)動態(tài)地確定具有被活動單元的第一鏡像所支持并且被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將第一組命令的至少第一部分變換成具有被第二鏡像所支持的不同語法的第一經(jīng)變換命令。不同語法可以是較高級別的語法。變換步驟可以由備用單元執(zhí)行。步驟b)可以在多個部分中執(zhí)行,每個部分包括連續(xù)的變換級別之間的變換。
本發(fā)明的其他實(shí)現(xiàn)方式提供了一種維持活動單元和備用單元之間的配置同步的方法。該方法包括以下步驟由活動單元接收先前不是活動單元上的活動運(yùn)行配置的一部分的新命令;以及確定新命令是否具有被備用單元的備用鏡像所支持的第一語法。
該方法可以包括以下步驟如果確定第一語法被備用鏡像所支持,則將命令同步到備用單元。該方法可以包括以下步驟當(dāng)確定第一語法不被備用鏡像所支持時,確定命令是否可變換到被備用鏡像所支持的第二語法。
該方法可以包括以下步驟當(dāng)確定命令可變換到被備用鏡像所支持的第二語法時,將新命令變換為經(jīng)變換的命令。該方法可以包括以下步驟將經(jīng)變換的命令同步到備用單元。當(dāng)確定命令不可變換到被備用鏡像所支持的第二語法時,該方法還可以包括以下步驟確定是否允許同步該命令或者是否需要調(diào)用策略以確定適當(dāng)?shù)募m正性動作。
本發(fā)明的某些實(shí)施例提供了一種包含在機(jī)器可讀介質(zhì)中的計(jì)算機(jī)程序。計(jì)算機(jī)程序包括用于控制至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令a)動態(tài)地確定具有被活動單元的第一鏡像所支持但不被備用單元的第二鏡像所支持的第一語法的第一組命令;以及將第一組命令的至少第一部分變換成具有被備用單元上的第二鏡像所支持的第二語法的第一經(jīng)變換命令。第二語法可以是較低級別的語法。變換步驟可以由活動單元執(zhí)行。
該計(jì)算機(jī)程序還可以包括用于控制至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令確定第一組命令中不能被變換成第二語法的第二部分。如果命令的第二部分不能被變換,則它們將不會與備用單元同步。它們將會被對照DCL來驗(yàn)證,并且如果在其中找到這些命令,則當(dāng)它們在活動單元上被執(zhí)行之后,它們將不被同步。如果在DCL中未找到命令,則將調(diào)用策略并且將會通過策略判決的結(jié)果確定進(jìn)一步的動作。
步驟b)可以在多個部分中執(zhí)行,每個部分包括連續(xù)的變換級別之間的變換。步驟a)可以包括以下步驟確定用于第一鏡像的第二組可能的命令;確定用于第二鏡像的第三組可能的命令;以及將第二組與第三組相比較以確定第一組。
本發(fā)明的其他實(shí)施例提供了另一種包含在機(jī)器可讀介質(zhì)中的計(jì)算機(jī)程序。該計(jì)算機(jī)程序包括用于控制至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令a)動態(tài)地確定具有被活動單元的第一鏡像所支持并且被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將第一組命令的至少第一部分變換成具有被第二鏡像所支持的不同語法的第一經(jīng)變換命令。不同語法可以是較高級別的語法。變換步驟可以由備用單元執(zhí)行。
步驟b)可以在多個部分中執(zhí)行,每個部分包括連續(xù)的變換級別之間的變換。
本發(fā)明的其他實(shí)施例提供了一種用于維持配置同步的裝置。該裝置包括至少一個被配置成用于動態(tài)地確定具有被活動單元的第一鏡像所支持但不被備用單元的第二鏡像所支持的第一語法的第一組命令的設(shè)備;以及至少一個被配置成用于將第一組命令的至少第一部分變換成具有被備用單元上的第二鏡像所支持的第二語法的第一經(jīng)變換命令的設(shè)備。第二語法可以是可以較低級別的語法。變換步驟可以由活動單元執(zhí)行。
該裝置還可以包括至少一個被配置成用于確定第一組命令中不能被變換成第二語法的第二部分的設(shè)備。該裝置還可以包括至少一個被配置成用于確定第二部分的命令是否需要被同步到備用單元的設(shè)備。
本發(fā)明的其他實(shí)施例提供了一種用于維持配置同步的裝置。該裝置包括至少一個被配置成用于動態(tài)地確定具有被活動單元的第一鏡像所支持并且被備用單元的第二鏡像所支持的第一語法的第一組命令的設(shè)備;以及至少一個被配置成用于將第一組命令的至少第一部分變換成具有被第二鏡像所支持的不同語法的第一經(jīng)變換命令的設(shè)備。不同語法可以是較高級別的語法。變換步驟可以由備用單元執(zhí)行。步驟b)可以在多個部分中執(zhí)行,每個部分包括連續(xù)的變換級別之間的變換。
本發(fā)明的其他實(shí)施例提供了一種用于維持配置同步的裝置。該裝置包括其上存儲有第一鏡像的至少一個活動單元,所述至少一個活動單元被配置成創(chuàng)建被第一鏡像所支持的命令的第一列表。該裝置還包括其上存儲有第二鏡像的備用單元,該備用單元被配置成執(zhí)行以下步驟創(chuàng)建被第二鏡像所支持的命令的第二列表;確定在第一列表上但不在第二列表上的命令的活動差異列表;以及確定在第二列表上但不在第一列表上的命令的備用差異列表。
所述一個或多個活動單元還可以被配置成執(zhí)行以下步驟生成第一鏡像的運(yùn)行配置;以及確定是運(yùn)行配置的一部分并且是活動差異列表的一部分的命令的第三列表。所述一個或多個活動單元還可以被配置成執(zhí)行以下步驟當(dāng)?shù)谌斜硎强占瘯r,將運(yùn)行配置同步到備用單元。
所述一個或多個活動單元還可以被配置成執(zhí)行以下步驟將命令的第三列表變換成第二語法;以及將經(jīng)變換的命令的第三列表同步到備用單元。該裝置可以包括多個活動單元。備用單元還可以被配置成將經(jīng)同步的運(yùn)行配置的命令變換到較高級別的語法。


圖1是示出具有活動單元和備用單元的網(wǎng)絡(luò)設(shè)備的圖。
圖2是概括成批(bulk)配置同步過程的流程圖。
圖3A和圖3B是指示成批配置同步過程的細(xì)節(jié)的流程圖。
圖4是概括逐行配置同步過程的流程圖。
圖5示出可以被配置成實(shí)現(xiàn)本發(fā)明的某些方面的網(wǎng)絡(luò)設(shè)備的簡化版本。
具體實(shí)施例方式
在下面的描述中闡述了許多具體細(xì)節(jié),以便全面理解本發(fā)明。但是,沒有這些具體細(xì)節(jié)中的某些或全部也可以實(shí)施本發(fā)明,這對于本領(lǐng)域的技術(shù)人員來說是很明顯的。在另外一些例子里,沒有對公知過程步驟進(jìn)行詳細(xì)的描述,以免不必要地模糊了本發(fā)明。
思科系統(tǒng)公司(Cisco Systems,Inc.)已經(jīng)開發(fā)出了允許操作系統(tǒng)鏡像的不同版本在網(wǎng)絡(luò)設(shè)備的活動和備用單元上運(yùn)行的方法和設(shè)備。一個這種方法被稱為服務(wù)中軟件升級(“ISSU”),它通過在備用單元加入配置時檢查兼容性并且在工作期間在有狀態(tài)客戶端之間進(jìn)行協(xié)商,來完成這一點(diǎn)。ISSU的某些方面例如在美國專利申請No.10/156,563和10/156,556中有描述,這里通過引用將這些專利申請并入,用于所有目的。雖然本發(fā)明的某些優(yōu)選實(shí)現(xiàn)方式涉及ISSU,但是本發(fā)明并不局限于與ISSU一起使用。
圖1示出網(wǎng)絡(luò)設(shè)備100,其具有機(jī)箱101內(nèi)的活動單元105和備用單元110。由于網(wǎng)絡(luò)設(shè)備100包括不止一個單元,因此這樣配置的單元有時在這里被稱為“冗余的”。網(wǎng)絡(luò)設(shè)備100還包括多個線路卡105?;顒訂卧?05負(fù)責(zé)為路由器提供服務(wù)。
當(dāng)活動單元105發(fā)生故障時,備用單元110接管。優(yōu)選地,備用單元保持在“熱”備用狀態(tài)中,從而允許在活動單元105發(fā)生故障時進(jìn)行有狀態(tài)切換。備用單元110和活動單元105的配置狀態(tài)必須保持同步,以允許在活動單元105發(fā)生故障時進(jìn)行有狀態(tài)切換。如果,例如,更新版本的操作系統(tǒng)鏡像被安裝在了備用單元上,則這種同步可能會成問題。進(jìn)一步使情況復(fù)雜化的是,在活動單元處于工作中的同時,活動單元的配置狀態(tài)可能被修改。
根據(jù)本發(fā)明的某些優(yōu)選實(shí)現(xiàn)方式,同步過程發(fā)生在兩個不同的階段中。首先,在備用單元初始化并向“熱備用”狀態(tài)發(fā)展期間,可以觸發(fā)成批配置同步或“bulk config sync”過程,在這個過程期間,運(yùn)行配置與活動單元同步。這例如可以通過將運(yùn)行配置復(fù)制到備用單元中的指定RAM位置來實(shí)現(xiàn)。
根據(jù)優(yōu)選實(shí)現(xiàn)方式,通過遍歷所有靜態(tài)定義的解析節(jié)點(diǎn)并將“命令行接口(“CLI”)轉(zhuǎn)儲(dump)”的結(jié)果存儲在緩沖器中,來收集單元中可以實(shí)現(xiàn)的所有可能的命令。于是輸出緩沖器反映了單元上的鏡像的當(dāng)前解析器鏈的瞬象。通過比較備用單元和活動單元的CLI轉(zhuǎn)儲結(jié)果,確定(優(yōu)選通過備用單元)哪些命令在活動單元上可用但在備用單元上不可用,以及反之。正如下文中更詳細(xì)描述的,一個比較用在活動單元運(yùn)行更高級別版本的命令時。這個比較是確定哪些命令在被同步到備用單元之前必須被變換的基礎(chǔ)。這些命令在同步之前被變換成較低級別的語法。其他命令被同步到備用單元,然后可以被變換成較高級別的語法。當(dāng)備用單元運(yùn)行更高級別版本的命令時,會發(fā)生這種情況。
在完成成批配置同步之后,在網(wǎng)絡(luò)設(shè)備處于工作中的同時,活動單元的配置狀態(tài)將會經(jīng)常改變。因此,有必要經(jīng)由進(jìn)行中的逐行同步過程來使備用單元維持在“熱”備用狀態(tài)。
圖2、圖3A和圖3B是示出根據(jù)本發(fā)明的某些實(shí)現(xiàn)方式的成批配置同步(“bulk config sync”)過程的流程圖。在成批配置同步期間,備用單元將會接收活動單元的運(yùn)行配置文件,該文件將被用于配置備用單元。圖2的左側(cè)部分指示成批配置同步期間活動單元的功能200,右側(cè)部分指示備用單元的功能250。
在步驟202和252中,活動單元和備用單元初始化?;顒訂卧M(jìn)行到“活動”狀態(tài),而同時備用單元在其初始化期間被暫停,直到活動單元達(dá)到活動狀態(tài),從而,活動單元啟動完成并運(yùn)行(步驟204),同時備用單元在初始化期間被停止,等待活動單元通知它繼續(xù)進(jìn)行。在初始化過程期間,通過遍歷所有靜態(tài)定義的解析節(jié)點(diǎn)來收集在每個單元中可以實(shí)現(xiàn)的所有可能的配置命令,從而創(chuàng)建該單元所支持的所有可能的CLI命令的列表,在這里這被稱為“CLI轉(zhuǎn)儲”。
所有模式(除了“exec”模式之外)下的所有命令都在一個模式即“全局配置模式”下被收集,這是因?yàn)楦鱾€配置命令在整個CLI上都是唯一的。在這個CLI收集過程中,活動單元中創(chuàng)建的二元樹被填充以解析鏈遍歷期間生成的所有命令,以去除任何冗余條目。然后,所有命令都被轉(zhuǎn)儲到緩沖器中,并被寫入物理上位于備用單元中的DRAM占位符中,以便活動CLI轉(zhuǎn)儲可以被備用單元所讀取。
同時,通過經(jīng)歷相同的過程,在備用單元中也創(chuàng)建二元樹。通過對相同條目的備用二元樹搜索,遍歷來自活動CLI轉(zhuǎn)儲的每行命令。如果未找到命令,則該命令被輸入到“差異(Diff)列表”中,該列表將被傳送給活動單元。
優(yōu)選實(shí)現(xiàn)方式還包括在配置同步初始化期間由活動單元和備用單元創(chuàng)建變換函數(shù)表(“TFT”)。根據(jù)某些這樣的實(shí)現(xiàn)方式,TFT是一個跳躍列表,其被可編程地填充以用于在解析鏈被初始化時通過每個組件對命令進(jìn)行升級或降級的函數(shù)指針。每個預(yù)先編程的函數(shù)可以對一個命令進(jìn)行升級或降級。調(diào)用者判定是否調(diào)用函數(shù),并且這些函數(shù)天生就會按其定義進(jìn)行升級或降級。因此,在這個示例性實(shí)現(xiàn)方式的步驟202和步驟252期間,活動單元和備用單元初始化解析鏈,并以用于升級和降級函數(shù)的函數(shù)指針來填充其各自的TFT。
在步驟206和步驟254的某些實(shí)現(xiàn)方式中,兩個單元都將其各自的CLI轉(zhuǎn)儲輸出提取到單獨(dú)的緩沖器中。在某些實(shí)現(xiàn)方式中,備用CLI轉(zhuǎn)儲保持二元樹格式?;顒訂卧€向備用單元發(fā)送指示活動單元的CLI轉(zhuǎn)儲輸出的大小的信息。在步驟256中,備用單元在可由備用單元訪問的存儲器中(例如在備用單元的DRAM區(qū)域中)創(chuàng)建一個文件,該文件在這里被稱為CLI轉(zhuǎn)儲文件系統(tǒng)或“filesys”(“CDFS”)。在步驟208和步驟258中,活動單元將其CLI轉(zhuǎn)儲復(fù)制到備用單元的CDFS中。然后活動單元暫停HA初始化過程,直到接收到來自備用單元的更多信息為止。
在步驟260中,備用單元通過將CDFS的內(nèi)容與其自己的CLI轉(zhuǎn)儲輸出相比較,來比較來自活動單元和備用單元的CLI轉(zhuǎn)儲,在本示例中其自己的CLI轉(zhuǎn)儲輸出是以二元樹格式存儲的。在另一種實(shí)施例中,該計(jì)算是由網(wǎng)絡(luò)設(shè)備的另一個部分執(zhí)行的。在該步驟期間,備用單元確定在活動單元上可用但在備用單元上不可用的命令的列表。這個列表被稱為活動差異列表(“ADL”)。ADL被用于識別如果不修改就直接同步則無法在備用單元上成功執(zhí)行的命令或者ADL上的命令必須在同步之前被轉(zhuǎn)換成可在備用單元上執(zhí)行的格式,或者這些命令根本無法同步。
某些命令可能在備用鏡像中被刪除,但仍被活動鏡像所支持。某些命令可能是在活動單元上新創(chuàng)建的,但尚未被備用單元所支持。這組命令不能被變換以使其起作用,從而它們不能被同步到備用單元。根據(jù)優(yōu)選實(shí)現(xiàn)方式,不關(guān)心列表(“DCL”)被填充以只在活動單元中可用而不需要被同步到備用單元的命令條目。
在步驟260中,備用單元還確定“SDL”(備用差異列表),該列表是在備用單元上可用但在活動單元上不可用的命令的列表。SDL被用于驗(yàn)證為備用單元上不是備用單元的DCL的一部分并且不是活動單元的CDFS的一部分的那些命令注冊了適當(dāng)?shù)淖儞Q函數(shù)。如果這些命令的用于對命令進(jìn)行升級/降級的變換函數(shù)未被注冊,則加載在活動單元和備用單元上的兩個鏡像被聲明為不兼容(例如ISSU不兼容)。工作模式被降級到無狀態(tài)冗余模式。
在步驟262中,備用單元將ADL發(fā)送到活動單元,活動單元在步驟212中驗(yàn)證ADL。在步驟264中,備用單元驗(yàn)證SDL。作為該驗(yàn)證過程的一部分,使每個DL的每個條目經(jīng)過TFT,以確定是否注冊了匹配的變換函數(shù)。
在步驟214中,活動單元收集其運(yùn)行配置,并向備用單元發(fā)送指示經(jīng)變換的運(yùn)行配置的文件大小的信息。在步驟266中,備用單元部分基于文件大小信息創(chuàng)建一個文件(在這里是“RCSF filesys”),活動單元的運(yùn)行配置將被復(fù)制到該文件中。
在步驟216至步驟232中,如果必要的話,運(yùn)行配置的命令被變換。如果在ADL中找到運(yùn)行配置的命令的匹配條目,則將運(yùn)行配置的那一行饋送到對命令版本進(jìn)行降級的至少一個變換函數(shù)。重復(fù)這個變換過程,直到或者(1)發(fā)現(xiàn)來自變換的輸出命令是可在備用單元上執(zhí)行的命令,或者(2)系統(tǒng)確定命令不兼容。如果命令不兼容,則系統(tǒng)優(yōu)選地將工作模式改變成無狀態(tài)模式,或?qū)⑾到y(tǒng)置于非冗余模式中,并重啟動備用單元。這個過程在圖3A中示出。
在步驟318中,備用單元將收集到的運(yùn)行配置的每一行饋送到成批配置同步變換引擎中。在步驟320中,將運(yùn)動配置的每個命令與ADL相比較,以確定是否存在匹配。如果沒有匹配,則意味著命令可以被備用單元使用。因此,命令被寫入到輸出緩沖器(步驟330),并且過程繼續(xù)到步驟232。
如果在步驟320中找到匹配,則意味著命令不能被備用單元使用。過程繼續(xù)到步驟322,在該步驟中,活動單元確定命令是否可變換。如果是的話,則在步驟324中命令被降級。
優(yōu)選地,命令每次被變換一個級別,而不是一次就被直接轉(zhuǎn)換到目標(biāo)格式。例如,假設(shè)cmd_x被升級為cmd_y,然后被升級為跨操作系統(tǒng)鏡像的多個版本的cmd_z。在升級場景中,cmd_x首先被轉(zhuǎn)換為cmd_y,然后被轉(zhuǎn)換為cmd_z;cmd_x不被直接變換為cmd_z。從而,活動單元上執(zhí)行的所有配置命令都以相對于其在活動單元上的情況被降級或保持不變的方式被同步到備用單元。
當(dāng)命令被降級時,經(jīng)變換的命令的輸出可能不同于原始輸入的命令的輸出。為了針對解決這一潛在問題,針對這種經(jīng)變換的命令,支持解析器返回代碼(“PRC”),以便可以驗(yàn)證在備用單元上執(zhí)行的結(jié)果。降級情形發(fā)生在較高(較后)版本的鏡像運(yùn)行在活動單元上時,因而某些在活動單元上可配置的命令在備用單元上則不是有效的。因此,這些命令或者必須被變換成在備用單元上可配置的較低的版本,或者這些命令不應(yīng)當(dāng)被同步。
如果命令不可變換,則在步驟326中備用單元確定命令是否在其“不關(guān)心列表”上。如果是的話,則命令不需要被同步(因此不被同步)。
如果命令不在DCL上,則調(diào)用策略處理器(步驟328)。這種情形不會意外地發(fā)生,這是因?yàn)槿魏慰赡軐?dǎo)致這種差錯的情況都會在鏡像被裝運(yùn)之前被得知和公布。策略處理器例如是調(diào)用一組規(guī)則的軟件。如果策略處理器確定命令較重要但不能被同步,則在某些實(shí)現(xiàn)方式中,將丟棄命令,聲明“喪失同步”狀態(tài)并報告差錯,如步驟329中所示。命令不被寫入到輸出緩沖器,也不被用于同步備用單元。備用單元將會被重啟動,系統(tǒng)將會返回非冗余配置中或無狀態(tài)工作模式中。然后過程繼續(xù)到步驟328。
但是,如果圖3A中所示的過程正常地完成,則方法以圖2的步驟234和268繼續(xù)。在這里,活動單元將其經(jīng)變換的運(yùn)行配置復(fù)制到備用單元所準(zhǔn)備的文件中(在這里是“CDFS filesys”),該文件可能位于備用單元的DRAM中。
在升級場景中,在備用單元上支持較高版本的命令,因此升級轉(zhuǎn)換發(fā)生在備用單元上下文中。即,備用單元支持比從活動單元同步的鏡像的版本更高的命令。如果備用單元在運(yùn)行更新的鏡像版本,則每個命令行通過TFT被處理,以查明它是否能被進(jìn)一步升級。然后在備用單元上執(zhí)行該命令。
一個這種命令升級過程由圖3B的流程圖所示。在步驟374中,備用單元讀取從活動單元接收到的運(yùn)行配置文件的每一行(在這里是通過讀取RCSF進(jìn)行的),并將每一行發(fā)送到升級變換引擎。在步驟376中,備用單元確定命令是否可變換(在本示例中是確定命令是否可被升級)。如果是的話,則在步驟378中命令被變換(在這里是被升級)。重復(fù)步驟376和步驟378,直到在備用單元的TFT中沒有升級變換函數(shù)可用。此時,確定命令不能再被進(jìn)一步變換,并且在步驟380中處理命令行。
在備用單元處理了RCSF的所有命令行之后,在步驟284中觸發(fā)驗(yàn)證過程(見圖2),以確定是否所有經(jīng)解析的命令都被正確地配置。步驟284確保了不存在由于在活動單元和備用單元上運(yùn)行不同版本的鏡像而引起的配置失配。
逐行配置同步在成批配置同步完成并且網(wǎng)絡(luò)設(shè)備正常工作之后,只要在活動單元上發(fā)生配置變化,運(yùn)行在備用單元上的鏡像就必須被升級,以使其保持與活動單元的鏡像同步。這個過程在圖4中示出。
在步驟405中,新的命令從活動單元進(jìn)入。在步驟410中,確定該命令是否在ADL中。如果不是的話,則在步驟415中,新命令被同步。如果是的話,則確定命令是否可變換(步驟420)。如果命令是可變換的,則在步驟425中它被變換。然后過程返回步驟410,在該步驟中對經(jīng)變換的命令進(jìn)行估計(jì),以確定它是否在ADL上。
如果命令不可變換,則將其與DCL相比較(步驟430)。如果命令在DCL上,則命令不被同步(步驟435)。如果命令不在DCL上,則策略處理器被調(diào)用(步驟440),并且命令不被同步。根據(jù)策略處理器的判決,會隨之發(fā)生其他后果。例如,如步驟445所示,可以僅僅是丟棄命令并發(fā)出警告。或者,如步驟450所示,可以對備用狀態(tài)進(jìn)行降級。
圖5示出可以被配置成實(shí)現(xiàn)本發(fā)明的某些方法的網(wǎng)絡(luò)設(shè)備的示例。網(wǎng)絡(luò)設(shè)備560包括活動中央處理單元(CPU)562、備用CPU 592、接口568和總線567(例如PCI總線)。一般而言,接口568包括適用于與適當(dāng)介質(zhì)通信的端口569。在某些實(shí)施例中,接口568中的一個或多個包括至少一個獨(dú)立處理器574,并且在某些情況下包括易失性RAM。獨(dú)立處理器574例如可以是ASIC或任何其他適當(dāng)?shù)奶幚砥鳌?br> 根據(jù)某些這樣的實(shí)施例,這些獨(dú)立處理器574執(zhí)行這里所描述的邏輯的至少某些功能。在某些實(shí)施例中,接口568中的一個或多個控制諸如介質(zhì)控制和管理這樣的通信密集型任務(wù)。通過為通信密集型任務(wù)提供單獨(dú)的處理器,接口568允許了活動CPU 562高效地執(zhí)行諸如路由選擇計(jì)算、網(wǎng)絡(luò)診斷、安全性功能等其他功能。
接口568一般是作為接口卡(有時稱為“線路卡”)提供的。一般而言,接口568控制經(jīng)由網(wǎng)絡(luò)的數(shù)據(jù)分組的發(fā)送和接收,并且有時支持與網(wǎng)絡(luò)設(shè)備560一起使用的其他外圍設(shè)備??梢蕴峁┑慕涌谟蠵C接口、以太網(wǎng)接口、幀中繼接口、線纜接口、DSL接口、令牌環(huán)接口等等。此外,可以提供各種甚高速接口,例如快速以太網(wǎng)接口、千兆比特以太網(wǎng)接口、ATM接口、HSSI接口、POS接口、FDDI接口、ASI接口、DHEI接口等等。
在本發(fā)明的某些實(shí)現(xiàn)方式中,當(dāng)在適當(dāng)?shù)能浖蚬碳目刂浦聞幼鲿r,活動CPU 562和備用CPU 592可以負(fù)責(zé)實(shí)現(xiàn)與本申請中描述的所需網(wǎng)絡(luò)設(shè)備的功能相關(guān)聯(lián)的特定功能。根據(jù)某些實(shí)施例,活動CPU 562和備用CPU 592在包括操作系統(tǒng)(例如由思科系統(tǒng)公司開發(fā)的專用操作系統(tǒng)Cisco IOS,等等)和任何適當(dāng)?shù)膽?yīng)用軟件在內(nèi)的軟件的控制下實(shí)現(xiàn)所有這些功能。
CPU 562可以包括一個或多個處理器563,例如來自Motorola微處理器家族或MIPS微處理器家族的處理器。在另一個實(shí)施例中,處理器563是專門設(shè)計(jì)的用于控制網(wǎng)絡(luò)設(shè)備560的操作的硬件。在特定實(shí)施例中,存儲器561(例如非易失性RAM和/或ROM)也構(gòu)成CPU 562的一部分。但是,有許多不同的將存儲器耦合到系統(tǒng)的方式。存儲器塊561可以用于多種用途,例如緩存和/或存儲數(shù)據(jù)、編程指令等等。類似地,備用CPU592可以包括一個或多個處理器593和存儲器塊591。
不論網(wǎng)絡(luò)設(shè)備的配置如何,它都可以采用一個或多個存儲器或存儲器模塊(例如存儲器塊565),這些存儲器或存儲器模塊被配置成存儲數(shù)據(jù)、用于通用網(wǎng)絡(luò)操作的程序指令以及/或者其他與這里所描述的技術(shù)功能相關(guān)的信息。程序指令例如可以控制操作系統(tǒng)和/或一個或多個應(yīng)用程序的操作。
由于這種信息和程序指令可以被用來實(shí)現(xiàn)這里所描述的系統(tǒng)/方法,因此本發(fā)明涉及包括用于執(zhí)行這里所描述的各種操作的程序指令、狀態(tài)信息等的機(jī)器可讀介質(zhì)。機(jī)器可讀介質(zhì)的示例包括但不限于磁介質(zhì),例如硬盤、軟盤和磁帶;光介質(zhì),例如CD-ROM盤;磁光介質(zhì);以及被專門配置成存儲和執(zhí)行程序指令的硬件設(shè)備,例如只讀存儲器設(shè)備(ROM)和隨機(jī)訪問存儲器(RAM)。本發(fā)明也可以實(shí)現(xiàn)在傳播經(jīng)過適當(dāng)介質(zhì)的載波中,例如無線電波、光線路、電線路等等。程序指令的示例既包括例如由編譯器產(chǎn)生的機(jī)器代碼,也包括包含可由計(jì)算機(jī)利用解釋器執(zhí)行的更高級別的代碼的文件。
雖然圖5所示的系統(tǒng)示出了本發(fā)明的一個特定網(wǎng)絡(luò)設(shè)備,但是它決不是唯一的可在其上實(shí)現(xiàn)本發(fā)明的網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)。例如,常常使用具有處理通信以及路由選擇計(jì)算等的單個處理器的體系結(jié)構(gòu)。此外,其他類型接口和介質(zhì)也可以與網(wǎng)絡(luò)設(shè)備一起使用。接口/線路卡之間的通信路徑可以是基于總線的(如圖5所示),或者是基于交換結(jié)構(gòu)的(例如縱橫式交換機(jī))。
其他實(shí)施例一般而言,本發(fā)明的技術(shù)可以實(shí)現(xiàn)在軟件、硬件、固件和/或微代碼上。例如,它們可以實(shí)現(xiàn)在操作系統(tǒng)內(nèi)核中、單獨(dú)的用戶進(jìn)程中、綁定到網(wǎng)絡(luò)應(yīng)用中的庫程序包中、專用構(gòu)造的機(jī)器上或網(wǎng)絡(luò)接口卡上。在所有情況下,這些處理單元都必須按冗余關(guān)系成對。在本發(fā)明的特定實(shí)施例中,本發(fā)明的技術(shù)是在諸如操作系統(tǒng)這樣的軟件中或運(yùn)行在操作系統(tǒng)上的應(yīng)用程序中實(shí)現(xiàn)的。
本發(fā)明的技術(shù)的軟件或軟件/硬件混合實(shí)現(xiàn)方式可以實(shí)現(xiàn)在由存儲在存儲器中的計(jì)算機(jī)程序選擇性地激活或重配置的通用可編程機(jī)器上。這種可編程機(jī)器可以是被設(shè)計(jì)成處理網(wǎng)絡(luò)流量的網(wǎng)絡(luò)設(shè)備,例如以上參考圖5所描述的網(wǎng)絡(luò)設(shè)備。在另一種實(shí)施例中,本發(fā)明的技術(shù)可以實(shí)現(xiàn)在諸如個人計(jì)算機(jī)或工作站之類的通用網(wǎng)絡(luò)主機(jī)上。此外,本發(fā)明可以至少部分地實(shí)現(xiàn)在網(wǎng)絡(luò)設(shè)備或通用計(jì)算設(shè)備的卡(例如接口卡)上。
雖然這里示出和描述了本發(fā)明的示例性實(shí)施例和應(yīng)用,但是許多保持在本發(fā)明的概念、范圍和精神內(nèi)的變化和修改都是可能實(shí)現(xiàn)的,并且本領(lǐng)域的普通技術(shù)人員在熟讀本申請之后將會清楚看出這些變化。
例如,本發(fā)明的方法可以以1∶1或1∶N處理單元關(guān)系來實(shí)現(xiàn)。換言之,可以存在具有單個備用單元的單個活動單元或者多個活動單元。
因此,當(dāng)前的實(shí)施例應(yīng)當(dāng)被認(rèn)為是示例性的而非限制性的,并且本發(fā)明并不局限于這里給出的細(xì)節(jié),而是可以在所附權(quán)利要求范圍和等同物內(nèi)被修改。
權(quán)利要求
1.一種維持配置同步的方法,該方法包括a)動態(tài)地確定具有被活動單元的第一鏡像所支持但不被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將所述第一組命令的至少第一部分變換成具有被所述備用單元上的所述第二鏡像所支持的第二語法的第一經(jīng)變換命令。
2.如權(quán)利要求1所述的方法,其中所述第二語法是較低級別的語法。
3.如權(quán)利要求1所述的方法,其中所述變換步驟由所述活動單元執(zhí)行。
4.如權(quán)利要求1所述的方法,還包括c)確定所述第一組命令中不能被變換成所述第二語法的第二部分。
5.如權(quán)利要求1所述的方法,還包括d)確定所述第二部分的命令是否需要被同步到所述備用單元。
6.如權(quán)利要求1所述的方法,其中步驟b)是在多個部分中執(zhí)行的,每個部分包括連續(xù)的變換級別之間的變換。
7.如權(quán)利要求1所述的方法,其中步驟a)包括確定用于所述第一鏡像的第二組可能的命令;確定用于所述第二鏡像的第三組可能的命令;以及將所述第二組與所述第三組相比較以確定所述第一組。
8.如權(quán)利要求1所述的方法,還包括確定被所述第二鏡像支持但不被所述第一鏡像支持的命令的備用差異列表。
9.如權(quán)利要求1所述的方法,還包括以下步驟將所述第一經(jīng)變換命令同步到所述備用單元。
10.一種維持配置同步的方法,該方法包括a)動態(tài)地確定具有被活動單元的第一鏡像所支持并且被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將所述第一組命令的至少第一部分變換成具有被所述第二鏡像所支持的不同語法的第一經(jīng)變換命令。
11.如權(quán)利要求10所述的方法,其中所述不同語法是較高級別的語法。
12.如權(quán)利要求10所述的方法,其中所述變換步驟由所述備用單元執(zhí)行。
13.如權(quán)利要求10所述的方法,其中步驟b)是在多個部分中執(zhí)行的,每個部分包括連續(xù)的變換級別之間的變換。
14.一種維持活動單元和備用單元之間的配置同步的方法,該方法包括由所述活動單元接收先前不是所述活動單元上的活動運(yùn)行配置的一部分的新命令;以及確定所述新命令是否具有被所述備用單元的備用鏡像所支持的第一語法。
15.如權(quán)利要求14所述的方法,還包括以下步驟如果確定所述第一語法被所述備用鏡像所支持,則將所述命令同步到所述備用單元。
16.如權(quán)利要求14所述的方法,還包括以下步驟當(dāng)確定所述第一語法不被所述備用鏡像所支持時,確定所述命令是否可變換到被所述備用鏡像所支持的第二語法。
17.如權(quán)利要求16所述的方法,還包括以下步驟當(dāng)確定所述命令可變換到被所述備用鏡像所支持的所述第二語法時,將所述新命令變換為經(jīng)變換的命令。
18.如權(quán)利要求16所述的方法,還包括以下步驟當(dāng)確定所述命令不可變換到被所述備用鏡像所支持的所述第二語法時,確定所述命令是否需要被同步到所述備用單元。
19.如權(quán)利要求17所述的方法,還包括以下步驟將所述經(jīng)變換的命令同步到所述備用單元。
20.如權(quán)利要求18所述的方法,還包括以下步驟當(dāng)確定所述命令不可變換到被所述備用鏡像所支持的所述第二語法時,調(diào)用策略函數(shù)。
21.一種包含在機(jī)器可讀介質(zhì)中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于控制至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令a)動態(tài)地確定具有被活動單元的第一鏡像所支持但不被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將所述第一組命令的至少第一部分變換成具有被所述備用單元上的所述第二鏡像所支持的第二語法的第一經(jīng)變換命令。
22.如權(quán)利要求21所述的計(jì)算機(jī)程序,其中所述第二語法是較低級別的語法。
23.如權(quán)利要求21所述的計(jì)算機(jī)程序,其中所述變換步驟由所述活動單元執(zhí)行。
24.如權(quán)利要求21所述的計(jì)算機(jī)程序,還包括用于控制所述至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令c)確定所述第一組命令中不能被變換成所述第二語法的第二部分。
25.如權(quán)利要求21所述的計(jì)算機(jī)程序,還包括用于控制所述至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令d)確定所述第二部分的命令是否需要被同步到所述備用單元。
26.如權(quán)利要求21所述的計(jì)算機(jī)程序,其中步驟b)是在多個部分中執(zhí)行的,每個部分包括連續(xù)的變換級別之間的變換。
27.如權(quán)利要求21所述的計(jì)算機(jī)程序,其中步驟a)包括確定用于所述第一鏡像的第二組可能的命令;確定用于所述第二鏡像的第三組可能的命令;以及將所述第二組與所述第三組相比較以確定所述第一組。
28.一種包含在機(jī)器可讀介質(zhì)中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于控制至少一個網(wǎng)絡(luò)設(shè)備執(zhí)行以下步驟的指令a)動態(tài)地確定具有被活動單元的第一鏡像所支持并且被備用單元的第二鏡像所支持的第一語法的第一組命令;以及b)將所述第一組命令的至少第一部分變換成具有被所述第二鏡像所支持的不同語法的第一經(jīng)變換命令。
29.如權(quán)利要求28所述的計(jì)算機(jī)程序,其中所述不同語法是較高級別的語法。
30.如權(quán)利要求28所述的計(jì)算機(jī)程序,其中所述變換步驟由所述備用單元執(zhí)行。
31.如權(quán)利要求28所述的計(jì)算機(jī)程序,其中步驟b)是在多個部分中執(zhí)行的,每個部分包括連續(xù)的變換級別之間的變換。
32.一種用于維持配置同步的裝置,該裝置包括用于動態(tài)地確定具有被活動單元的第一鏡像所支持但不被備用單元的第二鏡像所支持的第一語法的第一組命令的裝置;以及用于將所述第一組命令的至少第一部分變換成具有被所述備用單元上的所述第二鏡像所支持的第二語法的第一經(jīng)變換命令的裝置。
33.如權(quán)利要求32所述的裝置,其中所述第二語法是較低級別的語法。
34.如權(quán)利要求32所述的裝置,其中所述變換步驟由所述活動單元執(zhí)行。
35.如權(quán)利要求32所述的裝置,還包括用于確定所述第一組命令中不能被變換成所述第二語法的第二部分的裝置。
36.如權(quán)利要求32所述的裝置,還包括用于確定所述第二部分的命令是否需要被同步到所述備用單元的裝置。
37.一種用于維持配置同步的裝置,該裝置包括用于動態(tài)地確定具有被活動單元的第一鏡像所支持并且被備用單元的第二鏡像所支持的第一語法的第一組命令的裝置;以及用于將所述第一組命令的至少第一部分變換成具有被所述第二鏡像所支持的不同語法的第一經(jīng)變換命令的裝置。
38.如權(quán)利要求37所述的裝置,其中所述不同語法是較高級別的語法。
39.如權(quán)利要求37所述的裝置,其中所述變換步驟由所述備用單元執(zhí)行。
40.如權(quán)利要求37所述的裝置,其中步驟b)是在多個部分中執(zhí)行的,每個部分包括連續(xù)的變換級別之間的變換。
41.一種用于維持配置同步的裝置,該裝置包括其上存儲有第一鏡像的至少一個活動單元,所述至少一個活動單元被配置成創(chuàng)建被所述第一鏡像所支持的命令的第一列表;其上存儲有第二鏡像的備用單元,所述備用單元被配置成執(zhí)行以下步驟創(chuàng)建被所述第二鏡像所支持的命令的第二列表;確定在所述第一列表上但不在所述第二列表上的命令的活動差異列表;以及確定在所述第二列表上但不在所述第一列表上的命令的備用差異列表。
42.如權(quán)利要求41所述的裝置,其中所述至少一個活動單元還被配置成執(zhí)行以下步驟生成所述第一鏡像的運(yùn)行配置;以及確定是所述運(yùn)行配置的一部分并且是所述活動差異列表的一部分的命令的第三列表。
43.如權(quán)利要求41所述的裝置,其中所述至少一個活動單元還被配置成執(zhí)行以下步驟當(dāng)所述第三列表是空集時,將所述運(yùn)行配置同步到所述備用單元。
44.如權(quán)利要求41所述的裝置,其中所述活動單元還被配置成執(zhí)行以下步驟將所述命令的第三列表變換成第二語法;以及將經(jīng)變換的命令的第三列表同步到所述備用單元。
45.如權(quán)利要求41所述的裝置,其中所述裝置包括多個活動單元。
46.如權(quán)利要求41所述的裝置,其中所述備用單元還被配置成將經(jīng)同步的運(yùn)行配置的命令變換成較高級別的語法。
全文摘要
提供了用于在活動單元和備用單元具有不同版本的軟件鏡像時維持配置同步的方法和設(shè)備。優(yōu)選實(shí)現(xiàn)方式允許了即使在備用單元經(jīng)歷鏡像升級之后系統(tǒng)也能在有狀態(tài)模式中工作。其他實(shí)現(xiàn)方式允許了在活動單元具有比備用單元更高級別版本的鏡像之時系統(tǒng)在有狀態(tài)模式中工作。
文檔編號G06F9/44GK1875346SQ200480032671
公開日2006年12月6日 申請日期2004年11月16日 優(yōu)先權(quán)日2003年11月25日
發(fā)明者唐納德·班克斯, 普拉韋恩·喬希, 塞奧克·安東尼·科赫, 約翰·韋德 申請人:思科技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
浙江省| 于田县| 凉城县| 厦门市| 信丰县| 潜山县| 上林县| 乳山市| 大安市| 左贡县| 湖南省| 马尔康县| 镇宁| 海安县| 台北县| 金塔县| 辽中县| 自治县| 定襄县| 扶余县| 大连市| 房山区| 新源县| 青海省| 赤壁市| 绩溪县| 读书| 青川县| 乌鲁木齐县| 突泉县| 库伦旗| 江北区| 全椒县| 界首市| 平阴县| 泗洪县| 旅游| 余干县| 原阳县| 榆林市| 双鸭山市|