国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分布式系統(tǒng)節(jié)點(diǎn)異常檢測(cè)和恢復(fù)研究

2018-12-31 00:00:00付宇曹廷
大科技·D版 2018年11期

摘 要:大規(guī)模分布式系統(tǒng)設(shè)計(jì)的一個(gè)重要目標(biāo)是節(jié)省成本,因此性價(jià)比較高的PC服務(wù)器大量的應(yīng)用在分布式系統(tǒng)中。這些服務(wù)器的性價(jià)比很高,但是故障率也較高,這就要求分布式系統(tǒng)能夠在軟件層面上自動(dòng)容錯(cuò),當(dāng)分布式系統(tǒng)中的節(jié)點(diǎn)出錯(cuò)時(shí),系統(tǒng)能夠自動(dòng)檢測(cè)和發(fā)現(xiàn),將故障節(jié)點(diǎn)的數(shù)據(jù)和服務(wù)遷移到其他正常節(jié)點(diǎn)上。本文主要研究分布式系統(tǒng)如何將這些異常自動(dòng)檢測(cè)處理并恢復(fù)。

關(guān)鍵詞:分布式系統(tǒng);異常檢測(cè);異?;謴?fù)

中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004-7344(2018)33-0316-01

隨著社交網(wǎng)絡(luò)、移動(dòng)互聯(lián)網(wǎng)、電子商務(wù)等技術(shù)的不斷發(fā)展,大量互聯(lián)網(wǎng)用戶產(chǎn)生了海量的數(shù)據(jù),為了處理這些數(shù)據(jù),各大互聯(lián)網(wǎng)公司都采用了一系列的分布式計(jì)算機(jī)系統(tǒng)[1]進(jìn)行用戶數(shù)據(jù)的存儲(chǔ)、處理和分析。分布式系統(tǒng)通常由大量的PC組成,這些PC服務(wù)器性能優(yōu)異,價(jià)格低廉,有著良好的成本優(yōu)勢(shì),但是也存在故障率高的問題。由大量PC服務(wù)器組成的分布式系統(tǒng),節(jié)點(diǎn)出現(xiàn)故障失效是極其常見的,為了在節(jié)點(diǎn)出現(xiàn)故障時(shí),不對(duì)整個(gè)分布式系統(tǒng)的正常運(yùn)行產(chǎn)生影響,分布式系統(tǒng)應(yīng)該有能力在節(jié)點(diǎn)發(fā)生故障時(shí)將故障檢測(cè)出來,然后進(jìn)行處理,將故障節(jié)點(diǎn)的數(shù)據(jù)和服務(wù)遷移[2]到其他節(jié)點(diǎn)上。本文主要對(duì)分布式系統(tǒng)可能出現(xiàn)的節(jié)點(diǎn)異常類型進(jìn)行分析,對(duì)如何檢測(cè)異常和恢復(fù)異常進(jìn)行研究。

1 分布式系統(tǒng)中的異常類型

在分布式系統(tǒng)中,通常將一臺(tái)服務(wù)器稱為一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)與節(jié)點(diǎn)之間通過網(wǎng)絡(luò)進(jìn)行通信,但是,服務(wù)器節(jié)點(diǎn)是不可靠的,網(wǎng)絡(luò)也是不可靠的,我們首先分析分布式系統(tǒng)中的各種異常類型。

1.1 節(jié)點(diǎn)宕機(jī)

造成節(jié)點(diǎn)宕機(jī)的原因很多,可能是停電、操作系統(tǒng)出錯(cuò)、內(nèi)存出錯(cuò)、系統(tǒng)提供資源耗盡等等。節(jié)點(diǎn)宕機(jī)隨時(shí)可能發(fā)生,當(dāng)節(jié)點(diǎn)重新啟動(dòng)后,節(jié)點(diǎn)內(nèi)存中的數(shù)據(jù)完全丟失。因此,分布式系統(tǒng)設(shè)計(jì)時(shí)要考慮如何設(shè)計(jì)通過讀取存儲(chǔ)中的數(shù)據(jù),將節(jié)點(diǎn)恢復(fù)到一個(gè)一致的狀態(tài),繼續(xù)提供服務(wù)。

1.2 網(wǎng)絡(luò)出錯(cuò)

分布式系統(tǒng)的節(jié)點(diǎn)之間是通過網(wǎng)絡(luò)通信的。引發(fā)網(wǎng)絡(luò)錯(cuò)誤的原因可能是消息丟失、消息亂序、網(wǎng)絡(luò)包數(shù)據(jù)錯(cuò)誤等。

對(duì)于常見的IP網(wǎng)絡(luò)來說,網(wǎng)絡(luò)層不保證數(shù)據(jù)報(bào)文的可靠傳遞,在網(wǎng)絡(luò)擁堵,設(shè)備異常,路由變動(dòng)的情況下都有可能發(fā)生報(bào)文丟失。因此,分布式系統(tǒng)的網(wǎng)絡(luò)協(xié)議必須要能夠處理網(wǎng)絡(luò)報(bào)文丟失的情況。

