亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2014-12-23 01:18:54李曉勇
        計算機工程與設(shè)計 2014年9期
        關(guān)鍵詞:熱備雙機三元組

        劉 剛,馬 威,李曉勇

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

        0 引 言

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

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

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

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

        服務(wù)是否可用應(yīng)該是針對客戶而言的,但是在傳統(tǒng)的雙機熱備模型中,并沒有從客戶端的角度來判斷服務(wù)的可用性?;诙喾?jīng)Q策機制的雙機熱備模型包括3個重要決策參與實體:主服務(wù)器、從服務(wù)器和客戶端,如圖1所示。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        定義2 服務(wù)切換規(guī)則:基于多方?jīng)Q策機制的雙機熱備模型遵循如下服務(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>>時,主服務(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>>時,從服務(wù)器接管服務(wù),否則繼續(xù)備用服務(wù)。

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

        2 安全性分析

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

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

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

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

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

        3 實現(xiàn)方法

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

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

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

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

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

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

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

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

        4 結(jié)束語

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

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

        [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). [楊曉芬,王永會,劉軼,等.實時數(shù)據(jù)庫系統(tǒng)雙機熱備機制設(shè)計與實現(xiàn) [J].計算機工程與應(yīng)用,2012,48 (29):124-127.]

        猜你喜歡
        熱備雙機三元組
        基于語義增強雙編碼器的方面情感三元組提取
        軟件工程(2024年12期)2024-12-28 00:00:00
        基于帶噪聲數(shù)據(jù)集的強魯棒性隱含三元組質(zhì)檢算法*
        熱備動車組配置方案優(yōu)化模型
        東海區(qū)實時海洋觀測數(shù)據(jù)庫雙機熱備系統(tǒng)解決方案
        關(guān)于余撓三元組的periodic-模
        雙機、雙槳軸系下水前的安裝工藝
        雙機牽引ZDJ9道岔不同步問題的處理
        Loader軸在雙機桁架機械手上的應(yīng)用
        青海廣播電視大學(xué)校園網(wǎng)升級改造探討
        三元組輻射場的建模與仿真
        久久婷婷综合色丁香五月| 2020国产在视频线自在拍| 久久久噜噜噜久久中文福利| 九九99久久精品国产| 无码人妻AⅤ一区 二区 三区| 国产精品一区二区三区黄片视频| 极品尤物精品在线观看| 亚洲七久久之综合七久久| 国产精品欧美日韩在线一区| 天天看片视频免费观看| 成人不卡国产福利电影在线看| 久久精品亚洲成在人线av| 国产精品高清网站| 69精品人人人人| 日日噜狠狠噜天天噜av| 狠狠久久久久综合网| 国产美女三级视频网站| 日本国产精品久久一线| 亚洲欧美日韩在线不卡| 97超在线视频免费| 亚洲日韩精品欧美一区二区三区不卡 | 国产精品无码素人福利不卡| 爱情岛论坛亚洲品质自拍hd| 人妻无码∧V一区二区| 青青草视频在线观看入口| av永久天堂一区二区三区| 有码精品一二区在线| 国产av一区网址大全| 国产精品黑丝高跟在线粉嫩| 少妇高潮惨叫正在播放对白| 在线视频青青草猎艳自拍69 | 国产高清在线精品一区二区三区| AV无码一区二区三区国产| 中文字幕日韩精品中文字幕| 久久婷婷色香五月综合缴缴情| 区久久aaa片69亚洲| 亚洲国产A∨无码影院| 精品亚洲一区二区视频| 久久中文字幕人妻淑女| 变态 另类 欧美 大码 日韩 | 国产在线视频国产永久视频|