两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

雙機冗余系統(tǒng)的冗余管理及切換方法

文檔序號:6437486閱讀:850來源:國知局
專利名稱:雙機冗余系統(tǒng)的冗余管理及切換方法
技術領域
本發(fā)明屬于工業(yè)自動化領域,具體地說,涉及雙機冗余系統(tǒng),更具體地說,是涉及一種雙機冗余系統(tǒng)的冗余管理及切換方法。
背景技術
冗余技術是計算機系統(tǒng)可靠性設計中比較常用的一種技術,是提高計算機系統(tǒng)可靠性的有效方法。在工業(yè)自動化系統(tǒng)中,為了使系統(tǒng)長期穩(wěn)定可靠地運行,常使用某種形式的冗余系統(tǒng),其中用得最多的是雙機冗余系統(tǒng)。在雙機冗余系統(tǒng)中,包括有兩臺硬件配置相同的計算機,兩者通過網(wǎng)絡相連,運行相同的軟件,并實現(xiàn)數(shù)據(jù)的共享和同步。運行時,兩臺計算機中的其中一臺作為工作機,另一臺作為備份機。若工作機出現(xiàn)故障,則切換到作為備份機的計算機,此時,該備份機轉(zhuǎn)為工作機,從而保障整個自動化系統(tǒng)的正常運行。在雙機冗余系統(tǒng)中由于存在有兩臺計算機,且兩臺計算機的工作狀態(tài)不同,這就需要為計算機設置一個標志,以便外部程序能夠獲知哪臺計算機為工作機,然后與工作機交互,同時,本機運行的進程也需知道本機為工作機還是備份機,以便進行不同的處理。現(xiàn)有技術一般是采用在計算機中設置冗余狀態(tài)的方式解決上述問題,具體實現(xiàn)方式是冗余系統(tǒng)中的每臺計算機均設置有一個冗余狀態(tài),一般是在計算機的冗余管理模塊中設置,外部程序及內(nèi)部進程通過查詢?nèi)哂酄顟B(tài)獲得對應計算機的工作狀態(tài)。冗余狀態(tài)既包含標志計算機為工作機還是備份機的主狀態(tài)、備狀態(tài),還可能包含標志本機正在進行初始化的初始狀態(tài)、標志本機出現(xiàn)故障的故障狀態(tài)等。由于計算機中僅設置有一個冗余狀態(tài),外部程序及內(nèi)部進程在讀取該狀態(tài)時,會根據(jù)需要為該狀態(tài)加獨占鎖或共享鎖,從而造成鎖競爭。由于經(jīng)常會存在多個進程同時讀取冗余狀態(tài)的情況,因此,多線程調(diào)用時的鎖競爭非常嚴重,導致系統(tǒng)性能嚴重下降。另一方面,在計算機為多核多CPU環(huán)境時,僅一個冗余狀態(tài)供讀取的情況下,極容易造成內(nèi)存?zhèn)喂蚕?,進一步降低了系統(tǒng)性能。