消息亂序是指分布式系統(tǒng)中的節(jié)點(diǎn)發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文有時(shí)不是按照發(fā)送時(shí)的順序依次到達(dá)目的節(jié)點(diǎn)。通常由于IP網(wǎng)絡(luò)采用的存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制、路由的不確定性等原因,數(shù)據(jù)報(bào)文亂序也是一種常見的網(wǎng)絡(luò)異常。這就要求設(shè)計(jì)分布式系統(tǒng)網(wǎng)絡(luò)協(xié)議時(shí),需要有機(jī)制來處理網(wǎng)絡(luò)消息的亂序問題,使得無效的、過期的網(wǎng)絡(luò)消息不影響系統(tǒng)的正確性。

網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)報(bào)文可能在傳輸?shù)倪^程中,因?yàn)樾盘?hào)干擾,網(wǎng)絡(luò)設(shè)備異常等原因,導(dǎo)致傳輸?shù)臄?shù)據(jù)出錯(cuò),分布式系統(tǒng)的網(wǎng)絡(luò)協(xié)議應(yīng)該能夠檢測(cè)出出錯(cuò)的網(wǎng)絡(luò)報(bào)文,并且將出錯(cuò)的網(wǎng)絡(luò)報(bào)文丟棄,并且通知數(shù)據(jù)報(bào)文的源節(jié)點(diǎn)重新傳輸該數(shù)據(jù)報(bào)文,直到成功接收該報(bào)文。

1.3 磁盤故障

在分布式系統(tǒng)中,大量的磁盤用于存儲(chǔ)海量的用戶數(shù)據(jù),這些磁盤負(fù)擔(dān)這高強(qiáng)度的讀寫操作,因此,磁盤故障是一種發(fā)生概率較高的異常。磁盤故障主要分為兩種:磁盤損壞和數(shù)據(jù)錯(cuò)誤。磁盤損壞時(shí)會(huì)丟失存儲(chǔ)在上面的數(shù)據(jù),分布式系統(tǒng)設(shè)計(jì)時(shí)需要將數(shù)據(jù)存儲(chǔ)到多個(gè)節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)出錯(cuò),也能夠從其他節(jié)點(diǎn)上恢復(fù)數(shù)據(jù)。另外,分布式系統(tǒng)也要能夠檢測(cè)出磁盤數(shù)據(jù)錯(cuò)誤。

2 分布式系統(tǒng)中的異常檢測(cè)和恢復(fù)

2.1 節(jié)點(diǎn)宕機(jī)檢測(cè)和恢復(fù)

對(duì)于節(jié)點(diǎn)宕機(jī),采用心跳檢測(cè)[3]是一種常用的方法,分布式系統(tǒng)中的每一個(gè)節(jié)點(diǎn),每隔一個(gè)固定的時(shí)間,向管理節(jié)點(diǎn)發(fā)送一個(gè)網(wǎng)絡(luò)心跳數(shù)據(jù)包,管理節(jié)點(diǎn)就認(rèn)為該節(jié)點(diǎn)出于可用狀態(tài)。如果管理節(jié)點(diǎn)超過一定時(shí)間,沒有收到某個(gè)節(jié)點(diǎn)的心跳包,則檢測(cè)出該節(jié)點(diǎn)處于不可用狀態(tài),然后將該節(jié)點(diǎn)的數(shù)據(jù)從其他節(jié)點(diǎn)進(jìn)行恢復(fù),將該節(jié)點(diǎn)提供的服務(wù)遷移到其他節(jié)點(diǎn)上,保證分布式系統(tǒng)繼續(xù)正常服務(wù)。

運(yùn)維人員恢復(fù)發(fā)生宕機(jī)的節(jié)點(diǎn)并將其重啟后,節(jié)點(diǎn)失去了所有的內(nèi)存信息,可以通過讀取磁盤上的持久化數(shù)據(jù),將節(jié)點(diǎn)的狀態(tài)恢復(fù)到宕機(jī)前的一個(gè)一致的狀態(tài),繼續(xù)提供服務(wù)。

2.2 網(wǎng)絡(luò)故障檢測(cè)和恢復(fù)

對(duì)于網(wǎng)絡(luò)故障中的消息丟失錯(cuò)誤,可以采用確認(rèn)機(jī)制來保證正確傳輸。節(jié)點(diǎn)發(fā)送的數(shù)據(jù)報(bào)文,只有收到了目的節(jié)點(diǎn)的確認(rèn)才認(rèn)為報(bào)文正確發(fā)送。

