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

?

P2P架構(gòu)下環(huán)型結(jié)構(gòu)文件熱備份系統(tǒng)設(shè)計(jì)

2020-07-24 02:11鄭曉健鄭子維
軟件導(dǎo)刊 2020年6期

鄭曉健 鄭子維

摘要:針對(duì)文件共享系統(tǒng)中的文件熱備份問題,提出一種在P2P網(wǎng)絡(luò)中利用節(jié)點(diǎn)間環(huán)型結(jié)構(gòu)實(shí)現(xiàn)共享文件備份的方法。圍繞環(huán)型結(jié)構(gòu)文件熱備份設(shè)計(jì),在實(shí)驗(yàn)系統(tǒng)中同時(shí)解決了網(wǎng)絡(luò)節(jié)點(diǎn)加入與退出、節(jié)點(diǎn)狀態(tài)監(jiān)控、節(jié)點(diǎn)連接信息刷新、各節(jié)點(diǎn)中共享文件協(xié)同檢索,以及各節(jié)點(diǎn)間實(shí)時(shí)通信等技術(shù)問題。充分利用P2P網(wǎng)絡(luò)結(jié)構(gòu)的技術(shù)特點(diǎn),提高文件共享系統(tǒng)的可用性,同時(shí)證明P2P網(wǎng)絡(luò)結(jié)構(gòu)下的文件資源共享系統(tǒng)具有擴(kuò)展方便、負(fù)載變化對(duì)系統(tǒng)影響較小等特點(diǎn)。

關(guān)鍵詞:P2P網(wǎng)絡(luò);文件共享;文件熱備份;環(huán)型結(jié)構(gòu)

DOI:10.11907//rjdk.201103 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)006-0098-04

0 引言

共享文件系統(tǒng)主要關(guān)注的問題之一是服務(wù)可用性。一直以來(lái)共享文件系統(tǒng)大多采用C/S或Web架構(gòu),數(shù)據(jù)集中存放于中心服務(wù)器,導(dǎo)致系統(tǒng)防災(zāi)性較差,例如網(wǎng)站的FTP服務(wù)器等,一旦發(fā)生故障,可能導(dǎo)致系統(tǒng)服務(wù)中斷。筆者工作過的單位就發(fā)生過多次服務(wù)器宕機(jī)事件,使工作受到了很大影響。隨著P2P網(wǎng)絡(luò)技術(shù)的發(fā)展,分布式共享文件系統(tǒng)開始流行。分布式結(jié)構(gòu)的共享文件系統(tǒng)在高可用性、易擴(kuò)展性、負(fù)載平衡等用戶十分關(guān)注的技術(shù)性能上都有較大改善,但由于P2P網(wǎng)絡(luò)固有的動(dòng)態(tài)性表現(xiàn),使得文件檢索成功率仍然不穩(wěn)定,特別在一些不可抗力事件的影響下,有些系統(tǒng)無(wú)法持續(xù)工作,導(dǎo)致文件受到破壞甚至丟失。結(jié)合系統(tǒng)備份技術(shù),特別是熱備份技術(shù)以提高P2P文件共享系統(tǒng)的可用性與可靠性。在P2P分布式文件系統(tǒng)中,每個(gè)共享文件節(jié)點(diǎn)提供文件和存儲(chǔ)資源,管理本節(jié)點(diǎn)的文件及備份文件,在網(wǎng)絡(luò)中設(shè)置類似Gnutella的系統(tǒng)服務(wù)節(jié)點(diǎn),以便于獲取節(jié)點(diǎn)和備份節(jié)點(diǎn)的網(wǎng)絡(luò)地址,并提供文件檢索與資源定位服務(wù)。

熱備份系統(tǒng)以雙機(jī)熱備份為例,采用兩臺(tái)物理位置不同,但同時(shí)運(yùn)行熱備份程序的服務(wù)器,管理數(shù)據(jù)的備份、讀取與存儲(chǔ),以持續(xù)保護(hù)數(shù)據(jù)的安全性。當(dāng)主服務(wù)器出現(xiàn)故障時(shí),備份服務(wù)器通過網(wǎng)絡(luò)主動(dòng)接替主服務(wù)器工作,保證網(wǎng)絡(luò)服務(wù)不間斷。

