本發(fā)明涉及冗余化裝置、冗余化系統(tǒng)以及冗余化方法。
本申請針對2016年4月1日申請的日本專利申請第2016-074730號而主張優(yōu)先權(quán),并在這里引用其內(nèi)容。
背景技術(shù):
為了即使在系統(tǒng)中發(fā)生故障也能夠使業(yè)務(wù)持續(xù)進行,使用利用多臺計算機而實現(xiàn)了冗余化的冗余化系統(tǒng)。在例如圖10所示的冗余化系統(tǒng)100中,pc1中具備hb(心跳)發(fā)送部100a~100c,pc2中具備hb接收部101a~101c。在正常時,pc1成為active側(cè)而進行業(yè)務(wù)處理,并且hb發(fā)送部100a~100c將hb信號分別發(fā)送至hb接收部101a~101c。pc2在正常時作為standby側(cè)進行待機(冗余化)以備用于pc1的異常時。此時,pc2未被目標設(shè)備識別。在全部hb接收部101a~101c都無法接收到來自pc1的hb信號的情況下,pc2判斷為pc1宕機,pc2切換至active側(cè)而持續(xù)進行業(yè)務(wù)處理。
但是,在這種冗余化系統(tǒng)中,例如在因hb通信路徑的線纜切斷等而使得hb信號不通暢的情況下,有時產(chǎn)生所謂的網(wǎng)絡(luò)分區(qū)癥狀(splitbrainsyndrome,下面記作sb),即,盡管pc1未宕機,pc2也切換至active側(cè)而進行業(yè)務(wù)處理。如果發(fā)生sb,則pc1和pc2中的例如ip地址、mac地址等標識符重復,與目標計算機的通信有可能變得不穩(wěn)定。或者,由于目標設(shè)備針對標識符重復的pc1以及pc2誤識別為1臺pc而進行通信,因此不僅在pc1和pc2之間爭奪來自目標設(shè)備的通信數(shù)據(jù),而且目標設(shè)備發(fā)生通信混亂,有可能對系統(tǒng)整體造成不良影響。
如果系統(tǒng)內(nèi)的冗余化的1組裝置停止動作,則雖然無法將裝置的重要的功能(服務(wù))提供給目標設(shè)備,但是由于停止的檢測明確而能夠迅速地進行裝置的復原。另一方面,在發(fā)生sb時,有可能保持通信不穩(wěn)定的狀態(tài)而持續(xù)進行動作。在該情況下,目標設(shè)備無法判斷該裝置的異常,有可能交換錯誤的信息。因此,從系統(tǒng)整體來看,根據(jù)防止冗余化動作停止的對策,避免sb的對策需要具有非常高的可靠性(優(yōu)先級)。
為了避免這種sb的發(fā)生,例如國際公開第2015/098589號中提出有一種冗余化系統(tǒng),該冗余化系統(tǒng)具有:信號接收部,其對hb信號進行接收;可靠性判定部;以及處理管理部。在該系統(tǒng)中,在信號接收部無法接收到來自其他計算機的hb信號的情況下,可靠性判定部對hb通信路徑的可靠性進行判定。在可靠性判定部判定為hb通信路徑的可靠性較低的情況下,處理管理部使執(zhí)行中的業(yè)務(wù)處理停止。
國際公開第2015/098589號所記載的冗余化系統(tǒng),在判斷為hb通信路徑的可靠性較低的情況下,為了避免sb而使執(zhí)行中的業(yè)務(wù)處理停止。因此,在該冗余化系統(tǒng)用于例如車間的過程控制系統(tǒng)等、業(yè)務(wù)處理的持續(xù)性的系統(tǒng)的情況下,有可能無法使業(yè)務(wù)處理持續(xù)。
技術(shù)實現(xiàn)要素:
為了解決上述問題,本發(fā)明的冗余化裝置與冗余化目標裝置通信而進行冗余化動作,在該冗余化裝置中,具備:多個接收部,它們分別接收從所述冗余化目標裝置發(fā)送的多個hb信號;計數(shù)部,其基于所述接收部的接收結(jié)果,對所述多個hb信號的通信路徑之中正常的通信路徑的數(shù)量進行計數(shù);比較部,其對所述計數(shù)部的計數(shù)結(jié)果和預先設(shè)定的閾值進行比較;以及切換部,其根據(jù)所述計數(shù)部的計數(shù)結(jié)果以及所述比較部的比較結(jié)果,將所述冗余化裝置從待機狀態(tài)切換至運轉(zhuǎn)狀態(tài)、或者從待機狀態(tài)切換至將所述冗余化動作解除的解除狀態(tài)。
本發(fā)明的進一步的特征以及方式通過參照附圖并在下面敘述的實施方式的詳細的說明而明確。
附圖說明
圖1是表示第1實施方式的冗余化系統(tǒng)的結(jié)構(gòu)的一個例子的圖。
圖2是表示第1實施方式的冗余化系統(tǒng)的動作的一個例子的流程圖。
圖3是表示第2實施方式的冗余化系統(tǒng)的結(jié)構(gòu)的一個例子的圖。
圖4是表示第3實施方式的冗余化系統(tǒng)的結(jié)構(gòu)的一個例子的圖。
圖5a是表示第3實施方式中的hb通信路徑的結(jié)構(gòu)例的圖。
圖5b是表示第3實施方式中的hb通信路徑的結(jié)構(gòu)例的圖。
圖5c是表示第3實施方式中的hb通信路徑的結(jié)構(gòu)例的圖。
圖5d是表示第3實施方式中的hb通信路徑的結(jié)構(gòu)例的圖。
圖6是表示第4實施方式的冗余化系統(tǒng)的動作的一個例子的流程圖。
圖7是表示第5實施方式的冗余化系統(tǒng)的結(jié)構(gòu)的一個例子的圖。
圖8是表示第5實施方式的冗余化系統(tǒng)的動作的一個例子的流程圖。
圖9是表示第6實施方式的冗余化系統(tǒng)的結(jié)構(gòu)的一個例子的圖。
圖10是表示當前的冗余化系統(tǒng)的結(jié)構(gòu)的一個例子的圖。
具體實施方式
參照優(yōu)選的實施方式對本發(fā)明的實施方式進行說明。本領(lǐng)域技術(shù)人員利用本發(fā)明的教導能夠?qū)崿F(xiàn)本實施方式的多種替代方法,本發(fā)明并不限定于這里所說明的優(yōu)選的本實施方式。
本發(fā)明的一個方式提供能夠防止sb的發(fā)生而不使執(zhí)行中的處理停止的冗余化裝置、冗余化系統(tǒng)、以及冗余化方法。
(第1實施方式)
下面,參照圖1對第1實施方式所涉及的冗余化系統(tǒng)1的結(jié)構(gòu)進行說明。
如圖1所示,本實施方式所涉及的冗余化系統(tǒng)1具有計算機pc1(第1裝置)、計算機pc2(第2裝置)以及hb通信路徑31~33(通信路徑)。計算機pc1是冗余化目標裝置。計算機pc2是執(zhí)行冗余化動作的冗余化裝置。
pc1以及pc2例如是通用計算機,經(jīng)由網(wǎng)絡(luò)而分別與目標設(shè)備等連接。
hb通信路徑31~33例如使用專用的nic(networkinterfacecard)端口而將pc1和pc2連接??梢岳脤S玫木W(wǎng)絡(luò)網(wǎng)(l2sw等)而構(gòu)成hb通信路徑31~33。
pc1在正常時處于active側(cè)(運轉(zhuǎn)狀態(tài)),被目標設(shè)備識別、且對目標設(shè)備提供服務(wù)等。pc2在正常時處于standby側(cè),不被目標設(shè)備識別、且不對目標設(shè)備提供服務(wù)等。
在pc2正常時,在pc1宕機的情況下,pc2從standby側(cè)向active側(cè)切換而進行待機(冗余化)。在本說明書中將該狀態(tài)記作“待機狀態(tài)”。另外,在本說明書將冗余化被解除后的狀態(tài)記作“解除狀態(tài)”。
在pc2處于待機狀態(tài)的情況下,例如在checkpoint/restart(內(nèi)存復制)方式的情況下,如果pc1的內(nèi)存、磁盤所存儲的內(nèi)容被變更,則將其變更部位復制至pc2,對pc2的數(shù)據(jù)和pc1的數(shù)據(jù)進行等值化。或者,在lockstep(并行執(zhí)行)方式的情況下,pc2以與pc1的動作同步的方式進行同樣的動作。但是,此時,pc2不進行針對目標設(shè)備的輸出。這樣,在pc1宕機的情況下,pc2能夠從standby側(cè)切換至active側(cè)而持續(xù)提供針對目標設(shè)備的服務(wù)等。
在本說明書中,如上述pc2那樣,將在一者的計算機宕機的情況下另一者的計算機能夠從standby側(cè)切換至active側(cè)而持續(xù)進行處理的狀態(tài)下的系統(tǒng)的動作稱為“冗余化動作”。
與此相對,將在一者的計算機宕機的情況下另一者的計算機無法持續(xù)進行處理的狀態(tài)下的系統(tǒng)的動作稱為“單獨動作”。
下面,對冗余化系統(tǒng)1的各部分的具體結(jié)構(gòu)進行說明。
pc1具備hb發(fā)送部11a~11c以及處理部12。hb發(fā)送部11a~11c分別以恒定的周期(下面,記作hb發(fā)送周期)將pc1的hb信號發(fā)送至pc2。hb發(fā)送周期例如為100ms左右。處理部12具有cpu、內(nèi)存等,對目標設(shè)備提供通過應(yīng)用程序、os(operatingsystem)等實現(xiàn)的服務(wù)。
pc2具有hb接收部21a~21c(接收部)、處理部22、hb通信狀態(tài)判定部23、正常hb通信路徑計數(shù)部24(計數(shù)部)、閾值比較/動作判定部25(比較部)、存儲部26、standby/active切換部27(切換部)、以及冗余化/單獨動作切換部28(切換部)。
hb接收部21a~21c經(jīng)由hb通信路徑31~33而分別接收由pc1的hb發(fā)送部11a~11c發(fā)送的hb信號。hb接收部21a以與hb發(fā)送部11a的hb發(fā)送周期相同的周期從休眠狀態(tài)啟動,接收從hb發(fā)送部11a發(fā)送的hb信號,將其接收結(jié)果輸出至hb通信狀態(tài)判定部23。對于hb接收部21b、21c也一樣,將從hb發(fā)送部11b、11c發(fā)送的hb信號的接收結(jié)果分別輸出至hb通信狀態(tài)判定部23。
hb通信狀態(tài)判定部23基于從hb接收部21a~21c輸出的hb信號的接收結(jié)果而判定hb通信路徑31~33是正常還是不通暢。例如,在經(jīng)過了hb發(fā)送部11a的hb發(fā)送周期的3個周期的期間而hb接收部21a仍未接收到hb信號的情況下,hb通信狀態(tài)判定部23判定為hb通信路徑31不通暢。在除此之外的情況下,hb通信狀態(tài)判定部23判定為hb通信路徑31正常。hb通信狀態(tài)判定部23同樣地判定hb通信路徑32、33是正常還是不通暢。hb通信狀態(tài)判定部23將上述判定結(jié)果輸出至正常hb通信路徑計數(shù)部24。
正常hb通信路徑計數(shù)部24對由hb通信狀態(tài)判定部23判定為正常的hb通信路徑的數(shù)量(下面,記作正常hb通信路徑數(shù))進行計數(shù)。各hb接收部21a~21c接收各hb信號的定時未必一致,每當hb通信狀態(tài)判定部23接收各hb信號時都判定是正常還是不通暢。因此,在hb發(fā)送周期的期間,正常hb通信路徑計數(shù)部24保存基于hb通信狀態(tài)判定部23的判定結(jié)果、并對正常hb通信路徑數(shù)進行計數(shù)。
存儲部26對預先設(shè)定的規(guī)定的閾值進行存儲。閾值根據(jù)能夠允許故障同時發(fā)生的hb通信路徑的數(shù)量而決定。例如圖1所示,在共具有3條hb通信路徑的情況下,對閾值設(shè)定為2的情況進行說明。在3條hb通信路徑全部正常的情況下,即使其中的2條hb通信路徑同時發(fā)生故障,正常的hb通信路徑也剩下1條。因此,pc2能夠識別出pc1的hb信號。因此,能夠避免發(fā)生無論pc1是否宕機pc2都變?yōu)閍ctive側(cè)的sb。在該情況下,能夠允許故障同時發(fā)生的最大的hb通信路徑的數(shù)量為2,因此作為閾值而能夠設(shè)定小于或等于2的正的整數(shù)值。
另一方面,例如在hb通信路徑的數(shù)量為4的情況下,如果同時發(fā)生的故障的hb通信路徑小于或等于3條,則能夠避免sb的發(fā)生。即,能夠允許故障同時產(chǎn)生的最大的hb通信路徑的數(shù)量為3。在該情況下,作為閾值而能夠設(shè)定小于或等于3的正的整數(shù)值。
在如后所述那樣判定是否將pc2從待機狀態(tài)切換至解除狀態(tài)(失效轉(zhuǎn)移)時使用閾值。
閾值比較/動作判定部25對由正常hb通信路徑計數(shù)部24保存的最新的正常hb通信路徑數(shù)(計數(shù)結(jié)果)、和存儲于存儲部26的閾值進行比較,基于比較的結(jié)果,對冗余化/單獨動作切換部28以及standby/active切換部27發(fā)出指示。
standby/active切換部27基于閾值比較/動作判定部25的指示而將pc2從standby側(cè)切換至active側(cè)。
冗余化/單獨動作切換部28基于閾值比較/動作判定部25的指示而將pc2從待機狀態(tài)切換至解除狀態(tài)。由此,冗余化系統(tǒng)1從冗余化動作切換至單獨動作。在切換至單獨動作以后,即使在正常hb通信路徑數(shù)變?yōu)榱愕那闆r下,pc2也不會處于active側(cè)。
standby/active切換部27和冗余化/單獨動作切換部28可以是相同的結(jié)構(gòu)要素。
利用圖2所示的流程圖對上述的本實施方式的冗余化系統(tǒng)1的動作進行說明。
在初始狀態(tài)下,pc1處于active側(cè),pc2處于standby側(cè)(待機狀態(tài)),冗余化系統(tǒng)1執(zhí)行冗余化動作(步驟s1)。
然后,hb通信狀態(tài)判定部23判定各hb通信路徑31~33是正常還是不通暢(步驟s2)。
然后,正常hb通信路徑計數(shù)部24對正常hb通信路徑數(shù)進行計數(shù)并保存其計數(shù)結(jié)果(步驟s3)。
然后,閾值比較/動作判定部25對正常hb通信路徑數(shù)和閾值進行比較(步驟s4)。在比較的結(jié)果為正常hb通信路徑數(shù)比閾值大的情況下,pc2的待機狀態(tài)持續(xù)而返回至步驟s2。
在步驟s4的比較的結(jié)果為正常hb通信路徑數(shù)大于或等于1而小于或等于閾值的情況下,閾值比較/動作判定部25對冗余化/單獨動作切換部28進行驅(qū)動,將pc2從待機狀態(tài)切換至解除狀態(tài),由此將冗余化系統(tǒng)1從冗余化動作切換至單獨動作(步驟s5)。由此,執(zhí)行使pc1處于active側(cè)的單獨動作(步驟s6),然后,即使在hb通信路徑發(fā)生超過閾值的數(shù)量的故障,也能夠避免發(fā)生sb。
在步驟s4的比較的結(jié)果為正常hb通信路徑數(shù)為0(零)的情況下,判斷為pc1已宕機,因此閾值比較/動作判定部25對standby/active切換部27進行驅(qū)動,將pc2從standby側(cè)切換至active側(cè)(運轉(zhuǎn)狀態(tài))(步驟s7)。由此,執(zhí)行使pc2處于active側(cè)的單獨動作(步驟s8)。
通過與圖10所示的當前的冗余化系統(tǒng)100的比較而對以上所示的本實施方式的冗余化系統(tǒng)1的效果進行說明。
在正常hb通信路徑數(shù)變?yōu)?的情況下,圖10所示的當前的冗余化系統(tǒng)100判斷為pc1已宕機,將pc2切換至active側(cè)。另一方面,在正常hb通信路徑數(shù)大于或等于1的情況下,冗余化系統(tǒng)100判斷為pc1未宕機而使冗余化動作持續(xù)。在該情況下,例如即使在正常hb通信路徑數(shù)為1的情況下,也使冗余化動作持續(xù)。因此,如果在該狀態(tài)下在hb通信路徑發(fā)生故障,則無論pc1是否未宕機,pc2都有可能切換至active側(cè)而發(fā)生sb。
另一方面,在本實施方式的冗余化系統(tǒng)1中,正常hb通信路徑計數(shù)部24對正常hb通信路徑數(shù)進行監(jiān)視。在正常hb通信路徑數(shù)出現(xiàn)變動的情況下,冗余化系統(tǒng)1通過對正常hb通信路徑數(shù)和閾值的比較而判斷是使冗余化動作持續(xù)、還是切換至單獨動作。例如在閾值設(shè)定為2的情況下,如果正常hb通信路徑數(shù)變得小于或等于2,則冗余化系統(tǒng)1從冗余化動作切換(后退)至單獨動作。因此,即使此后在2條hb通信路徑同時發(fā)生故障,也能夠避免發(fā)生sb。
優(yōu)選作為閾值而設(shè)定大于或等于1而比hb通信路徑的數(shù)量小的值。將閾值設(shè)定得越大,越能夠提高冗余化系統(tǒng)1的避免sb的可靠性。
例如在用于車間等的過程控制系統(tǒng)中,有時如反饋控制等那樣在下一個處理周期的輸入中使用直至上一個周期為止的處理數(shù)據(jù)。在這種情況下,要求無缺失地將直至上一個周期為止的處理數(shù)據(jù)反映到下一個處理周期的處理中。在因active側(cè)的計算機宕機等而使得standby側(cè)的計算機切換至active側(cè)并持續(xù)進行處理時,為了防止處理數(shù)據(jù)缺失,要求在控制處理周期內(nèi)進行處于待機狀態(tài)的計算機從standby側(cè)向active側(cè)的切換(實時性)。
根據(jù)本實施方式的冗余化系統(tǒng)1,能夠確保上述實時性。例如在hb發(fā)送周期為100ms的情況下,如果將由hb通信狀態(tài)判定部23判定hb通信路徑31~33是正常還是不通暢所需的時間設(shè)為hb發(fā)送周期的3個周期則達到300ms。正常hb通信路徑計數(shù)部24對正常hb通信路徑數(shù)的計數(shù)所需的時間、閾值比較/動作判定部25對正常hb通信路徑數(shù)和閾值的比較所需的時間、以及standby/active切換部27使pc2從standby側(cè)向active側(cè)切換所需的時間分別小于或等于1ms。因此,這一系列動作所需的時間為300ms左右。
即使將車間等的過程控制系統(tǒng)的控制處理周期設(shè)為1秒左右,由于上述一系列動作所需的時間充分短于該控制處理周期,因此也能夠確保實時性。例如即使pc1宕機,通過在控制處理周期內(nèi)將pc2從standby側(cè)切換至active側(cè),也能夠防止處理數(shù)據(jù)的缺失。
通過將閾值設(shè)定為較大的值,能夠使能夠允許故障同時發(fā)生的hb通信路徑數(shù)增加,因此能夠提供進一步提高了避免sb的可靠性的冗余化系統(tǒng)1。
pc2可以具有通知部,在檢測出hb通信路徑不通暢的情況下,該通知部利用其他hb通信路徑將針對變得不通暢的hb通信路徑的信息通知給pc1?;趶耐ㄖ客ㄖ男畔⒍鴮υ谡b通信路徑數(shù)小于或等于閾值之前變得不通暢的hb通信路徑進行修復,由此能夠降低切換至單獨動作的頻率。
(第2實施方式)
下面,對本發(fā)明所涉及的第2實施方式進行說明,基本結(jié)構(gòu)與第1實施方式相同。因此,對與第1實施方式的各部分相對應(yīng)的部分標注相同的標號并將其說明省略。
在本實施方式中,hb通信路徑的結(jié)構(gòu)與第1實施方式不同。
利用圖3第2實施方式所涉及的冗余化系統(tǒng)2進行說明。如圖3所示,冗余化系統(tǒng)2中的pc1具有hb發(fā)送部11n。與hb發(fā)送部11a、11b以及11c相同地,hb發(fā)送部11n以恒定的周期將pc1的hb信號發(fā)送至pc2。
冗余化系統(tǒng)2中的pc2具有hb接收部21n。hb接收部21n經(jīng)由應(yīng)用程序用途的已有的nic、已有的網(wǎng)絡(luò)網(wǎng)(l2sw等)而接收從pc1的hb發(fā)送部11n發(fā)送的hb信號。
hb通信路徑不需要特殊的網(wǎng)絡(luò)標準,也不需要將信息加載至hb數(shù)據(jù)包的數(shù)據(jù)部。因此,如上所述,能夠在hb發(fā)送部11n與hb接收部21n之間的通信中使用已有的裝置。
(第3實施方式)
下面,對本發(fā)明所涉及的第3實施方式進行說明,基本結(jié)構(gòu)與第1實施方式相同。因此,對與第1實施方式的各部分相對應(yīng)的部分標注相同的標號并將其說明省略。
在第1實施方式中,示出了多條hb通信路徑31~33相互獨立的情況。即,示出了hb通信路徑31~33相互不共享nic、網(wǎng)絡(luò)儀器等,而是物理性地獨立的情況。這樣,在hb通信路徑相互獨立的情況下,在hb通信路徑中發(fā)生故障、人為的失誤等故障不會對其他hb通信路徑造成影響。
另一方面,在實際構(gòu)建hb通信路徑時,存在多條hb通信路徑共享1個網(wǎng)絡(luò)開關(guān)的情況等。在這種情況下,有可能因該網(wǎng)絡(luò)開關(guān)本身的故障、不慎將該網(wǎng)絡(luò)開關(guān)的電源斷開等人為的失誤而使得多條hb通信路徑的通信中斷。這樣,在因與1個開關(guān)等相關(guān)的故障而使得多條hb通信路徑變得不通暢的情況下,在本說明書中記作該多條hb通信路徑中存在“故障的關(guān)聯(lián)”。即,故障的關(guān)聯(lián)表示由于多條hb通信路徑相互共享網(wǎng)絡(luò)儀器等而因該網(wǎng)絡(luò)儀器的故障、人為的失誤使得多條hb通信路徑同時變得不暢通的情況下的各hb通信路徑彼此的相關(guān)性。
在第3實施方式中,示出了冗余化系統(tǒng)中包含存在故障的關(guān)聯(lián)的hb通信路徑的情況。
利用圖4對第3實施方式所涉及的冗余化系統(tǒng)3進行說明。pc1的hb發(fā)送部11a~11d分別經(jīng)由hb通信路徑41~44而將hb信號發(fā)送至pc2的hb接收部21a~21d。hb通信路徑41以及hb通信路徑44相對于其他hb通信路徑而獨立,但hb通信路徑42、43通過共用的sw而被進行中繼。sw是l2sw、l3sw等開關(guān)。如果該sw發(fā)生故障,則hb通信路徑42、43同時變得不通暢。因此,hb通信路徑42、43互相存在故障的關(guān)聯(lián)。
冗余化系統(tǒng)3具有4條hb通信路徑41~44,如果發(fā)生3個故障(hb通信路徑41的故障、sw的故障、hb通信路徑44的故障),則全部的hb通信路徑41~44變得不通暢。這樣,在本說明書中,將與獨立的正常hb通信路徑數(shù)相當?shù)膶嵸|(zhì)上正常的通信路徑的數(shù)量記作“有效hb通信路徑數(shù)”。例如,冗余化系統(tǒng)3的有效hb通信路徑數(shù)為3。
如圖4所示,冗余化系統(tǒng)3的pc2具有列表存儲部29。該列表存儲部29對與上述故障的關(guān)聯(lián)相關(guān)的信息即有效hb通信路徑列表(列表信息)進行存儲。利用表1對該有效hb通信路徑列表進行說明。
如表1所示,有效hb通信路徑列表中列舉出了與hb通信路徑41~44分別相關(guān)的故障的關(guān)聯(lián)的有無、設(shè)想的故障的種類(發(fā)生部位)。例如,設(shè)想在hb通信路徑41的路徑內(nèi)發(fā)生與hb通信路徑41有關(guān)的故障,設(shè)想在sw發(fā)生與hb通信路徑42、43有關(guān)的故障。關(guān)于hb通信路徑42、43,還想到了并非在sw而是在各hb通信路徑內(nèi)分別發(fā)生故障,但在各hb通信路徑內(nèi)分別發(fā)生的故障包含在hb通信路徑42、43同時變得不通暢的sw的故障中。在這樣的包含關(guān)系的情況下,因故障而變得不通暢的范圍較大的條件(最差情況)記載于有效hb通信路徑列表中。在表1所示的例子中,記載了有效hb通信路徑no.1~no.3,在有效hb通信路徑no.2中包含hb通信路徑42、43。
【表1】
圖4的hb通信路徑中的有效hb通信路徑列表
關(guān)于以上述的方式構(gòu)成的冗余化系統(tǒng)3的作用,對與第1實施方式不同之處進行說明。
正常hb通信路徑計數(shù)部24參照在列表存儲部29中存儲的有效hb通信路徑列表(表1)而對正常的有效hb通信路徑數(shù)進行計數(shù)。具體而言,正常hb通信路徑計數(shù)部24分別判定該時刻下的hb通信路徑41~44是正常還是不通暢,將判定結(jié)果記錄于有效hb通信路徑列表中的相應(yīng)的hb通信路徑是否良好這一欄。正常hb通信路徑計數(shù)部24基于該結(jié)果而判定有效hb通信路徑no.1~3是正常還是不通暢,將判定結(jié)果記錄于相應(yīng)的是否良好這一欄,對判斷為正常的有效hb通信路徑的數(shù)量進行計數(shù)。
此時,在具有大于或等于1條的有效hb通信路徑正常的hb通信路徑的情況下,判斷為該有效hb通信路徑正常。例如,在表1所示的例子中,只要hb通信路徑42、43中的1條正常,就判定為有效hb通信路徑no.2正常。在hb通信路徑42、43二者都不通暢的情況下,判斷為有效hb通信路徑no.2不通暢。即,正常的有效hb通信路徑數(shù)是指在有效hb通信路徑列表中具有大于或等于1條的正常的hb通信路徑的有效hb通信路徑的路徑數(shù)。其中,在正常的有效hb通信路徑的路徑數(shù)超過正常hb通信路徑數(shù)的情況下,將正常hb通信路徑數(shù)設(shè)為正常的有效hb通信路徑的路徑數(shù)。例如,在圖5c所示的例子中,在只有hb通信路徑53b正常的情況下,即使正常hb通信路徑數(shù)為1,正常的有效hb通信路徑的路徑數(shù)也仍然變?yōu)?。在這種情況下,將正常hb通信路徑數(shù)(=1)設(shè)為正常的有效hb通信路徑的路徑數(shù)。
閾值比較/動作判定部25對正常的有效hb通信路徑數(shù)和閾值進行比較。以有效hb通信路徑數(shù)為基準對閾值進行設(shè)定。閾值比較/動作判定部25基于比較的結(jié)果,對standby/active切換部27以及冗余化/單獨動作切換部28發(fā)出的指示與第1實施方式相同。
本實施方式的冗余化系統(tǒng)3能夠?qū)⑴c某個特定的故障相關(guān)聯(lián)的通信路徑匯集,集中將它們作為獨立的1個通信路徑(有效hb通信路徑)而處理。
在圖4所示的例子中,hb通信路徑的數(shù)量為4,但hb通信路徑42以及43共享sw,因此有效hb通信路徑的數(shù)量為3。這里,在將閾值設(shè)定為2的情況下,如果3條有效hb通信路徑中的2條有效hb通信路徑在同一時期變得不通暢,則pc2以避免發(fā)生sb的方式進行動作(pc2從“待機狀態(tài)”轉(zhuǎn)換為“解除狀態(tài)”)。
pc2在3條有效hb通信路徑均正常的情況下持續(xù)進行冗余化動作。然而,例如如果hb通信路徑41和sw變得不通暢,則2條有效hb通信路徑在同一時期變得不通暢(即,與閾值=2等同的狀態(tài)),pc2轉(zhuǎn)換為“解除狀態(tài)”(切換至單獨運轉(zhuǎn))。
通過該動作,即使在此后在hb通信路徑44中發(fā)生故障的情況下,pc2也能夠避免sb而不轉(zhuǎn)換至active側(cè)。
這里,利用圖5a~圖5d以及表2~表5有效hb通信路徑列表的變形例對進行說明。
如圖5a所示,在例1的hb通信路徑中,在hb通信路徑51b內(nèi)包含sw,但hb通信路徑51b和hb通信路徑51a相互獨立。因此,在hb通信路徑51a與hb通信路徑51b之間不存在故障的關(guān)聯(lián)。在該情況下,如表2中示出的有效hb通信路徑列表所示,hb通信路徑數(shù)和有效hb通信路徑數(shù)相等,二者均為2。
【表2】
例1的hb通信路徑中的有效hb通信路徑列表
如圖5b所示,在例2的hb通信路徑中,hb通信路徑52a獨立,但hb通信路徑52b、52c共享1個sw。如果該sw中發(fā)生故障,則hb通信路徑52b、52c同時變得不通暢。因此,這2條hb通信路徑52b、52c相互存在故障的關(guān)聯(lián)。在該情況下,如表3中示出的有效hb通信路徑列表所示,hb通信路徑數(shù)為3,有效hb通信路徑數(shù)為2。
【表3】
例2的hb通信路徑中的有效hb通信路徑列表
如圖5c所示,在例3的hb通信路徑中,hb通信路徑53a、53b共享sw1,hb通信路徑53b、53c共享sw2,hb通信路徑53c、53d共享sw3。因此,如果sw1中發(fā)生故障,則hb通信路徑53a、53b同時變得不通暢。如果sw2中發(fā)生故障,則hb通信路徑53b、53c同時變得不通暢。如果sw3中發(fā)生故障,則hb通信路徑53c、53d同時變得不通暢。在該情況下,如表4中示出的有效hb通信路徑列表那樣,有效hb通信路徑數(shù)為3。
【表4】
例3的hb通信路徑中的有效hb通信路徑列表
如圖5d所示,在例4的hb通信路徑中,hb通信路徑54a、54b共享sw1,hb通信路徑54a、54b、54c共享sw2,hb通信路徑54c、54d共享sw3。因此,因sw1發(fā)生故障而hb通信路徑54a、54b同時變得不通暢的故障,包含在因sw2發(fā)生故障而hb通信路徑54a、54b、54c同時變得不通暢的故障中。在該情況下,如表5所示的有效hb通信路徑列表那樣,并未列舉因sw1發(fā)生故障而hb通信路徑54a、54b同時變得不通暢的故障,有效hb通信路徑數(shù)為2。這樣,在有效hb通信路徑數(shù)只有2條的情況下,為了假設(shè)即使sw2或者sw3中發(fā)生異常也不發(fā)生sb而將閾值設(shè)定為1。由此,例如在sw2或者sw3的任一者發(fā)生了異常的情況下,有效hb通信路徑數(shù)變?yōu)?(=閾值),因此pc2轉(zhuǎn)換為“解除狀態(tài)”(切換為單獨運轉(zhuǎn))。
通過該動作,即使在此后產(chǎn)生了剩余的sw的故障的情況下,pc2也能夠避免sb而不轉(zhuǎn)換至active側(cè)。
【表5】
例4的hb通信路徑中的有效hb通信路徑列表
(第4實施方式)
下面,對本發(fā)明所涉及的第4實施方式進行說明,基本結(jié)構(gòu)與第1實施方式相同。因此,對與第1實施方式的各部分相對應(yīng)的部分標注相同的標號并將其說明省略。
在第1實施方式中,示出了如下結(jié)構(gòu),即,在正常hb通信路徑數(shù)小于或等于閾值時,pc2從待機狀態(tài)切換至解除狀態(tài),冗余化系統(tǒng)1切換(后退)至單獨動作,由此避免sb的發(fā)生。
在第4實施方式中,冗余化系統(tǒng)能夠自動地從單獨動作修復為冗余化動作。
利用圖6所示的流程圖對第4實施方式的冗余化系統(tǒng)的動作進行說明。
關(guān)于步驟s6之前的動作,與圖2所示的第1實施方式的步驟s1~步驟s6的動作相同,因此將說明省略。
在第4實施方式中,在步驟s6中將pc2從待機狀態(tài)切換至解除狀態(tài)而執(zhí)行了單獨動作之后,hb通信狀態(tài)判定部23持續(xù)判定hb通信路徑31~33是正常還是不通暢,掌握正常的hb通信路徑以及變得不通暢的hb通信路徑(步驟s9)。
正常hb通信路徑計數(shù)部24對正常hb通信路徑數(shù)進行計數(shù)(步驟s10)。
然后,閾值比較/動作判定部25對正常hb通信路徑數(shù)和閾值進行比較(步驟s11)。在比較的結(jié)果為正常hb通信路徑數(shù)小于或等于閾值的情況下返回至步驟s9。在比較的結(jié)果是正常hb通信路徑數(shù)變?yōu)楸乳撝荡蟮闹档那闆r下,閾值比較/動作判定部25對冗余化/單獨動作切換部28進行驅(qū)動而將pc2從解除狀態(tài)切換至待機狀態(tài)。由此,將冗余化系統(tǒng)1從單獨動作切換至冗余化動作(步驟s12)而執(zhí)行冗余化動作(步驟s13)。
由此,例如即使在hb通信路徑因一部分開關(guān)等的故障、線纜的脫落·切斷等而變得不通暢,正常hb通信路徑數(shù)暫時性地小于或等于閾值而使得冗余化系統(tǒng)切換至單獨動作的情況下,也能夠在此后對變得不通暢的部位進行修復而使得正常hb通信路徑數(shù)恢復為超過閾值的數(shù)量的情況下,自動地使系統(tǒng)的冗余化動作復原。
在步驟s6中將pc2切換至解除狀態(tài)之后,也使pc2持續(xù)進行與pc1的數(shù)據(jù)的等值化等。由此,在hb通信路徑數(shù)恢復為超過閾值的數(shù)量的情況下,能夠訊速地使系統(tǒng)的冗余化動作復原。
可以對本實施方式和第3實施方式進行組合,通過對有效hb通信路徑數(shù)和閾值的比較而使冗余化系統(tǒng)3從單獨動作自動地復原為冗余化動作。
(第5實施方式)
下面,對本發(fā)明所涉及的第5實施方式進行說明,基本結(jié)構(gòu)與第1實施方式相同。因此,對與第1實施方式的各部分相對應(yīng)的部分標注相同的標號并將其說明省略。
在第1實施方式中,pc2中具有閾值比較/動作判定部25等用于實現(xiàn)后退功能的結(jié)構(gòu)要素。然而,在第5實施方式中,pc1中也具有這些結(jié)構(gòu)要素。在因pc1宕機等而冗余化系統(tǒng)執(zhí)行使pc2處于active側(cè)的單獨動作之后,在pc1復原后的情況下自動地進行冗余化動作的復原。
如圖7所示,本實施方式的冗余化系統(tǒng)4中的pc1具有hb接收部19a~19c、hb通信狀態(tài)判定部13、正常hb通信路徑計數(shù)部14、閾值比較/動作判定部15、存儲部16、standby/active切換部17以及冗余化/單獨動作切換部18。這些結(jié)構(gòu)要素的動作與pc2中的相對應(yīng)的結(jié)構(gòu)要素的動作相同,因此將詳細的說明省略。
冗余化系統(tǒng)4具有hb通信路徑34~36。hb通信路徑34~36將由pc2的hb發(fā)送部29a~29c發(fā)送的hb信號分別傳遞至pc1的hb接收部19a~19c。
此外,hb通信路徑31以及34可以是物理性相同的路徑,hb通信路徑32以及35可以是物理性相同的路徑,hb通信路徑33以及36可以是物理性相同的路徑。在該情況下,hb發(fā)送部11a以及hb接收部19a可以作為hb發(fā)送接收部而構(gòu)成,hb發(fā)送部11b以及hb接收部19b可以作為hb發(fā)送接收部而構(gòu)成,hb發(fā)送部11c以及hb接收部19c可以作為hb發(fā)送接收部而構(gòu)成。
利用圖8所示的流程圖對本實施方式所涉及的冗余化系統(tǒng)4的作用進行說明。關(guān)于步驟s8以前的動作,與圖2所示的第1實施方式的步驟s1~s4以及步驟s7、步驟s8相同,因此將說明省略。
在pc2執(zhí)行active側(cè)的單獨動作(步驟s8)之后,pc1的hb通信狀態(tài)判定部13對hb通信路徑34~36是正常還是不通暢進行判定(步驟s14)。
然后,正常hb通信路徑計數(shù)部14對hb通信路徑34~36中的正常hb通信路徑數(shù)進行計數(shù)(步驟s15)。
然后,閾值比較/動作判定部15對正常hb通信路徑數(shù)、和存儲于存儲部16的閾值進行比較(步驟s16)。在比較的結(jié)果是正常hb通信路徑數(shù)小于或等于閾值的情況下返回至步驟s14。在比較的結(jié)果是正常hb通信路徑數(shù)比閾值大的情況下,閾值比較/動作判定部15將用于使pc1從解除狀態(tài)切換至待機狀態(tài)的指示輸出至冗余化/單獨動作切換部18。冗余化/單獨動作切換部18根據(jù)來自閾值比較/動作判定部15的指示而將冗余化系統(tǒng)4從單獨動作切換至冗余化動作(步驟s17)。由此,使pc2處于active側(cè)且使pc1處于standby側(cè)的、冗余化系統(tǒng)4的冗余化動作自動地復原(步驟s18)。
這樣,在pc2因例如pc1宕機而處于active側(cè)之后,在pc1復原后的情況下,能夠使冗余化系統(tǒng)4自動地從單獨動作復原為冗余化動作。
(第6實施方式)
下面,對本發(fā)明所涉及的第6實施方式進行說明。在第1實施方式~第5實施方式中,對基于2臺pc的雙重化運轉(zhuǎn)進行了說明。然而,在本實施方式中,對基于大于或等于3臺的pc的多重化運轉(zhuǎn)進行說明。
如圖9所示,本實施方式的冗余化系統(tǒng)5具有1臺active側(cè)的pc即pc1、以及2臺standby側(cè)的pc即pc2以及pc3(第3裝置)。本實施方式的pc1具有與第5實施方式中示出的pc1(參照圖7)相同的結(jié)構(gòu),與pc2以及pc3彼此對hb信號進行發(fā)送接收。與此相同,pc2與pc1以及pc3彼此對hb信號進行發(fā)送接收,pc3與pc1以及pc2彼此對hb信號進行發(fā)送接收。pc1~pc3分別通過與圖2所示的流程圖相同的步驟對與其他2臺pc之間的正常hb通信路徑數(shù)進行計數(shù),對正常hb通信路徑數(shù)和閾值進行比較。由此,能夠進行冗余化/單獨動作的切換以及standby/active的切換。
在圖9所示的例子中,pc1-pc2之間的hb通信路徑數(shù)為4,pc1-pc3之間的hb通信路徑數(shù)為4,pc2-pc3之間的hb通信路徑數(shù)為4,任意的hb通信路徑均通過各sw1~4進行中繼。這樣,使冗余化系統(tǒng)5進行3重化運轉(zhuǎn)。standby側(cè)的pc可以大于或等于3臺。
在pc1-pc2之間的閾值、pc1-pc3之間的閾值、pc2-pc3之間的閾值分別設(shè)定為3的情況下,如果各pc之間的正常的hb通信路徑大于或等于4條,則持續(xù)進行3重化運轉(zhuǎn)。假設(shè)即使在該狀態(tài)下在同一時期發(fā)生3個(閾值設(shè)定值)的hb通信路徑的異常,正常的hb通信路徑也殘留有大于或等于1條的路徑。因此,能夠通過正常的路徑而確認active側(cè)的pc1的生存。如果在該條件下后退(變換為單獨動作),則能夠避免發(fā)生sb。
在所述第1實施方式~第5實施方式中,作為“后退”而對冗余化系統(tǒng)從冗余化動作切換至單獨動作的情況進行了說明。然而,本實施方式中的后退還包括從3重化運轉(zhuǎn)切換至雙重化運轉(zhuǎn)的情況。
例如,如圖9所示,在利用3臺pc執(zhí)行3重化運轉(zhuǎn)的情況下,pc2以及pc3分別對來自pc1的hb信號進行確認。例如,在由pc2確認的pc1-pc2之間的正常hb通信路徑數(shù)大于或等于1且小于或等于閾值的情況下,pc2從待機狀態(tài)切換至解除狀態(tài)。另一方面,在由pc3確認的pc1-pc3之間的正常hb通信路徑數(shù)比閾值大的情況下,pc3持續(xù)處于待機狀態(tài)。其結(jié)果,3重化運轉(zhuǎn)后退至雙重化運轉(zhuǎn)。pc2以及pc3的閾值可以分別設(shè)定為不同的值。
在pc1~pc3分別具有本發(fā)明的第5實施方式中示出的結(jié)構(gòu)(參照圖7)的情況下,能夠自動地從2重化運轉(zhuǎn)復原為3重化運轉(zhuǎn)。
例如,pc1-pc2之間的正常hb通信路徑數(shù)在3重化運轉(zhuǎn)中變得大于或等于1且小于或等于閾值,在pc2從待機狀態(tài)切換至解除狀態(tài)之后,并且在pc1發(fā)生故障而pc3切換至active側(cè)的情況下,如果正常則冗余化系統(tǒng)5使pc3單獨地執(zhí)行單獨動作。
這里,在處于解除狀態(tài)的pc2、與處于active側(cè)的pc3之間的正常hb通信路徑數(shù)比閾值大的情況下,pc2切換至待機狀態(tài),執(zhí)行pc2以及pc3的冗余化動作。
由此,即使在發(fā)生pc1-pc2之間的正常hb通信路徑數(shù)的減少以及pc1的故障這樣的多重故障的情況下,也能夠防止冗余化系統(tǒng)5切換至單獨動作而持續(xù)進行基于pc2以及pc3的冗余化動作,能夠維持系統(tǒng)整體的可靠性。
如以上說明,根據(jù)第6實施方式的冗余化系統(tǒng)5,即使在大于或等于3臺的pc中的處于active側(cè)的pc改變了的情況下,各pc也參照在與active側(cè)的pc之間設(shè)定的閾值,在與active側(cè)的pc之間自動地切換至解除狀態(tài)或者復原為待機狀態(tài)。由此,第6實施方式的冗余化系統(tǒng)5能夠自動地執(zhí)行與其條件相應(yīng)的臺數(shù)的冗余化動作(主動地變化)。
在如冗余化系統(tǒng)5那樣利用大于或等于2臺的standby側(cè)的pc實施冗余化的情況下,各pc的hb接收部以及hb發(fā)送部可以使用共用的結(jié)構(gòu)。例如,在pc1~pc3分別使用1個共用hb接收部的情況下,hb通信部可以具有如下功能,即,根據(jù)由上述共用hb接收部接收到的、pc1~pc3各自的hb數(shù)據(jù)包中所包含的發(fā)送源地址而判斷是來自哪個pc的hb信號。在pc1~pc3分別使用1個共用hb發(fā)送部的情況下,該共通hb發(fā)送部可以通過經(jīng)由sw等分支的hb通信路徑而與各pc連接。
上述的第1~第6實施方式及其變形例能夠應(yīng)用于使用例如https://www.yokogawa.co.jp/rd/pdf/tr/rd-tr-r05402-005.pdf所示那樣的控制器、網(wǎng)關(guān)裝置等的車間的過程控制系統(tǒng)。
在這種過程控制系統(tǒng)中,要求高可靠性/實時性。然而,通過應(yīng)用上述各實施方式并利用多臺pc進行冗余化動作,能夠應(yīng)對這些要求。
下面,重新對本發(fā)明的概念(理念)進行整理記述。
在包含冗余化裝置的冗余化系統(tǒng)中,在一部分冗余化裝置發(fā)生故障的情況下,其他裝置(目標設(shè)備等)能夠掌握發(fā)生了該故障的情況,還能夠采取對策。另一方面,如果冗余化裝置中發(fā)生sb,則其他裝置無法檢測出冗余化裝置的異常,有可能使用因通信的不穩(wěn)定而引起的錯誤的數(shù)據(jù)。因此,從系統(tǒng)整體來看,重要的是通過避免冗余化裝置的故障而避免發(fā)生sb。
本發(fā)明的基本理念在于,作為使冗余化裝置的(有效)hb通信路徑至少剩余1條路徑(即,略微降低可執(zhí)行冗余化動作條件)的補償,實施后退(停止冗余化動作而變換至單獨動作),進行避免sb的動作。
為了與冗余化裝置的結(jié)構(gòu)(hb通信路徑數(shù)等)相應(yīng)地且適當?shù)卦O(shè)定后退的條件,提出了閾值這一概念。
考慮到多條hb通信路徑內(nèi)存在單個故障點(故障的關(guān)聯(lián))的情況,提出了有效hb通信路徑數(shù)這一概念。
還針對使后退的冗余化裝置臨時復原為冗余化動作的手段、方法提出了解決方案。
在由多臺pc構(gòu)成的冗余化裝置中,針對如下方式而提出了方案,根據(jù)將各pc之間連接的hb通信路徑的狀況,使進行冗余化動作的pc的臺數(shù)主動地變化而確保可靠性,并且實現(xiàn)對sb的避免。
發(fā)生sb的概率越低越優(yōu)選,通過將sb的發(fā)生概率設(shè)定為比系統(tǒng)從冗余化動作切換至單獨動作的概率低,能夠在發(fā)生sb之前使成為sb的原因的冗余化動作停止。因此,在要求較高的可靠性的車間的過程控制系統(tǒng)等中,可以以使得sb發(fā)生概率比系統(tǒng)從冗余化動作切換至單獨動作的概率低的方式對冗余化系統(tǒng)的結(jié)構(gòu)(pc的臺數(shù)、hb通信路徑數(shù)、以及閾值等)進行設(shè)定。
在本說明書中,“前、后、上、下、右、左、垂直、水平、下、橫、行以及列”等表示方向的詞語是指本發(fā)明的裝置中的這些方向。因此,應(yīng)當在本發(fā)明的裝置中相對地對本發(fā)明的說明書中的這些詞語進行解釋。
為了表示用于執(zhí)行本發(fā)明的功能而構(gòu)成、或者表示裝置的結(jié)構(gòu)、要素、部分而使用“構(gòu)成”這一詞語。
并且,在權(quán)利要求中作為“手段和功能”而表述的詞語,應(yīng)當包含為了執(zhí)行本發(fā)明中所包含的功能而能夠利用的全部構(gòu)造。
為了表示用于結(jié)構(gòu)要素、單元、硬件、用于執(zhí)行所期望的功能而編制的軟件的一部分而使用“單元”這一詞語。硬件的典型例是裝置、電路,但并不局限于此。
以上對本發(fā)明的優(yōu)選的實施例進行了說明,但本發(fā)明并不限定于這些實施例。在不脫離本發(fā)明的主旨的范圍內(nèi),能夠進行結(jié)構(gòu)的附加、省略、置換以及其他變更。本發(fā)明并不限定于前述的說明,僅由附件的權(quán)利要求書來進行限定。