對(duì)于網(wǎng)絡(luò)故障中的消息亂序錯(cuò)誤[4],可以采用數(shù)據(jù)報(bào)文序號(hào)機(jī)制。對(duì)每個(gè)數(shù)據(jù)報(bào)文編號(hào),如果目標(biāo)節(jié)點(diǎn)收到的報(bào)文的序號(hào)較期望收到的數(shù)據(jù)報(bào)文序號(hào)大,則將其保存在內(nèi)存中,待收到之前的報(bào)文后,再將其中的數(shù)據(jù)取出來;如果收到的報(bào)文的序號(hào)較期望收到的數(shù)據(jù)報(bào)文序號(hào)小,則直接將該報(bào)文丟棄。

對(duì)于網(wǎng)絡(luò)故障中的數(shù)據(jù)出錯(cuò),可以采用校驗(yàn)和來檢測(cè)。對(duì)傳輸?shù)臄?shù)據(jù)報(bào)文計(jì)算校驗(yàn)和并存放到數(shù)據(jù)報(bào)文后,目標(biāo)節(jié)點(diǎn)接收到報(bào)文后計(jì)算校驗(yàn)和,如果和報(bào)文中的校驗(yàn)和一致,則報(bào)文數(shù)據(jù)是正確的,否則報(bào)文數(shù)據(jù)出錯(cuò),要求源節(jié)點(diǎn)重傳數(shù)據(jù)。

2.3 磁盤故障檢測(cè)和恢復(fù)

對(duì)于磁盤損壞故障,節(jié)點(diǎn)如果發(fā)現(xiàn)其上的磁盤無法進(jìn)行讀寫操作,分布式系統(tǒng)可以采用出錯(cuò)節(jié)點(diǎn)向管理節(jié)點(diǎn)報(bào)告磁盤出錯(cuò)的方法檢測(cè)錯(cuò)誤。管理節(jié)點(diǎn)將該節(jié)點(diǎn)標(biāo)記為不可用狀態(tài),然后將該節(jié)點(diǎn)中的數(shù)據(jù)和服務(wù)遷移到其他正常工作的節(jié)點(diǎn)上,保證分布式系統(tǒng)可用性。

對(duì)于磁盤數(shù)據(jù)錯(cuò)誤故障,可以采用對(duì)數(shù)據(jù)計(jì)算校驗(yàn)和的方法檢測(cè)。如果節(jié)點(diǎn)對(duì)數(shù)據(jù)計(jì)算校驗(yàn)和出錯(cuò),那么節(jié)點(diǎn)可以將錯(cuò)誤報(bào)告管理節(jié)點(diǎn),管理節(jié)點(diǎn)首先刪除該節(jié)點(diǎn)上的錯(cuò)誤數(shù)據(jù),之后從其他節(jié)點(diǎn)上將備份的數(shù)據(jù)恢復(fù)到錯(cuò)誤節(jié)點(diǎn)上,這樣數(shù)據(jù)錯(cuò)誤就被更正了。

3 結(jié) 論

分布式系統(tǒng)中采用了大量的PC服務(wù)器,這些服務(wù)器性價(jià)比優(yōu)異,但是存在故障率高的問題,為了保證分布式系統(tǒng)持續(xù)對(duì)外提供服務(wù)不中斷,分布式系統(tǒng)必須能夠在軟件層面自動(dòng)檢測(cè)系統(tǒng)中節(jié)點(diǎn)出現(xiàn)的故障并自動(dòng)恢復(fù)。本文介紹的分布式系統(tǒng)中故障的類型以及檢測(cè)和恢復(fù)方法都是實(shí)踐中可以采用的方法。

參考文獻(xiàn)

[1]崔星燦,禹曉輝,劉 洋,呂朝陽.分布式流處理技術(shù)綜述.計(jì)算機(jī)研究與發(fā)展,2015,12.

[2]慈 松,于 冰,韓言妮.虛擬網(wǎng)絡(luò)的服務(wù)遷移技術(shù)研究.中興通訊技術(shù),2014,6.

[3]陳 誠,陳海濤.一種自適應(yīng)的容災(zāi)系統(tǒng)心跳檢測(cè)算法.計(jì)算機(jī)工程與科學(xué),2008,05.

[4]趙麗莉,孫 偉.TCP協(xié)議亂序數(shù)據(jù)包處理算法綜述.軟件工程師,2010,7.

收稿日期:2018-10-13

云霄县| 湘潭市| 鄂托克前旗| 合川市| 黄浦区| 霍山县| 台南市| 南通市| 城固县| 松滋市| 疏附县| 仪征市| 仁寿县| 隆尧县| 株洲县| 昌平区| 衡阳市| 新丰县| 马尔康县| 黑山县| 山西省| 玉龙| 南康市| 桐庐县| 彭水| 昂仁县| 灌南县| 达州市| 耒阳市| 邢台市| 中江县| 安阳县| 怀安县| 思南县| 太谷县| 新乡市| 安康市| 藁城市| 石柱| 咸阳市| 敦煌市|