相關(guān)研究主要集中在服務(wù)器監(jiān)控方法與數(shù)據(jù)管理架構(gòu)方面。如文獻(xiàn)的混合容災(zāi)雙機(jī)熱備份系統(tǒng)提出新的心跳協(xié)議以解決主、備份系統(tǒng)的通信聯(lián)系與狀態(tài)監(jiān)控問題;文獻(xiàn)將主機(jī)和備份機(jī)的數(shù)據(jù)通過網(wǎng)絡(luò)進(jìn)行集中管理,雙機(jī)熱備份系統(tǒng)直接從存儲(chǔ)設(shè)備讀取與存儲(chǔ)所有數(shù)據(jù),以保證數(shù)據(jù)的安全性及保密性。以上系統(tǒng)均采用在主、備份服務(wù)器上集中存放數(shù)據(jù)的模式,由于受到服務(wù)器存儲(chǔ)容量的限制,很難滿足大型文件管理系統(tǒng)對(duì)存儲(chǔ)容量及可用性的要求。本文提出的P2P架構(gòu)下的共享文件熱備份系統(tǒng),將共享文件節(jié)點(diǎn)備份關(guān)系構(gòu)成環(huán)型線性表,解決了備份文件存放、系統(tǒng)服務(wù)平穩(wěn)切換等問題,可維持系統(tǒng)不間斷工作,而且擴(kuò)展性好,能夠保證共享文件的安全性。

1 系統(tǒng)熱備份模型

P2P節(jié)點(diǎn)基礎(chǔ)通信層與共享文件熱備份服務(wù)層形成系統(tǒng)的兩層架構(gòu),其中P2P節(jié)點(diǎn)基礎(chǔ)通信層實(shí)現(xiàn)所有節(jié)點(diǎn)間的點(diǎn)對(duì)點(diǎn)通信,共享文件熱備份服務(wù)層提供與文件熱備份相關(guān)的功能,以保證系統(tǒng)的可用性及訪問的安全性。

共享文件熱備份層是由系統(tǒng)服務(wù)節(jié)點(diǎn)和共享文件節(jié)點(diǎn)組成的覆蓋網(wǎng)。系統(tǒng)服務(wù)節(jié)點(diǎn)包括主服務(wù)節(jié)點(diǎn)和備份服務(wù)節(jié)點(diǎn),系統(tǒng)服務(wù)節(jié)點(diǎn)管理所有共享文件節(jié)點(diǎn),以保證備份文件的可用性,包括共享文件節(jié)點(diǎn)狀態(tài)監(jiān)控、節(jié)點(diǎn)控制與負(fù)載平衡、節(jié)點(diǎn)信息查詢等。其中共享文件節(jié)點(diǎn)狀態(tài)監(jiān)控由節(jié)點(diǎn)狀態(tài)監(jiān)控算法實(shí)現(xiàn),節(jié)點(diǎn)控制由節(jié)點(diǎn)加入算法和節(jié)點(diǎn)退出算法實(shí)現(xiàn)。共享文件節(jié)點(diǎn)存儲(chǔ)與管理自治文件及備份文件,是網(wǎng)絡(luò)共享文件資源的提供者和服務(wù)受益者,并能響應(yīng)文件查詢請(qǐng)求。

為了實(shí)現(xiàn)網(wǎng)絡(luò)共享文件的熱備份,將共享文件節(jié)點(diǎn)間的備份關(guān)系設(shè)計(jì)成環(huán)型線性表結(jié)構(gòu),共享文件節(jié)點(diǎn)間邏輯結(jié)構(gòu)如圖1所示。共享文件節(jié)點(diǎn)備份關(guān)系由系統(tǒng)服務(wù)節(jié)點(diǎn)進(jìn)行管理與維護(hù)。

1.1 共享文件節(jié)點(diǎn)備份關(guān)系

為了明確描述共享文件節(jié)點(diǎn)間的備份關(guān)系,給出以下概念定義:

定義1:自治文件即共享文件節(jié)點(diǎn)向網(wǎng)絡(luò)提供的共享文件。

定義2:備份文件即其它共享文件節(jié)點(diǎn)以備份形式保存在本地節(jié)點(diǎn)中的文件。

所以本文將共享文件分成自治文件和備份文件兩類。每個(gè)共享文件節(jié)點(diǎn)設(shè)置共享文件表,用于記錄與管理節(jié)點(diǎn)自治文件及備份文件信息。

定義3:節(jié)點(diǎn)共享文件表(SFT,Shared file table),SFT={},其中id為文件編號(hào),f為類型(0:自治文件或l:備份文件),t為共享文件更新時(shí)間,p為共享文件本地存放路徑。