發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有雙機冗余系統(tǒng)存在的上述問題而提供一種雙機冗余系統(tǒng)的冗余管理及切換方法,以減少多線程調(diào)用的鎖競爭及偽共享,提高系統(tǒng)的性能。為實現(xiàn)上述發(fā)明目的,本發(fā)明采用下述技術方案予以實現(xiàn)
一種雙機冗余系統(tǒng)的冗余管理及切換方法,系統(tǒng)包括兩臺計算機,每臺計算機中的軟件模塊根據(jù)功能分為執(zhí)行整機冗余協(xié)調(diào)和管理的冗余管理模塊、對外提供服務的若干個接口模塊以及實現(xiàn)具體操作的若干個內(nèi)核模塊,冗余管理模塊中設置有系統(tǒng)冗余狀態(tài),每個接口模塊及內(nèi)核模塊均設置有與系統(tǒng)冗余狀態(tài)一致的本地冗余狀態(tài)副本。如上所述的冗余管理及切換方法,為保證冗余切換時系統(tǒng)冗余狀態(tài)與本地冗余狀態(tài)副本的一致性,在計算機切換冗余狀態(tài)時,所述冗余管理模塊首先通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本,在所有的本地冗余狀態(tài)副本切換成功后,冗余管理模塊再切換系統(tǒng)冗余狀態(tài)。如上所述的冗余管理及切換方法,為避免切換過程中數(shù)據(jù)處理的混亂,在冗余狀態(tài)是由主狀態(tài)切換為其他狀態(tài)時,每個接口模塊先切換本地冗余狀態(tài)副本,在所有的接口模塊切換成功后,每個內(nèi)核模塊再切換本地冗余狀態(tài)副本;
而在冗余狀態(tài)是由其他狀態(tài)切換為主狀態(tài)時,每個內(nèi)核模塊先切換本地冗余狀態(tài)副本,在所有的內(nèi)核模塊切換成功后,每個接口模塊再切換本地冗余狀態(tài)副本。如上所述的冗余管理及切換方法,考慮到接口模塊相互之間不存在調(diào)用、而內(nèi)核模塊間相互調(diào)用較多的情況,為提高切換速度、同時保證數(shù)據(jù)處理的準確,所述若干個接口模塊并行地切換本地冗余狀態(tài)副本,所述若干個內(nèi)核模塊串行地切換本地冗余狀態(tài)副本。如上所述的冗余管理及切換方法,為進一步保證數(shù)據(jù)處理的準確性,所述若干個內(nèi)核模塊根據(jù)相互之間的調(diào)用關系順序編號,最外層的內(nèi)核模塊對應最小的序號,最內(nèi)層的內(nèi)核模塊對應最大的序號,在冗余狀態(tài)是由主狀態(tài)切換為其他狀態(tài)時,內(nèi)核模塊按照序號從小到大的順序串行地切換本地冗余狀態(tài);在冗余狀態(tài)是由其他狀態(tài)切換為主狀態(tài)時, 內(nèi)核模塊按照序號從大到小的順序串行地切換本地冗余狀態(tài)。如上所述的冗余管理及切換方法,每個接口模塊或內(nèi)核模塊切換冗余狀態(tài)的過程包括下述步驟
在模塊的本地冗余狀態(tài)副本未加獨占鎖時,冗余管理模塊申請對本地冗余狀態(tài)副本加獨占鎖;
冗余管理模塊加獨占鎖成功后,更改加鎖的本地冗余狀態(tài)副本的冗余狀態(tài)為新狀態(tài); 冗余管理模塊釋放更改后的本地冗余狀態(tài)副本的獨占鎖。如上所述的冗余管理及切換方法,為防止本地冗余狀態(tài)副本上的共享鎖占用時間過長、影響冗余切換速度,冗余管理模塊申請對本地冗余狀態(tài)副本加獨占鎖之前,還包括設置狀態(tài)切換意向標志、通知要切換冗余狀態(tài)的接口模塊或內(nèi)核模塊結束當前的外部調(diào)用的步驟,以及在加獨占鎖成功后、清除狀態(tài)切換意向標志的步驟。如上所述的冗余管理及切換方法,要切換冗余狀態(tài)的接口模塊或內(nèi)核模塊在查詢到冗余管理模塊設置的狀態(tài)切換意向標志時,判斷當前的外部調(diào)用是否允許中止,若允許中止,則中止當前的外部調(diào)用,然后釋放施加在本地冗余狀態(tài)副本上的共享鎖。如上所述的冗余管理及切換方法,每臺計算機中的軟件模塊還包括實現(xiàn)兩臺計算機上的數(shù)據(jù)同步的數(shù)據(jù)同步模塊,在計算機的冗余狀態(tài)是由主狀態(tài)切換為其他狀態(tài)時,冗余管理模塊先將數(shù)據(jù)同步模塊的狀態(tài)由發(fā)送更改為接收,然后再通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本;在計算機的冗余狀態(tài)是由其他狀態(tài)切換為主狀態(tài)時,冗余管理模塊先將數(shù)據(jù)同步模塊的狀態(tài)由接收更改為發(fā)送,然后再通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本。與現(xiàn)有技術相比,本發(fā)明的優(yōu)點和積極效果是本發(fā)明根據(jù)雙機冗余系統(tǒng)中計算機軟件功能將其軟件模塊進行分類,對冗余管理模塊設置一個系統(tǒng)冗余狀態(tài),而對接口模塊及內(nèi)核模塊等應用模塊分別設置一個與系統(tǒng)冗余狀態(tài)相對應的本地冗余狀態(tài)副本,線程在需要得到系統(tǒng)當前的冗余狀態(tài)時,可以直接讀取本地冗余狀態(tài)副本即可,大大減少了多線程調(diào)用時的鎖競爭,提高了線程應用的并發(fā)性,同時減少了多核多CPU環(huán)境下對數(shù)據(jù)的偽共享,提高了雙機冗余系統(tǒng)的切換速度,進而提高了雙機冗余系統(tǒng)的整體性能,使得采用本發(fā)明冗余管理及切換方法的雙機冗余系統(tǒng)適用于軌道交通綜合監(jiān)控等大型工業(yè)自動化監(jiān)控技術領域,尤其適應于多核多CPU計算機環(huán)境。結合附圖閱讀本發(fā)明的具體實施方式
后,本發(fā)明的其他特點和優(yōu)點將變得更加清林疋。


