• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型

      2014-12-23 01:18:54李曉勇
      關(guān)鍵詞:熱備雙機(jī)三元組

      劉 剛,馬 威,李曉勇

      (1.中國(guó)鐵路總公司 鐵道部信息技術(shù)中心,北京100844;2.北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京100044)

      0 引 言

      雙機(jī)熱備是常用的提高系統(tǒng)服務(wù)可用性方法之一。比較經(jīng)典的雙機(jī)熱備協(xié)議有VRRP[1]和HSRP[2],很多廠商和開(kāi)源組織也針對(duì)其平臺(tái)產(chǎn)品推出相應(yīng)的雙機(jī)熱備方案,比如Linux-HA[3]。雙機(jī)熱備機(jī)制的一般原理是主、從服務(wù)器/設(shè)備通過(guò)心跳 (heart beat)協(xié)議對(duì)對(duì)方可用狀態(tài)的檢測(cè)和判斷,一旦從服務(wù)器確認(rèn)主服務(wù)器不可用,就會(huì)接管其功能并對(duì)客戶端提供相關(guān)服務(wù),對(duì)雙機(jī)熱備機(jī)制的研究主要集中在故障發(fā)現(xiàn)、服務(wù)恢復(fù)以及主、從服務(wù)器一致性保證方面[3-6]。

      但是傳統(tǒng)的雙機(jī)熱備機(jī)制可能會(huì)存在裂腦 (split brain)風(fēng)險(xiǎn)[7,8]。所謂裂腦是指由于主、從服務(wù)器之間的通信機(jī)制(或心跳機(jī)制,heart beat)失效而導(dǎo)致的相互對(duì)對(duì)方狀態(tài)的誤判,并導(dǎo)致雙方不能一致地對(duì)外提供服務(wù)。有很多原因可能會(huì)導(dǎo)致心跳機(jī)制失效,比如物理線路問(wèn)題或心跳軟件故障等。Fencing 和Quorum 機(jī)制是防范裂腦的常見(jiàn)方法[8,9],比如采用SCSI reserve 和Quorum Daemon 方法、雙機(jī)狀態(tài)一致性同步[10]等,但是這些方法也存在很多局限性,比如可能會(huì)引入新的單點(diǎn)故障問(wèn)題,另外這些方法并不通用,比如難以應(yīng)用在網(wǎng)絡(luò)設(shè)備的雙機(jī)熱備中。

      為了克服或緩解傳統(tǒng)雙機(jī)熱備機(jī)制中存在的 “裂腦”風(fēng)險(xiǎn),本文提出一種基于多方?jīng)Q策機(jī)制的雙機(jī)熱備通用模型。所謂 “多方?jīng)Q策機(jī)制”是指主、從服務(wù)器不僅依賴自身對(duì)對(duì)方的觀測(cè)結(jié)果來(lái)判斷對(duì)方的可用狀態(tài),而且還依賴服務(wù)客戶端的觀測(cè)結(jié)果來(lái)進(jìn)一步判斷主從服務(wù)器的真實(shí)可用狀態(tài)。將客戶端的觀測(cè)結(jié)果也作為服務(wù)器狀態(tài)的判定因子是合理的,因?yàn)檫@些服務(wù)本身就是為它們提供的,結(jié)合主、從服務(wù)器和客戶端觀測(cè)結(jié)果于一體的多邊決策機(jī)制能夠有效避免雙邊決策機(jī)制的局限性和片面性。另外,本文提出的雙機(jī)熱備模型不僅可以用于主機(jī)、數(shù)據(jù)庫(kù)服務(wù)的熱備,也可以用于網(wǎng)絡(luò)設(shè)備的熱備。

      1 基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型

      服務(wù)是否可用應(yīng)該是針對(duì)客戶而言的,但是在傳統(tǒng)的雙機(jī)熱備模型中,并沒(méi)有從客戶端的角度來(lái)判斷服務(wù)的可用性。基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型包括3個(gè)重要決策參與實(shí)體:主服務(wù)器、從服務(wù)器和客戶端,如圖1所示。

      圖1 基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型結(jié)構(gòu)

      對(duì)圖1結(jié)構(gòu)中各參與實(shí)體,我們用通信三元組<m,s,c>表示它與其它2個(gè)實(shí)體的通信狀態(tài),其中,m、s、c分別表示它與主服務(wù)器、從服務(wù)器和客戶端的通信狀態(tài);實(shí)體之間的通信關(guān)系是雙向的,即如果實(shí)體A 到實(shí)體B的通信正常,那么反過(guò)來(lái)B到A 的通信也正常;反之,如果實(shí)體A 到實(shí)體B的沒(méi)有通信關(guān)系,那么反過(guò)來(lái)B 到A也沒(méi)有通信關(guān)系。通信三元組中各元素的值只有0和1這2種,值為0時(shí)表示兩者之間沒(méi)有通信關(guān)系,1 表示雙方通信正常,對(duì)每個(gè)實(shí)體,我們假定它與自身的通信狀態(tài)恒為1。

      圖1模型將全部客戶端作為一個(gè)參與實(shí)體,即只要有一個(gè)客戶端與主服務(wù)器或從服務(wù)器之間通信正常,那么就認(rèn)為客戶端實(shí)體與主服務(wù)器或從服務(wù)器之間的通信是正常的。

      為描述方便,我們用M 表示主服務(wù)器的通信三元組、S 表示從服務(wù)器的通信三元組、C 表示客戶端的通信三元組。

      圖1模型中,每個(gè)實(shí)體與其它2個(gè)實(shí)體之間的通信狀態(tài)都有4種可能。比如對(duì)主服務(wù)器有:<1,1,1>表示與其它2個(gè)實(shí)體之間通信正常;<1,1,0>表示與從服務(wù)器通信正常,而與客戶端沒(méi)有通信聯(lián)系;<1,0,1>表示與從服務(wù)器沒(méi)有通信聯(lián)系,而與客戶端通信正常;<1,0,0>表示與其它2個(gè)實(shí)體之間都沒(méi)有通信聯(lián)系。表1對(duì)此給出了詳細(xì)描述。

      表1 各實(shí)體通信狀態(tài)描述

      由于通信是雙向的,因此表1中3個(gè)參與實(shí)體的通信狀態(tài)并不是都能隨機(jī)組合,比如M=<1,1,1>與C=<0,1,1>就不能同時(shí)出現(xiàn),因?yàn)镸=<1,1,1>表示主服務(wù)器和客戶端通信正常,但C=<0,1,1>卻表示客戶端與主服務(wù)器沒(méi)有通信。排除各種相互矛盾的組合后,表2中列出了3個(gè)參與實(shí)體通信狀態(tài)的所有可能組合,并給出了相關(guān)含義的解釋。

      下面我們針對(duì)圖1模型給出相關(guān)定義。

      定義1 信息交換規(guī)則:基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型中各實(shí)體要遵循如下規(guī)則:

      (1)每個(gè)實(shí)體都保存一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)T,T 是一個(gè)三元組T,T=<M,S,C>,其中M、S、C 分別是主、從服務(wù)器和客戶端的通信狀態(tài)三元組。系統(tǒng)初始化后,各實(shí)體的T 被設(shè)置為<<0,0,0>,<0,0,0>,<0,0,0>>;

      (2)各實(shí)體每隔時(shí)間t根據(jù)自己的網(wǎng)絡(luò)連接狀態(tài)生成對(duì)應(yīng)的通信狀態(tài)三元組M、S 或C,更新到各自的T 中,并將其盡力發(fā)送到其它兩個(gè)實(shí)體。比如主服務(wù)器會(huì)生成其通信狀態(tài)三元組M,將其更新自己所保存T 中的M 項(xiàng)并發(fā)送到從服務(wù)器和客戶端;從服務(wù)器會(huì)生成其通信狀態(tài)三元組S,將其更新自己所保存T 中的S 項(xiàng)并發(fā)送到主服務(wù)器和客戶端;客戶端會(huì)生成其通信狀態(tài)三元組C,將其更新自己所保存T 中的C 項(xiàng)并發(fā)送到主服務(wù)器和從服務(wù)器;

      表2 實(shí)體間通信狀態(tài)可能組合及其解釋

      (3)每個(gè)實(shí)體在收到其它實(shí)體發(fā)來(lái)的通信狀態(tài)三元組后,會(huì)對(duì)T 中對(duì)應(yīng)項(xiàng)進(jìn)行直接更新;比如主服務(wù)器收到從服務(wù)器發(fā)過(guò)來(lái)的S 后,會(huì)直接更新自己所保存T 中的S 項(xiàng);

      (4)如果某實(shí)體在時(shí)間段e內(nèi)都沒(méi)有收到其它實(shí)體的通信狀態(tài)三元組,就將其T 中對(duì)應(yīng)的項(xiàng)設(shè)置為<0,0,0>;比如如果主服務(wù)器在過(guò)去的e時(shí)間段內(nèi)都沒(méi)收到從服務(wù)器的通信三元組,就會(huì)將其T 中對(duì)應(yīng)的S 項(xiàng)設(shè)置為<0,0,0>。

      根據(jù)定義1信息交換規(guī)則,各個(gè)實(shí)體內(nèi)部的三元組T實(shí)際上表示了它對(duì)系統(tǒng)全面通信關(guān)系的認(rèn)識(shí)。要注意每個(gè)實(shí)體的T 與系統(tǒng)真實(shí)的<M,S,C>并不完全一致,這是因?yàn)槿绻?個(gè)實(shí)體之間沒(méi)有通信聯(lián)系,那么他們就不能獲得對(duì)方的真實(shí)通信狀態(tài)。表3 中給出了各種通信關(guān)系下,每個(gè)實(shí)體的三元組內(nèi)容。

      表3 不同通信環(huán)境中各實(shí)體的三元組T 值

      從表3可以看出,對(duì)于每個(gè)實(shí)體,除了在與其它2個(gè)實(shí)體都沒(méi)有通信聯(lián)系外 (表3中的陰影項(xiàng)),其三元組T 的值與系統(tǒng)通信狀態(tài)<M,S,C>是一一對(duì)應(yīng)的,這表示即便每個(gè)實(shí)體所 “認(rèn)識(shí)”到的系統(tǒng)通信狀態(tài)與系統(tǒng)真實(shí)的通信狀態(tài)不一樣,但并不會(huì)影響它對(duì)系統(tǒng)真實(shí)通信狀態(tài)的正確理解。實(shí)際上,如果一個(gè)實(shí)體如果與其它實(shí)體沒(méi)有通信聯(lián)系,那么其它實(shí)體的真實(shí)通信狀態(tài)對(duì)它也沒(méi)有任何意義。比如表3最后兩行中,主服務(wù)器的T 值表示它與從服務(wù)器和客戶端已經(jīng)沒(méi)有任何通信聯(lián)系,因此不管從服務(wù)器和客戶端存在通信聯(lián)系 (表3倒數(shù)第二行)還是不存在通信聯(lián)系 (表3倒數(shù)第一行),主服務(wù)器都知道自己不能再對(duì)外提供服務(wù)。

      定義2 服務(wù)切換規(guī)則:基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型遵循如下服務(wù)切換規(guī)則:

      (1)當(dāng)主服務(wù)器保存的T 為<<1,1,0>,<1,1,1>,<0,0,0>>或<<1,0,0>,<0,0,0>,<0,0,0>>時(shí),主服務(wù)器退出服務(wù),否則繼續(xù)提供服務(wù);

      (2)當(dāng)從服務(wù)器保存的T 為<<1,1,0>,<1,1,1>,<0,1,1>>或<<0,0,0>,<0,1,1>,<0,1,1>>時(shí),從服務(wù)器接管服務(wù),否則繼續(xù)備用服務(wù)。

      從表3可以看出,當(dāng)主服務(wù)器保存的T 為<<1,1,0>,<1,1,0>,<0,0,0>>時(shí),從服務(wù)器保存的T也為<<1,1,0>,<1,1,0>,<0,0,0>>,此時(shí),主、從服務(wù)器與客戶端都沒(méi)有通信,因此對(duì)客戶端都不可用,也就不存在服務(wù)器切換要求。在實(shí)際系統(tǒng)中,這種情況下,主、從服務(wù)器應(yīng)該發(fā)出告警信息,提醒管理人員網(wǎng)絡(luò)可能發(fā)生故障。

      2 安全性分析

      要判斷基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型是否能正常工作,就必須驗(yàn)證它是否會(huì)存在主、從服務(wù)器同時(shí)爭(zhēng)奪對(duì)外提供服務(wù)的情況,即從服務(wù)器試圖接管服務(wù)時(shí),主服務(wù)器是否還要繼續(xù)提供服務(wù);如果存在爭(zhēng)奪服務(wù)的情況,那么就可以認(rèn)為該模型存在 “裂腦”的可能。

      首先從服務(wù)器接管或者退出的條件進(jìn)行分析:

      根據(jù)定義2服務(wù)切換規(guī)則,從服務(wù)器只有在其三元組T 為<<1,1,0>,<1,1,1>,<0,1,1>>或<<0,0,0>,<0,1,1>,<0,1,1>>時(shí),才試圖接管服務(wù),此時(shí),主服務(wù)器三元組T 分別為<<1,1,0>,<1,1,1>,<0,0,0>>或<<1,0,0>,<0,0,0>,<0,0,0>>,正好是主服務(wù)器主動(dòng)退出服務(wù)的條件。顯然,基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型避免了主、從服務(wù)器 “裂腦”的可能。

      然后從上述條件產(chǎn)生的原因進(jìn)行分析:

      從上一節(jié)描述可以看出,正是由于客戶端的參與,才使得主、從服務(wù)器對(duì)彼此狀態(tài)的判斷有了更多的依據(jù),進(jìn)而對(duì)彼此狀態(tài)做出正確的判斷??蛻舳俗鳛榉?wù)對(duì)象,它們對(duì)主、從服務(wù)器的狀態(tài)判斷有2個(gè)作用:首先它確立了多數(shù)優(yōu)勢(shì)判斷原則,從而打破了傳統(tǒng)主、從服務(wù)器因?yàn)閿?shù)量相等而導(dǎo)致的在相互狀態(tài)判斷出現(xiàn)矛盾時(shí)的爭(zhēng)議;其次,在客戶端不能為主、從服務(wù)器提供判斷依據(jù)時(shí),即當(dāng)客戶端三元組T 為<<0,0,0>,<0,0,0>,<1,0,0>>時(shí),主、從服務(wù)器也無(wú)法為客戶端提供服務(wù),因此即使彼此出現(xiàn)狀態(tài)判斷矛盾也不會(huì)帶來(lái)更多的服務(wù)可用性問(wèn)題。

      3 實(shí)現(xiàn)方法

      基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型在實(shí)現(xiàn)上沒(méi)有技術(shù)障礙。本文推薦的方法是在主、從服務(wù)器上都運(yùn)行雙機(jī)熱備代理軟件,同時(shí)選擇若干客戶機(jī),并在這些客戶機(jī)安裝運(yùn)行相關(guān)的客戶端代理軟件。這些代理軟件主要支持定義1和定義2中的規(guī)則:

      (1)各實(shí)體通過(guò)IP 組播方式 (Multicast)相互發(fā)送hello報(bào)文,報(bào)告各自的通信狀態(tài)三元組<m,s,c>;

      (2)各實(shí)體根據(jù)其通信狀態(tài)和接收到的hello報(bào)文信息,對(duì)其三元組T=<M,S,C>進(jìn)行維護(hù)。

      為了保證通信狀態(tài)信息交換的實(shí)時(shí)性和可靠性,所有實(shí)體都需要維護(hù)幾個(gè)時(shí)間變量,包括:

      (1)hello報(bào)文發(fā)送間隔時(shí)間hello-time,對(duì)應(yīng)定義1中的時(shí)間t。每個(gè)實(shí)體每隔時(shí)間t向其它實(shí)體外發(fā)送hello報(bào)文,報(bào)告其通信狀態(tài);

      (2)T 中元素項(xiàng)過(guò)期時(shí)間expire-time,對(duì)應(yīng)定義1 中的時(shí)間e。如果一個(gè)實(shí)體在expire-time內(nèi)沒(méi)有收到其它實(shí)體的通信狀態(tài)信息,那么它就將其三元組T 中對(duì)應(yīng)元素設(shè)置為<0,0,0>;比如在expire-time內(nèi),如果主服務(wù)器沒(méi)有收到來(lái)自任何客戶端的hello報(bào)文,那么其T 中的C被設(shè)置為<0,0,0>。expire-time應(yīng)該大于hello-time,考慮到網(wǎng)絡(luò)的可能延遲,一般前者至少設(shè)置為后者的3倍。

      由于所有客戶端整體作為一個(gè)參與實(shí)體,因此對(duì)于任意客戶端,它生成客戶端通信狀態(tài)三元組C 的方式不同于其它2個(gè)實(shí)體。所有客戶端都會(huì)根據(jù)自己的通信狀態(tài)和其它客戶端的hello報(bào)文來(lái)設(shè)置自己的通信狀態(tài)三元組,比如如果某客戶端與從服務(wù)器沒(méi)有通信聯(lián)系,但是只要它收到有任何一個(gè)客戶端在其hello報(bào)文里報(bào)告與從服務(wù)器通信正常,那么它就會(huì)將其通信狀態(tài)三元組<m,s,c>中的s位設(shè)置為1;類似原理,對(duì)于主、從服務(wù)器,只要有一個(gè)客戶端與其有通信連接,那么其通信狀態(tài)三元組<m,s,c>中的c位就應(yīng)該被設(shè)置為1。

      另外,要盡量避免客戶端同時(shí)離線帶來(lái)的問(wèn)題。如果所有客戶端都被關(guān)機(jī),那么主、從服務(wù)器都會(huì)認(rèn)為與客戶端的通信出現(xiàn)故障。為了避免這種現(xiàn)象的發(fā)生,選擇客戶機(jī)時(shí)要注意以下事項(xiàng):①選擇適當(dāng)數(shù)量的客戶機(jī);②確認(rèn)這些客戶機(jī)不會(huì)同時(shí)離線或關(guān)機(jī);③盡量確保這些客戶機(jī)不同時(shí)連接在同一個(gè)網(wǎng)絡(luò)接入設(shè)備上,避免網(wǎng)絡(luò)設(shè)備故障導(dǎo)致所有客戶機(jī)同時(shí)離線。

      4 結(jié)束語(yǔ)

      雙機(jī)熱備在保證服務(wù)高可用性方面應(yīng)用廣泛。雙機(jī)熱備方案主要是通過(guò)心跳協(xié)議來(lái)進(jìn)行可用狀態(tài)的判斷,因此會(huì)存在 “裂腦”的風(fēng)險(xiǎn)。在現(xiàn)有的防 “裂腦”的機(jī)制往往缺乏通用性,有些方案會(huì)導(dǎo)致新的單點(diǎn)故障問(wèn)題等。本文提出了一種基于多方?jīng)Q策機(jī)制的雙機(jī)熱備通用模型,引入了服務(wù)客戶端對(duì)系統(tǒng)服務(wù)狀態(tài)的觀測(cè)結(jié)果,并將其作為主、從服務(wù)器判斷對(duì)方是否可用的重要因子,對(duì)包括主、從服務(wù)器和客戶端在內(nèi)的多方觀測(cè)結(jié)果進(jìn)行綜合分析,為判斷系統(tǒng)服務(wù)狀態(tài)提供依據(jù),有效避免了傳統(tǒng)雙邊決策機(jī)制的局限性和片面性,同時(shí)也具有多種服務(wù)模式的通用性。

      基于多方?jīng)Q策機(jī)制的雙機(jī)熱備模型可以克服傳統(tǒng)雙機(jī)熱備系統(tǒng)中可能出現(xiàn)的 “裂腦”問(wèn)題。經(jīng)理論分析,該模型實(shí)現(xiàn)方法并不復(fù)雜,配置靈活,同時(shí)不要求對(duì)系統(tǒng)平臺(tái)和應(yīng)用程序進(jìn)行改動(dòng),有較好的應(yīng)用推廣價(jià)值。

      [1]IETF.Virtual router redundancy protocol(VRRP)version 3 for IPv4 and IPv6 [EB/OL].http://tools.ietf.org/html/rfc5798,2010.

      [2]Cisco.Cisco hot standby router protocol(HSRP) [EB/OL].[2012-09-26].http://www.cisco.com/en/US/tech/tk648/tk362/tk321/tsd_technology_support_sub-protocol_h(yuǎn)ome.html.

      [3]Bharadwaj S.Dual server hot standby architecture for disaster recovery [EB/OL].http://webserver.iiitb.ac.in/sites/default/files/uploads/IIITB-TR-2012-004.pdf,2012.

      [4]Liu Zhiming.Fault detection for high availability RAID system[C]//Sixth International Conference on Networked Computing and Advanced Information Management.IEEE,2010:27-32.

      [5]Nakamura S,Nakayama K,Nakagawa T.Optimal backup interval of database by incremental backup method [C]//IEEE International Conference on Industrial Engineering and Engineering Management,2009.

      [6]Rizwan SM,Khurana V,Taneja G.Reliability analysis of a hot standby industrial system [J].International Journal of Modelling &Simulation,2010,30 (3):315.

      [7]Linux-HA.Linux-HA’s documentation [EB/OL].[2011-02-28].http://linux-h(huán)a.org/wiki/Main_Page.

      [8]Schatz,Bob,Oleg Kiselev.System and method for preventing data corruption in computer system clusters [P].U.S.Patent No.7,631,066,2009.

      [9]Tech Thoughts.Split-brain,quorum,and fencing-updated[EB/OL] .[2007-10-10].http://techthoughts.typepad.com/managing_computers/2007/10/split-brain-quo.html.

      [10]YANG Xiaofen,WANG Yonghui,LIU Yi,et al.Design and implementation of dual-server hot-standby system for realtime database [J].Computer Engineering and Applications,2012,48 (29):124-127 (in Chinese). [楊曉芬,王永會(huì),劉軼,等.實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)雙機(jī)熱備機(jī)制設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與應(yīng)用,2012,48 (29):124-127.]

      猜你喜歡
      熱備雙機(jī)三元組
      基于帶噪聲數(shù)據(jù)集的強(qiáng)魯棒性隱含三元組質(zhì)檢算法*
      特征標(biāo)三元組的本原誘導(dǎo)子
      熱備動(dòng)車組配置方案優(yōu)化模型
      東海區(qū)實(shí)時(shí)海洋觀測(cè)數(shù)據(jù)庫(kù)雙機(jī)熱備系統(tǒng)解決方案
      關(guān)于余撓三元組的periodic-模
      雙機(jī)、雙槳軸系下水前的安裝工藝
      雙機(jī)牽引ZDJ9道岔不同步問(wèn)題的處理
      Loader軸在雙機(jī)桁架機(jī)械手上的應(yīng)用
      青海廣播電視大學(xué)校園網(wǎng)升級(jí)改造探討
      三元組輻射場(chǎng)的建模與仿真
      错那县| 吉隆县| 浪卡子县| 汕头市| 盐山县| 仪征市| 赫章县| 游戏| 铁岭县| 兴海县| 弥勒县| 吉木萨尔县| 望江县| 陆川县| 申扎县| 托克逊县| 芷江| 彰化市| 通州区| 高平市| 南丰县| 胶州市| 汝阳县| 彭泽县| 邵武市| 盘锦市| 丰镇市| 石家庄市| 买车| 和田县| 会宁县| 六盘水市| 义马市| 新营市| 富顺县| 东海县| 黑山县| 张掖市| 彰武县| 荥阳市| 青海省|