為了有效管理系統(tǒng)服務(wù)節(jié)點(diǎn)及查詢各網(wǎng)絡(luò)節(jié)點(diǎn)的備份節(jié)點(diǎn),應(yīng)設(shè)置節(jié)點(diǎn)信息表和節(jié)點(diǎn)備份關(guān)系表。

定義4:節(jié)點(diǎn)信息表(NIT,Node information table),NIT={},其中Nid是節(jié)點(diǎn)編號(hào),IP是節(jié)點(diǎn)IP地址和端口號(hào),S是節(jié)點(diǎn)在線狀態(tài)。

定義5:節(jié)點(diǎn)備份關(guān)系表(BRT,Backup relationship ta.ble),BRT=(N,R),其中N={ai|1≤i≤n,n≥0,ai∈NIT},R={r},r={1,a2>,2,a3>,…,n-1,an>,n,ai>}。

N是節(jié)點(diǎn)集合,R是節(jié)點(diǎn)間備份關(guān)系集合,i,ai+1>表示ai所有自治文件備份到ai+1,。在BRT中,節(jié)點(diǎn)a1的前驅(qū)節(jié)點(diǎn)是an,節(jié)點(diǎn)an的后繼節(jié)點(diǎn)是a1,其余節(jié)點(diǎn)為ai-1,ai+1,是ai的前驅(qū)和后繼節(jié)點(diǎn),所以BRT是個(gè)循環(huán)表。數(shù)據(jù)庫(kù)實(shí)現(xiàn)BRT時(shí),BRT={},其中Bid為后繼節(jié)點(diǎn)編號(hào)。

1.2 節(jié)點(diǎn)加入算法

新節(jié)點(diǎn)加入網(wǎng)絡(luò)會(huì)引起節(jié)點(diǎn)間備份關(guān)系的變化,因?yàn)橄嚓P(guān)節(jié)點(diǎn)的自治文件都需要備份到后繼節(jié)點(diǎn),以維持BRT線性表環(huán)型結(jié)構(gòu)的完整性和一致性。本文約定新節(jié)點(diǎn)插入到BRT尾節(jié)點(diǎn)后,使BRT尾節(jié)點(diǎn)成為新節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn),首節(jié)點(diǎn)成為新節(jié)點(diǎn)的后繼節(jié)點(diǎn)。

算法1節(jié)點(diǎn)加入算法。

輸入:BRT的尾指針nid,節(jié)點(diǎn)IPn

輸出:在NIT和BRT尾部增加新節(jié)點(diǎn),建立備份關(guān)系。

(1)NIT增加新記錄n,Sn>。

(2)如果BRT為φ,則在BRT尾部增加新記錄,轉(zhuǎn)第(6)步。

(3)取BRT尾節(jié)點(diǎn),在BRT尾部增加新記錄。

(4)在NIT中定位記錄r,St>,獲取節(jié)點(diǎn)網(wǎng)址IPr。

(5)向節(jié)點(diǎn)IP,發(fā)送其自治文件到節(jié)點(diǎn)IPn備份的消息。

(6)修改BRT的尾指針為Nid。

新節(jié)點(diǎn)加入網(wǎng)絡(luò)要向系統(tǒng)服務(wù)節(jié)點(diǎn)發(fā)送注冊(cè)消息,調(diào)用節(jié)點(diǎn)加入算法完成3項(xiàng)任務(wù):①在NIT和BRT增加新節(jié)點(diǎn)記錄,通過消息傳送的節(jié)點(diǎn)IP地址在NIT中建立記錄,生成節(jié)點(diǎn)編號(hào)Nid;②建立節(jié)點(diǎn)備份關(guān)系,通過在備份關(guān)系表BRT尾部插入節(jié)點(diǎn),使尾節(jié)點(diǎn)成為新節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn),插入節(jié)點(diǎn)后,BRT的首節(jié)點(diǎn)成為新節(jié)點(diǎn)的后繼節(jié)點(diǎn),建立節(jié)點(diǎn)備份關(guān)系(線性表環(huán)型結(jié)構(gòu));③共享文件備份,向前驅(qū)節(jié)點(diǎn)發(fā)送消息,讓其將自治文件發(fā)送到新節(jié)點(diǎn)作備份,但由于新節(jié)點(diǎn)剛加人,自身的自治文件情況還不明確,所以暫時(shí)不在后繼節(jié)點(diǎn)作備份,而由節(jié)點(diǎn)文件發(fā)布算法實(shí)現(xiàn)文件備份。節(jié)點(diǎn)IP,收到消息,將SFTr(即SFTr中f=1)發(fā)送至節(jié)點(diǎn)IPn,SFTn=SFTr∩SFTn。