圖1是本發(fā)明雙機冗余系統(tǒng)的冗余管理及切換方法中雙機冗余系統(tǒng)一個實施例的軟件架構示意圖2是基于圖1軟件架構的冗余管理及切換方法中冗余狀態(tài)從主狀態(tài)切換為其他狀態(tài)時一個實施例的流程圖3是基于圖1軟件架構的冗余管理及切換方法中冗余狀態(tài)從其他狀態(tài)切換為主狀態(tài)時一個實施例的流程圖4是圖2及圖3流程中接口模塊或內(nèi)核模塊狀態(tài)切換的一個實施例的流程圖; 圖5是外部調(diào)用圖4中的接口模塊或內(nèi)核模塊的工作流程圖。
具體實施例方式下面結合附圖和具體實施方式
對本發(fā)明的技術方案作進一步詳細的說明。本發(fā)明針對現(xiàn)有雙機冗余系統(tǒng)的單機中僅存在一個冗余狀態(tài),在冗余切換時存在多線程調(diào)用鎖競爭及內(nèi)存?zhèn)喂蚕憩F(xiàn)象嚴重的問題,提供了一種雙機冗余系統(tǒng)的冗余管理及切換方法,通過對單機中的軟件模塊進行劃分及設置冗余狀態(tài)副本,改善了雙機冗余切換系統(tǒng)冗余切換的性能。圖1所示為本發(fā)明雙機冗余系統(tǒng)的冗余管理和切換方法中雙機冗余系統(tǒng)一個實施例的軟件架構示意圖。如圖1所示,該實施例的雙機冗余系統(tǒng)包括計算機A和計算機B,兩者硬件配置相同,運行相同的軟件,并通過以太網(wǎng)等網(wǎng)絡進行互聯(lián)和通訊。計算機A和計算機B中的軟件模塊根據(jù)功能進行劃分,具體來說,包括執(zhí)行整機冗余記錄、管理及切換的冗余管理模塊, 對外提供服務的若干個接口模塊1至M,以及實現(xiàn)具體操作的若干個內(nèi)核模塊1至N,此外, 還包括有實現(xiàn)兩計算機間數(shù)據(jù)同步的數(shù)據(jù)同步模塊,每個模塊都支持多線程調(diào)用。接口模塊1至M供外部調(diào)用,根據(jù)外部要求調(diào)用內(nèi)核模塊實現(xiàn)具體的功能。內(nèi)核模塊1至N作為軟件中的功能模塊,可以被多個接口模塊調(diào)用,且內(nèi)核模塊相互之間也可能存在調(diào)用關系。在該實施例中,N個內(nèi)核模塊根據(jù)相互之間的調(diào)用關系順序編號,序號最小的內(nèi)核模塊1為最外層模塊,隨著序號的增大、層數(shù)逐漸增大、調(diào)用增多,最內(nèi)層的內(nèi)核模塊N對應最大的序號。數(shù)據(jù)同步模塊用來與對機進行通訊,通過調(diào)用接口模塊及內(nèi)核模塊,實現(xiàn)兩臺計算機間的同步,確保兩臺計算機間的無縫冗余切換。冗余管理模塊作為計算機的核心冗余記錄、管理及切換的功能模塊,與對機相互心跳并檢查,當檢查到對機狀態(tài)發(fā)生改變或出現(xiàn)故障時,協(xié)調(diào)其他功能模塊實現(xiàn)冗余裁決和切換。在該實施例中,冗余管理模塊中設置有系統(tǒng)冗余狀態(tài),用于標志本機系統(tǒng)的主狀態(tài)及初始、備用、停止及故障等其他狀態(tài)。此外,每個接口模塊及每個內(nèi)核模塊中均設置有與系統(tǒng)冗余狀態(tài)相一致的本地冗余狀態(tài)副本。如此一來,在模塊或外部線程需要得到本機當前的冗余狀態(tài)時,可以直接讀取模塊中的本地冗余狀態(tài)副本即可,而不必去讀取僅有的一個系統(tǒng)冗余狀態(tài),從而大大減少了多線程調(diào)用時的鎖競爭,提高了線程應用的并發(fā)性;而且,由于在軟件上將冗余狀態(tài)字段分成多個,每個相隔較大的距離,可以減少多核多CPU環(huán)境下對數(shù)據(jù)的偽共享,提高冗余切換的速度,從而可以提高雙機冗余系統(tǒng)的整體性能。具有上述軟件架構的雙機冗余系統(tǒng)實現(xiàn)冗余狀態(tài)切換時,要確保系統(tǒng)冗余狀態(tài)與本地冗余狀態(tài)副本的一致性,避免多個冗余狀態(tài)出現(xiàn)混亂,需要采取特定的狀態(tài)切換過程。 具體來說,在切換冗余狀態(tài)時,冗余管理模塊首先通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本,在所有的本地冗余狀態(tài)副本切換成功后,冗余管理模塊再切換系統(tǒng)冗余狀態(tài)。而根據(jù)狀態(tài)切換是由主狀態(tài)切換為其他狀態(tài)還是由其他狀態(tài)切換為主狀態(tài)而采取不同的切換過程,具體可參考圖2及圖3所示。圖2所示是基于圖1軟件架構的冗余管理及切換方法中冗余狀態(tài)從主狀態(tài)切換為其他狀態(tài)時一個實施例的流程圖。在主狀態(tài)時,計算機為工作機,要對外提供服務,還要與對機進行數(shù)據(jù)同步;而切換到其他狀態(tài)時,對外服務減少或者停止,主要是進行內(nèi)部處理及與對機的數(shù)據(jù)同步。為此,冗余管理模塊首先切換接口模塊的本地冗余狀態(tài)副本,以切斷對外服務,然后再切換內(nèi)核模塊的本地冗余狀態(tài)副本,最后更改系統(tǒng)冗余狀態(tài)。具體切換過程如下
S201 開始切換。S202 冗余管理模塊控制數(shù)據(jù)同步模塊的狀態(tài)由發(fā)送變?yōu)榻邮铡T谥鳡顟B(tài)下,本機為工作機,需要通過數(shù)據(jù)同步模塊將數(shù)據(jù)發(fā)送至對機。而切換為其他狀態(tài)后,需要通過數(shù)據(jù)同步模塊接收對機的同步數(shù)據(jù),因此,首先將數(shù)據(jù)同步模塊的狀態(tài)由發(fā)送變?yōu)榻邮?。S203:冗余管理模塊并行地向所有接口模塊發(fā)送狀態(tài)切換的通知,通知接口模塊切換本地冗余狀態(tài)副本。由于多個接口模塊相互獨立,之間不存在調(diào)用,為提高切換速度,采用并行切換的方法來切換本地冗余狀態(tài)副本。S204 接口模塊1的本地冗余狀態(tài)副本變?yōu)槠渌麪顟B(tài);直到 S205 接口模塊M的本地冗余狀態(tài)副本變?yōu)槠渌麪顟B(tài)。上述S204至S205之間的M個接口模塊的狀態(tài)切換并行執(zhí)行。S206 冗余管理模塊等待所有接口模塊的狀態(tài)切換完成。S207 在所有接口模塊的狀態(tài)切換完成后,將內(nèi)核模塊1的本地冗余狀態(tài)副本變?yōu)槠渌麪顟B(tài)。S208 串行地依次更改內(nèi)核模塊2至內(nèi)核模塊(N_l)的本地冗余狀態(tài)副本。S209 將內(nèi)核模塊N的本地冗余狀態(tài)副本變?yōu)槠渌麪顟B(tài)。S210 最后將冗余管理模塊的系統(tǒng)冗余狀態(tài)變?yōu)槠渌麪顟B(tài)。S211 結束切換。在該實施例中,由于內(nèi)核模塊相互之間存在調(diào)用關系,為避免數(shù)據(jù)處理過程混亂, 對內(nèi)核模塊進行切換時,采用的是各模塊串行切換的方式,且根據(jù)內(nèi)核模塊的序號由小到大的順序串行切換。也即,首先切換最外層的內(nèi)核模塊的狀態(tài),依次向里,最后切換最內(nèi)層模塊的狀態(tài)。從整個軟件架構來說,采用先外后內(nèi)的切換過程,保證數(shù)據(jù)處理的正確性。圖3所示是基于圖1軟件架構的冗余管理及切換方法中冗余狀態(tài)從其他狀態(tài)切換為主狀態(tài)時一個實施例的流程圖。在計算機為停止、備用、故障等其他狀態(tài)時,對外服務減少或者停止,主要是進行內(nèi)部處理及與對機的數(shù)據(jù)同步;而若要切換為主狀態(tài),計算機作為工作機使用,要對外提供服務,還要與對機進行數(shù)據(jù)同步。為此,冗余管理模塊首先切換內(nèi)核模塊的本地冗余狀態(tài)副本,然后再切換接口模塊的本地冗余狀態(tài)副本,最后更改系統(tǒng)冗余狀態(tài)。具體切換過程如下
S301 開始切換。S302 冗余管理模塊控制數(shù)據(jù)同步模塊的狀態(tài)由接收變?yōu)榘l(fā)送。在其他狀態(tài)下,本機需要通過數(shù)據(jù)同步模塊接收對機的同步數(shù)據(jù),而切換成主狀態(tài)時,本機為工作機,需要通過數(shù)據(jù)同步模塊將數(shù)據(jù)發(fā)送至對機,因此,首先將數(shù)據(jù)同步模塊的狀態(tài)由接收變?yōu)榘l(fā)送。然后切換內(nèi)核模塊。與圖2實施例類似,對內(nèi)核模塊的切換也采用串行切換的方式。而與圖2實施例不同的是,在由其他狀態(tài)切換為主狀態(tài)時,對內(nèi)核模塊采用由內(nèi)而外的切換流程,即根據(jù)內(nèi)核序號從大到小的順序串行切換。具體如下
S303 將內(nèi)核模塊N的本地冗余狀態(tài)副本變?yōu)橹鳡顟B(tài)。S304 串行地依次更改內(nèi)核模塊(N-I)至內(nèi)核模塊2的本地冗余狀態(tài)副本為主狀態(tài)。S305 將內(nèi)核模塊1的本地冗余狀態(tài)副本變?yōu)橹鳡顟B(tài)。S306 并行地向所有接口模塊發(fā)送狀態(tài)切換的通知,通知接口模塊切換本地冗余狀態(tài)副本。由于多個接口模塊相互獨立,之間不存在調(diào)用,為提高切換速度,采用并行切換的方法來切換本地冗余狀態(tài)副本。S307 接口模塊1的本地冗余狀態(tài)副本變?yōu)橹鳡顟B(tài);直到 S308 接口模塊M的本地冗余狀態(tài)副本變?yōu)橹鳡顟B(tài)。上述S307至S308之間的M個接口模塊的狀態(tài)切換并行執(zhí)行。S309 等待所有接口模塊的狀態(tài)切換完成。S310 將冗余管理模塊的系統(tǒng)冗余狀態(tài)變?yōu)橹鳡顟B(tài)。S311 結束切換。在該實施例中,冗余狀態(tài)由其他狀態(tài)切換為主狀態(tài)時,采用先內(nèi)核模塊最內(nèi)層至內(nèi)核模塊最外層、然后各接口模塊、最后冗余管理模塊的先內(nèi)后外的切換過程,保證只有在內(nèi)部模塊狀態(tài)都切換好之后再對外提供服務,確保了數(shù)據(jù)的準確性。上述接口模塊及內(nèi)核模塊狀態(tài)切換可以采用相同的切換過程,具體流程如圖4所
7J\ ο圖4是圖2及圖3流程中接口模塊或內(nèi)核模塊狀態(tài)切換的一個實施例的流程圖, 冗余管理模塊控制接口模塊或內(nèi)核模塊實現(xiàn)狀態(tài)切換的具體過程如下
S401 開始切換。S402 冗余管理模塊設置狀態(tài)切換意向標志。
由于外部線程每次調(diào)用接口模塊或內(nèi)核模塊時,都會申請對其本地冗余狀態(tài)副本施加共享鎖,可參考圖5及后續(xù)描述。若本地冗余狀態(tài)副本處于加鎖狀態(tài)下,則冗余管理模塊不能修改其狀態(tài)。為此,在該實施例中,為防止外部線程共享鎖時間過長、影響狀態(tài)切換, 冗余管理模塊在切換模塊的本地冗余狀態(tài)副本時,首先設置狀態(tài)切換意向標志,以通知模塊盡可能快地結束當前正在處理的多個外部調(diào)用。S403 在模塊的本地冗余狀態(tài)副本未加獨占鎖時,冗余管理模塊申請對本地冗余狀態(tài)副本加獨占鎖。S404 判斷加鎖是否成功。若加鎖成功,執(zhí)行步驟S405 ;否則,轉(zhuǎn)至步驟S403繼續(xù)執(zhí)行加鎖操作。S405:若加鎖成功,表明模塊調(diào)用已經(jīng)結束或中止,之后,冗余管理模塊清除狀態(tài)切換意向標志,以便下次重復使用。S406 更改本地冗余狀態(tài)副本的冗余狀態(tài),由舊狀態(tài)更改為新狀態(tài)。S407:根據(jù)模塊的業(yè)務需求,對模塊業(yè)務進行特定的冗余切換處理,主要是將其內(nèi)部處理由舊狀態(tài)更改為新狀態(tài)。S408:冗余管理模塊釋放更改后的本地冗余狀態(tài)副本的獨占鎖。之后,其他線程可以再次對新的本地冗余狀態(tài)副本施加共享鎖。S409 結束切換。需要說明的是,若冗余切換速度要求不高,或者切換過程允許,也可以不設置狀態(tài)切換意向標志,而是等待所有外部調(diào)用主動釋放對本地冗余狀態(tài)副本的共享鎖,然后再加獨占鎖。圖5示出了外部調(diào)用圖4中的接口模塊或內(nèi)核模塊的工作流程圖,結合冗余切換過程,接口模塊或內(nèi)核模塊的具體調(diào)用過程如下
S501 外部調(diào)用開始。S502 申請加共享鎖。每次外部調(diào)用都要對模塊的冗余狀態(tài)副本加共享鎖,以防止狀態(tài)被改變,影響處理進程。S503 判斷加鎖是否成功。若成功,執(zhí)行步驟S504 ;否則,轉(zhuǎn)至步驟S502,繼續(xù)申請加共享鎖。S504:在加鎖成功后,判斷模塊的狀態(tài)是否符合要求。若符合要求,執(zhí)行步驟 S505 ;否則,轉(zhuǎn)至步驟S511。—般來說,在模塊狀態(tài)為主狀態(tài)時,外部可調(diào)用,而若模塊狀態(tài)為故障或停止等狀態(tài),則退出調(diào)用過程。S505:在狀態(tài)符合要求時,將調(diào)用模塊的相應處理片段,執(zhí)行相應操作。S506 判斷調(diào)用是否結束。若結束,轉(zhuǎn)至步驟S510 ;若未結束,執(zhí)行步驟S507。S507 判斷是否有冗余管理模塊設置的狀態(tài)切換意向標志。若有,執(zhí)行步驟S508 ; 若無,轉(zhuǎn)至步驟S505繼續(xù)調(diào)用模塊處理片段。S508:在檢測到狀態(tài)切換意向標志后,將根據(jù)業(yè)務需求決策是否需要提前中止調(diào)用處理。若業(yè)務允許中止,執(zhí)行步驟S509 ;若不能中止,則不理會狀態(tài)切換意向標志,繼續(xù)執(zhí)行步驟S505的調(diào)用操作。S509 在業(yè)務允許中止時,執(zhí)行相應的中止處理。
S510 釋放共享鎖。S511 外部調(diào)用結束。以上實施例僅用以說明本發(fā)明的技術方案,而非對其進行限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的普通技術人員來說,依然可以對前述實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明所要求保護的技術方案的精神和范圍。
權利要求
1.一種雙機冗余系統(tǒng)的冗余管理及切換方法,系統(tǒng)包括兩臺計算機,其特征在于,每臺計算機中的軟件模塊根據(jù)功能分為執(zhí)行整機冗余協(xié)調(diào)和管理的冗余管理模塊、對外提供服務的若干個接口模塊以及實現(xiàn)具體操作的若干個內(nèi)核模塊,冗余管理模塊中設置有系統(tǒng)冗余狀態(tài),每個接口模塊及內(nèi)核模塊均設置有與系統(tǒng)冗余狀態(tài)一致的本地冗余狀態(tài)副本。
2.根據(jù)權利要求1所述的冗余管理及切換方法,其特征在于,在計算機切換冗余狀態(tài)時,所述冗余管理模塊首先通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本,在所有的本地冗余狀態(tài)副本切換成功后,冗余管理模塊再切換系統(tǒng)冗余狀態(tài)。
3.根據(jù)權利要求2所述的冗余管理及切換方法,其特征在于,在冗余狀態(tài)是由主狀態(tài)切換為其他狀態(tài)時,每個接口模塊先切換本地冗余狀態(tài)副本,在所有的接口模塊切換成功后,每個內(nèi)核模塊再切換本地冗余狀態(tài)副本。
4.根據(jù)權利要求2所述的冗余管理及切換方法,其特征在于,在冗余狀態(tài)是由其他狀態(tài)切換為主狀態(tài)時,每個內(nèi)核模塊先切換本地冗余狀態(tài)副本,在所有的內(nèi)核模塊切換成功后,每個接口模塊再切換本地冗余狀態(tài)副本。
5.根據(jù)權利要求3或4所述的冗余管理及切換方法,其特征在于,所述若干個接口模塊并行地切換本地冗余狀態(tài)副本,所述若干個內(nèi)核模塊串行地切換本地冗余狀態(tài)副本。
6.根據(jù)權利要求5所述的冗余管理及切換方法,其特征在于,所述若干個內(nèi)核模塊根據(jù)相互之間的調(diào)用關系順序編號,最外層的內(nèi)核模塊對應最小的序號,最內(nèi)層的內(nèi)核模塊對應最大的序號,在冗余狀態(tài)是由主狀態(tài)切換為其他狀態(tài)時,內(nèi)核模塊按照序號從小到大的順序串行地切換本地冗余狀態(tài);在冗余狀態(tài)是由其他狀態(tài)切換為主狀態(tài)時,內(nèi)核模塊按照序號從大到小的順序串行地切換本地冗余狀態(tài)。
7.根據(jù)權利要求2至4中任一項所述的冗余管理及切換方法,其特征在于,每個接口模塊或內(nèi)核模塊切換冗余狀態(tài)的過程包括下述步驟在模塊的本地冗余狀態(tài)副本未加獨占鎖時,冗余管理模塊申請對本地冗余狀態(tài)副本加獨占鎖;冗余管理模塊加獨占鎖成功后,更改加鎖的本地冗余狀態(tài)副本的冗余狀態(tài)為新狀態(tài);冗余管理模塊釋放更改后的本地冗余狀態(tài)副本的獨占鎖。
8.根據(jù)權利要求7所述的冗余管理及切換方法,其特征在于,冗余管理模塊申請對本地冗余狀態(tài)副本加獨占鎖之前,還包括設置狀態(tài)切換意向標志、通知要切換冗余狀態(tài)的接口模塊或內(nèi)核模塊結束當前的外部調(diào)用的步驟,以及在加獨占鎖成功后、清除狀態(tài)切換意向標志的步驟。
9.根據(jù)權利要求7所述的冗余管理及切換方法,其特征在于,要切換冗余狀態(tài)的接口模塊或內(nèi)核模塊在查詢到冗余管理模塊設置的狀態(tài)切換意向標志時,判斷當前的外部調(diào)用是否允許中止,若允許中止,則中止當前的外部調(diào)用,然后釋放施加在本地冗余狀態(tài)副本上的共享鎖。
10.根據(jù)權利要求2所述的冗余管理及切換方法,其特征在于,每臺計算機中的軟件模塊還包括實現(xiàn)兩臺計算機上的數(shù)據(jù)同步的數(shù)據(jù)同步模塊,在計算機的冗余狀態(tài)是由主狀態(tài)切換為其他狀態(tài)時,冗余管理模塊先將數(shù)據(jù)同步模塊的狀態(tài)由發(fā)送更改為接收,然后再通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本;在計算機的冗余狀態(tài)是由其他狀態(tài)切換為主狀態(tài)時,冗余管理模塊先將數(shù)據(jù)同步模塊的狀態(tài)由接收更改為發(fā)送,然后再通知每個接口模塊及每個內(nèi)核模塊切換本地冗余狀態(tài)副本。
全文摘要
本發(fā)明公開了一種雙機冗余系統(tǒng)的冗余管理及切換方法,系統(tǒng)包括兩臺計算機,每臺計算機中的軟件模塊根據(jù)功能分為執(zhí)行整機冗余協(xié)調(diào)和管理的冗余管理模塊、對外提供服務的若干個接口模塊以及實現(xiàn)具體操作的若干個內(nèi)核模塊,冗余管理模塊中設置有系統(tǒng)冗余狀態(tài),每個接口模塊及內(nèi)核模塊均設置有與系統(tǒng)冗余狀態(tài)一致的本地冗余狀態(tài)副本。利用軟件模塊分類及設置冗余狀態(tài)副本的方式,可以減少多線程調(diào)用的鎖競爭及偽共享,提高雙機冗余系統(tǒng)的性能,特別適應于多核多CPU計算機環(huán)境。
文檔編號G06F11/14GK102436409SQ20111034528
公開日2012年5月2日 申請日期2011年11月4日 優(yōu)先權日2011年11月4日
發(fā)明者萬思軍, 劉見, 夏玲玲, 宋艷榮, 廖常斌, 李月高 申請人:青島海信網(wǎng)絡科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
承德县| 通江县| 体育| 五寨县| 青川县| 中西区| 应城市| 崇文区| 杂多县| 东至县| 舟山市| 汉沽区| 娄烦县| 浦江县| 苏尼特右旗| 体育| 余干县| 兴文县| 萨迦县| 无锡市| 康乐县| 轮台县| 东乡族自治县| 布尔津县| 蕲春县| 万盛区| 信阳市| 涿鹿县| 乌审旗| 凤阳县| 滕州市| 沧源| 邹城市| 逊克县| 沈阳市| 新昌县| 东乌珠穆沁旗| 平遥县| 叙永县| 当雄县| 达孜县|