1.3 節(jié)點(diǎn)退出算法

系統(tǒng)服務(wù)節(jié)點(diǎn)定期接收所有共享文件節(jié)點(diǎn)發(fā)送的心跳消息,無(wú)心跳表明該節(jié)點(diǎn)已退出網(wǎng)絡(luò),要調(diào)用節(jié)點(diǎn)退出算法調(diào)整前驅(qū)、后繼節(jié)點(diǎn)間的備份關(guān)系,并通知節(jié)點(diǎn)進(jìn)行共享文件備份,最后刷新共享文件表SFT。

算法2節(jié)點(diǎn)退出算法

輸入:退出節(jié)點(diǎn)nid。

輸出:在NIT和BRT刪除退出的節(jié)點(diǎn)nid記錄,調(diào)整BRT備份關(guān)系。

(1)按nid在NIT中找到L,SL>、n,Sn>和N,SN>,獲取IPL和IPN,刪除記錄n,Sn>。

(2)按nid在BRT中找到、和,將更改成,刪除記錄。

(3)向節(jié)點(diǎn)IPN發(fā)送消息,將其備份文件變成自治文件。

(4)向節(jié)點(diǎn)IPL發(fā)送消息,將其自治文件發(fā)送到節(jié)點(diǎn)IPN作為備份文件。

節(jié)點(diǎn)IPN接收到消息,使SFTN={}中f=1。節(jié)點(diǎn)IPL收到消息,將SFTL(即SFTL中f=1)發(fā)送至節(jié)點(diǎn)IPN,SFTN=SFTL∩SFTN。

1.4 節(jié)點(diǎn)狀態(tài)監(jiān)控算法

在線狀態(tài)的共享文件節(jié)點(diǎn)定時(shí)向系統(tǒng)服務(wù)節(jié)點(diǎn)發(fā)送心跳消息,系統(tǒng)服務(wù)節(jié)點(diǎn)接收到消息,找到節(jié)點(diǎn)記錄NIT={},設(shè)置S為在線狀態(tài)。系統(tǒng)服務(wù)節(jié)點(diǎn)會(huì)周期性地檢查NIT,若發(fā)現(xiàn)節(jié)點(diǎn)Nid離線,則選擇合適的備份節(jié)點(diǎn),并調(diào)整共享文件節(jié)點(diǎn)間的備份關(guān)系,最后對(duì)所有共享文件節(jié)點(diǎn)刷新NIT。

算法3節(jié)點(diǎn)狀態(tài)監(jiān)控算法

輸入:周期時(shí)間事件。

輸出:刷新關(guān)系文件節(jié)點(diǎn)NIT消息。

(1)for each Si∈NIT

如果si離線,則調(diào)用節(jié)點(diǎn)退出算法。

心跳協(xié)議也影響熱備份系統(tǒng)性能。心跳協(xié)議可利用Socket,以UDP、TCP、ICMP報(bào)文方式或串口通信方式加以實(shí)現(xiàn)。信息傳輸經(jīng)過傳輸層、內(nèi)核與通信接口軟件及應(yīng)用軟件任務(wù)進(jìn)行切換,整個(gè)過程環(huán)節(jié)多、耗費(fèi)時(shí)間長(zhǎng),采用TCP心跳協(xié)議可保證連接的可靠性。另外,系統(tǒng)服務(wù)節(jié)點(diǎn)接收到共享文件節(jié)點(diǎn)前后兩次心跳的間隔期總會(huì)存在短暫的空白時(shí)間,若系統(tǒng)服務(wù)節(jié)點(diǎn)或共享文件節(jié)點(diǎn)出現(xiàn)故障,則均無(wú)法監(jiān)控到,因此心跳時(shí)間設(shè)置會(huì)影響系統(tǒng)性能。

1.5 節(jié)點(diǎn)文件檢索算法

各節(jié)點(diǎn)文件檢索主要利用系統(tǒng)服務(wù)節(jié)點(diǎn)傳送給節(jié)點(diǎn)的NIT結(jié)合各節(jié)點(diǎn)的SFT加以實(shí)現(xiàn)。依靠過去成功檢索獲得的信息,在NIT中選擇部分或全部節(jié)點(diǎn)發(fā)送文件檢索請(qǐng)求,各節(jié)點(diǎn)接收到檢索消息,通過查詢SFT即可找到所需的文件。

算法4節(jié)點(diǎn)文件檢索算法。

輸人:節(jié)點(diǎn)ao要檢索的文件名f。

輸出:節(jié)點(diǎn)ai的返回結(jié)果。

發(fā)送檢索f消息給ai。

節(jié)點(diǎn)ai收到消息,在SFT中查詢f,如果找到則返回文件,否則返回未找到文件。節(jié)點(diǎn)ao根據(jù)返回結(jié)果對(duì)ai進(jìn)行評(píng)價(jià)(評(píng)價(jià)指標(biāo)為查詢成功次數(shù)),如果成功返回查找的文件,則增加查詢成功次數(shù)并記錄評(píng)價(jià)結(jié)果。算法中選擇節(jié)點(diǎn)的依據(jù)是查詢成功次數(shù),所以次數(shù)多的節(jié)點(diǎn)首先被選中。如果全部返回結(jié)果均為未找到,則節(jié)點(diǎn)ao可擴(kuò)大選擇節(jié)點(diǎn)范圍再進(jìn)行查找。

2 軟件設(shè)計(jì)與實(shí)現(xiàn)

系統(tǒng)要共享的所有文件資源被分散存放到各文件共享節(jié)點(diǎn)中,并將檢索共享文件節(jié)點(diǎn)的信息發(fā)布到系統(tǒng)服務(wù)節(jié)點(diǎn)以便于管理。

本系統(tǒng)由P2P消息收發(fā)模塊、消息解析與任務(wù)調(diào)度模塊構(gòu)成P2P節(jié)點(diǎn)基礎(chǔ)通信層,P2P節(jié)點(diǎn)控制與文件備份模塊、節(jié)點(diǎn)狀態(tài)監(jiān)測(cè)模塊構(gòu)成共享文件熱備份服務(wù)層。節(jié)點(diǎn)之間通信采用TCP協(xié)議,P2P節(jié)點(diǎn)監(jiān)聽連接請(qǐng)求端口,有連接請(qǐng)求時(shí)創(chuàng)建消息接收線程,建立Socket通信連接并接收消息,通過應(yīng)用層通信協(xié)議解析消息,任務(wù)調(diào)度發(fā)送消息給各處理模塊完成相應(yīng)處理。

實(shí)驗(yàn)系統(tǒng)軟件采用多線程技術(shù)、Socket通信技術(shù)和TCP協(xié)議實(shí)現(xiàn)可靠的數(shù)據(jù)通信。采用Microsoft Visual C6.0作為實(shí)驗(yàn)系統(tǒng)軟件開發(fā)工具,同時(shí)采用Microsoft Access2010數(shù)據(jù)庫(kù)管理系統(tǒng)建立系統(tǒng)服務(wù)節(jié)點(diǎn)的NIT和BRT表,以及共享文件節(jié)點(diǎn)的SFT和NIT表。

3 結(jié)語(yǔ)

本文主要研究共享文件熱備份系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)問題,通過建立P2P網(wǎng)絡(luò)下線性結(jié)構(gòu)的共享文件備份系統(tǒng),解決了網(wǎng)絡(luò)節(jié)點(diǎn)變動(dòng)控制、狀態(tài)監(jiān)測(cè)與文件檢索等問題。系統(tǒng)能夠滿足中小型網(wǎng)絡(luò)文件資源共享系統(tǒng)中的文件熱備份需求,而且得益于P2P網(wǎng)絡(luò)系統(tǒng)可靠性強(qiáng)、擴(kuò)展性與靈活性較高等特點(diǎn),一定程度上提升了系統(tǒng)可用性,且系統(tǒng)運(yùn)行穩(wěn)定。下一步將運(yùn)用面向行業(yè)的智能信息處理技術(shù)實(shí)現(xiàn)文件信息的智能檢索,并運(yùn)用區(qū)塊鏈技術(shù)解決網(wǎng)絡(luò)安全性與溯源性問題,力求進(jìn)一步提高系統(tǒng)可用性。

安平县| 老河口市| 和田市| 阳春市| 漳浦县| 砚山县| 永德县| 西平县| 霍林郭勒市| 安义县| 东源县| 佛坪县| 南汇区| 通许县| 北海市| 香河县| 台南市| 安新县| 友谊县| 集贤县| 遂昌县| 盐城市| 于都县| 勃利县| 友谊县| 乌鲁木齐市| 萝北县| 彭州市| 霍州市| 富民县| 建阳市| 新竹县| 锡林郭勒盟| 丘北县| 鄯善县| 长岭县| 静宁县| 山西省| 宜兴市| 长子县| 望奎县|