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

?

雙機(jī)熱備系統(tǒng)中的數(shù)據(jù)同步技術(shù)研究

2013-07-25 03:19:50何娟娟李戰(zhàn)懷
微處理機(jī) 2013年2期
關(guān)鍵詞:雙機(jī)機(jī)上哈希

何娟娟,李戰(zhàn)懷,宋 慧

(西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,西安710129)

1 引言

雙機(jī)熱備系統(tǒng)中一臺主機(jī)為工作機(jī)(Master機(jī)),另一臺主機(jī)為備份機(jī)(Backup機(jī))。系統(tǒng)在正常情況下,工作機(jī)為系統(tǒng)提供支持,備份機(jī)監(jiān)視主機(jī)的運(yùn)行情況。當(dāng)工作機(jī)出現(xiàn)異常時,備份機(jī)接管服務(wù),主動轉(zhuǎn)為新的工作機(jī),繼續(xù)支持系統(tǒng)運(yùn)行。這時,故障節(jié)點(diǎn)可以離線維修,當(dāng)故障節(jié)點(diǎn)恢復(fù)正常后,重新加入到雙機(jī)熱備系統(tǒng)中運(yùn)行,變?yōu)閭浞莨?jié)點(diǎn),從而保證了系統(tǒng)不間斷運(yùn)行,實(shí)現(xiàn)永不停機(jī)的功能,對用戶來說,只經(jīng)歷了短暫的重啟過程。純軟件的雙機(jī)熱備因?yàn)闆]有共享磁盤陣列,所以通過網(wǎng)絡(luò)在兩臺主機(jī)之間進(jìn)行實(shí)時的數(shù)據(jù)復(fù)制。當(dāng)主機(jī)發(fā)生故障時,系統(tǒng)自動將服務(wù)切換到備機(jī),并在備機(jī)鏡像數(shù)據(jù)的基礎(chǔ)上,繼續(xù)為客戶端提供業(yè)務(wù)服務(wù),實(shí)現(xiàn)了不需要共享存儲的純軟件高可用系統(tǒng)。該文研究的純軟件雙機(jī)熱備數(shù)據(jù)同步技術(shù)應(yīng)用背景是基于open flow協(xié)議的FCS(flow control system)系統(tǒng)。首先簡單介紹了open flow協(xié)議的相關(guān)知識,以及FCS系統(tǒng)的雙機(jī)熱備架構(gòu)。之后重點(diǎn)對雙機(jī)之間的數(shù)據(jù)同步技術(shù)進(jìn)行了研究,提出了基于鏈路延遲的主備機(jī)文件復(fù)制方法以及基于單向哈希的更新文件檢索方法。相對傳統(tǒng)雙機(jī)熱備數(shù)據(jù)同步方法,在一定程度上提高了系統(tǒng)性能。

2 基于open flow協(xié)議的FCS系統(tǒng)

Open flow協(xié)議是由斯坦福大學(xué)的Nick McKeown教授在論文 OpenFlow:enabling innovation in campus networks中首先提出來的,是一個實(shí)現(xiàn)對全網(wǎng)交換機(jī)、路由器的數(shù)據(jù)通路進(jìn)行控制的協(xié)議。open flow標(biāo)準(zhǔn)定義了控制器與交換機(jī)之間的交互協(xié)議,以及一組交換機(jī)操作。這個控制器-交換機(jī)協(xié)議運(yùn)行在安全傳輸層協(xié)議(TLS)或無保護(hù)TCP連接之上??刂破飨蚪粨Q機(jī)發(fā)送指令,控制數(shù)據(jù)包的轉(zhuǎn)發(fā)方式,交換機(jī)會在鏈路中斷或出現(xiàn)未指定轉(zhuǎn)發(fā)指令的數(shù)據(jù)包時,發(fā)送消息通知控制器。轉(zhuǎn)發(fā)指令基于流,每個交換機(jī)都維護(hù)著許多路由表,每個表又包含多個路由記錄,每個路由記錄包含一個匹配域,定義了流、計(jì)數(shù)器和指令集。

2.1 系統(tǒng)架構(gòu)

FCS系統(tǒng)就是,在open flow協(xié)議基礎(chǔ)之上構(gòu)建一個虛擬網(wǎng)絡(luò),通過對網(wǎng)絡(luò)的集中控制,實(shí)現(xiàn)網(wǎng)絡(luò)的簡單化,虛擬化和可視化。系統(tǒng)主要由支持open flow協(xié)議的交換機(jī)和open flow控制服務(wù)器組成。將原來完全由交換機(jī)/路由器控制的報文轉(zhuǎn)發(fā)過程,轉(zhuǎn)換為由open flow交換機(jī)和open flow控制服務(wù)器來共同完成[1]。open flow交換機(jī)進(jìn)行包的轉(zhuǎn)發(fā),open flow控制服務(wù)器實(shí)現(xiàn)包傳送路徑的選擇及控制,實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)和路由控制的分離,實(shí)現(xiàn)了網(wǎng)絡(luò)配置的柔軟性、可控性。通過編程實(shí)現(xiàn)以流為單位的路徑控制、故障恢復(fù)、負(fù)載均衡以及網(wǎng)絡(luò)的虛擬化。為了使控制服務(wù)器在發(fā)生故障時,網(wǎng)絡(luò)不會停止工作,通過組建雙機(jī)集群,一臺為工作機(jī),一臺為備份機(jī)的形式為系統(tǒng)提供服務(wù)。由于基于共享磁盤陣列的雙機(jī)集群系統(tǒng),存在切換時間長的缺陷,不能滿足系統(tǒng)性能需求,故采用純軟件的雙機(jī)熱備架構(gòu),系統(tǒng)架構(gòu)如圖1所示。

圖1 FCS系統(tǒng)架構(gòu)

2.2 數(shù)據(jù)結(jié)構(gòu)

為了記錄Master機(jī)和Backup機(jī)上的文件信息,在Master節(jié)點(diǎn)和Backup節(jié)點(diǎn)上分別創(chuàng)建一個文件信息表,實(shí)時記錄本地節(jié)點(diǎn)上的文件信息。文件信息表中存放的是文件元數(shù)據(jù),包括文件ID標(biāo)識,文件元數(shù)據(jù)的更新時刻,文件數(shù)據(jù)的更新時刻,文件大小等等屬性。每次通過比較Master機(jī)和Backup機(jī)上的文件信息表,判斷出發(fā)生更新的文件,為了避免每次都把Backup機(jī)上的文件信息表通過雙機(jī)之間的鏈路傳送到Master機(jī)端,浪費(fèi)系統(tǒng)帶寬,增加系統(tǒng)開銷,這里采用如圖2所示的數(shù)據(jù)結(jié)構(gòu),在雙機(jī)每個節(jié)點(diǎn)上創(chuàng)建兩個文件信息表,一個主文件信息表,一個從文件信息表,分別代表Master機(jī)上的文件信息和Backup機(jī)上的文件信息。當(dāng)Master機(jī)出現(xiàn)故障宕機(jī)后,在Backup機(jī)上還存在有Master機(jī)上的文件信息,在一定程度上也對數(shù)據(jù)進(jìn)行了保護(hù)。

圖2 節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)

每次同步文件時,要實(shí)時對工作機(jī)和備份機(jī)上的四個文件信息表進(jìn)行更新維護(hù)。

(1)讀取Master節(jié)點(diǎn)上的文件。

(2)把Master節(jié)點(diǎn)上的文件更新情況記錄到Master節(jié)點(diǎn)上的主文件信息表中。

(3)從Master節(jié)點(diǎn)向Backup節(jié)點(diǎn)傳送數(shù)據(jù)。

(4)更新Backup節(jié)點(diǎn)上的文件信息,使其和Master節(jié)點(diǎn)上的文件信息保持同步。

(5)把Backup節(jié)點(diǎn)上的文件更新情況記錄到Backup節(jié)點(diǎn)上的從文件信息表中。

(6)把Master節(jié)點(diǎn)上的文件更新情況記錄到Backup節(jié)點(diǎn)上的主文件信息表中。

(7)把Backup節(jié)點(diǎn)上文件的更新結(jié)果傳送給Master節(jié)點(diǎn)。

(8)把Backup節(jié)點(diǎn)上文件的更新情況記錄到Master節(jié)點(diǎn)上的從文件信息表中。

3 文件備份

傳統(tǒng)雙機(jī)熱備系統(tǒng)中,采用文件更新通知和計(jì)時器間隔監(jiān)視兩種方式實(shí)時監(jiān)控工作機(jī)上的文件。文件更新通知即一旦有文件發(fā)生更新,立即觸發(fā)對該文件的備份操作;計(jì)時器間隔監(jiān)視即每間隔固定的時間,依次掃描工作機(jī)上的主文件信息表和從文件信息表,對二者進(jìn)行比較,從而判斷出發(fā)生更新的文件,然后觸發(fā)對該組文件的備份操作。由用戶輸入文件優(yōu)先級的一個閾值,當(dāng)發(fā)生更新的文件的優(yōu)先級高于該閾值時,采用文件更新通知的方式觸發(fā)文件備份;當(dāng)發(fā)生更新的文件的優(yōu)先級低于該閾值時,采用間隔監(jiān)視的方式觸發(fā)文件備份。這種傳統(tǒng)的文件備份方法沒有考慮到主備機(jī)對等節(jié)點(diǎn)間當(dāng)前傳輸鏈路的傳輸延遲,很可能在雙機(jī)之間傳輸鏈路已經(jīng)發(fā)生擁塞的情況下,又觸發(fā)對文件的備份操作,結(jié)果這部分文件又都阻塞在雙機(jī)鏈路中,影響了主備機(jī)間文件復(fù)制的連續(xù)性。

3.1 基于鏈路延遲的文件復(fù)制

提出一種基于鏈路延遲[4]的文件更新通知和間隔監(jiān)視的切換方法。在鏈路暢通的情況下,采用文件更新通知的方法觸發(fā)文件備份確保主備機(jī)數(shù)據(jù)一致性;在鏈路擁塞的情況下,采用間隔監(jiān)視的方法,不觸發(fā)對文件的傳送,只把更新文件的信息,記錄在工作機(jī)上的本地文件信息列表中。在鏈路恢復(fù)暢通的情況下,再觸發(fā)對更新文件的傳送,大大提高了系統(tǒng)效率,并且使系統(tǒng)在保持主備機(jī)數(shù)據(jù)一致性和系統(tǒng)復(fù)制性能之間趨于一個平衡點(diǎn)。提供給用戶一個接口,由用戶指定數(shù)據(jù)在工作機(jī)和備份機(jī)之間鏈路上傳輸延遲的一個閾值,根據(jù)該閾值以及文件數(shù)據(jù)傳輸?shù)膶?shí)時延遲,實(shí)現(xiàn)文件更新通知和間隔監(jiān)視的實(shí)時調(diào)整。

假設(shè)用戶輸入的鏈路延遲閾值為T,通過一個資源追蹤線程對鏈路上傳輸?shù)奈募M(jìn)行追蹤,從數(shù)據(jù)開始在鏈路上傳送到備份機(jī)接收到數(shù)據(jù)的時間差值即為數(shù)據(jù)鏈路上文件的傳輸延遲值Tdelay。

(1)當(dāng)Tdelay<T時,按照文件更新通知的方法進(jìn)行主備機(jī)間更新文件的監(jiān)視以及復(fù)制;當(dāng)Tdelay>T時,則自動切換為間隔監(jiān)視的方法進(jìn)行主備機(jī)間文件的監(jiān)視和復(fù)制。

(2)實(shí)時監(jiān)控數(shù)據(jù)鏈路上的網(wǎng)絡(luò)延遲,當(dāng)Tdelay<T,則對下一個請求改用文件更新通知方法進(jìn)行復(fù)制,否則,繼續(xù)采用間隔監(jiān)視的方法進(jìn)行文件的監(jiān)視和復(fù)制。

Q=(R1,R2,R3...)代表一系列的文件更新請求,以文件更新通知方法啟動工作機(jī)和備份機(jī)對等節(jié)點(diǎn)間的文件監(jiān)視和復(fù)制。資源追蹤線程依次記錄每個文件的傳輸延遲,記錄在一個線性隊(duì)列中,當(dāng)執(zhí)行文件更新請求Ri時,鏈路延遲Ti>T,則從Ri+1開始,對后續(xù)的連續(xù)k個文件更新請求,采用間隔監(jiān)視的方法進(jìn)行文件的監(jiān)視和復(fù)制;再以文件更新通知方法處理Ri+k+1文件的更新請求,并計(jì)算該請求文件傳輸?shù)逆溌费舆t,如果Ti+k+1<T,則對后續(xù)的文件更新請求采用文件更新通知的方法,否則繼續(xù)對Ri+k+2開始的k個文件更新請求采用間隔監(jiān)視的方法進(jìn)行監(jiān)視和復(fù)制。如此循環(huán)執(zhí)行,直到文件更新請求隊(duì)列為空[2]。

算法流程如圖3所示:

圖3 算法流程圖

輸入:Q=(R1,R2,R3...),T,k

FileUpdateNotify(R)代表采用文件更新通知的方法進(jìn)行文件的監(jiān)視和復(fù)制。

IntervalNotify(R,Q,k)代表對 Q隊(duì)列中,從文件R請求開始的k個文件更新請求采用間隔監(jiān)視的方法進(jìn)行文件的監(jiān)視和復(fù)制。

基于鏈路延遲的文件復(fù)制方法介于文件更新通知和間隔監(jiān)視之間。通過對鏈路延遲的實(shí)時監(jiān)控,在文件更新通知和間隔監(jiān)視之間切換,在盡力確保主備機(jī)數(shù)據(jù)一致性的基礎(chǔ)上,又對系統(tǒng)性能進(jìn)行一定的改善,同時在一定程度上,確保了主備機(jī)間數(shù)據(jù)復(fù)制的連續(xù)性。

基于鏈路延遲的文件復(fù)制,文件更新通知,計(jì)時器間隔監(jiān)視三種不同的觸發(fā)文件備份操作結(jié)果對比如表1所示。

表1 三種觸發(fā)文件備份算法比較

可見,基于鏈路延遲的文件復(fù)制在文件更新通知和計(jì)時器間隔監(jiān)視間取得了很好的權(quán)衡,既提高了主備機(jī)的數(shù)據(jù)一致性,又沒有大幅度降低系統(tǒng)性能。

3.2 更新文件檢索

當(dāng)采用間隔監(jiān)視進(jìn)行文件復(fù)制時,每次都對Master機(jī)上的兩個主從文件信息表從頭至尾進(jìn)行掃描比較,以檢索出發(fā)生更新的文件,這在很大程度上影響了系統(tǒng)性能,尤其是當(dāng)發(fā)生更新的文件只有所有文件中很少的一部分時,更是如此。因此提出一種基于單向哈希函數(shù)的檢索更新文件的方法。

單向哈希函數(shù)[3]是一種算法,可以將消息或者文本轉(zhuǎn)化成為一個固定長度的數(shù)字簽名,稱之為哈希值?!皢蜗颉奔粗荒芡ㄟ^哈希函數(shù)把消息或文本轉(zhuǎn)換成哈希值,卻不能從哈希值通過哈希函數(shù),還原出消息或文本。并且兩個不同的消息或文本幾乎不可能生成相同的哈希值,因此完全可以通過哈希值的相同與否,來判斷文本的相同與否。

使用單向哈希函數(shù),對Master機(jī)上的主從文件信息表分別計(jì)算哈希值H主和H從,當(dāng)H主等于H從時,說明Master機(jī)上的文件信息在該時間間隔內(nèi)未發(fā)生改變,與Backup機(jī)上保存的文件信息一致,不需要同步;當(dāng)H主不等于H從時,說明Master機(jī)上存在的文件信息發(fā)生了改變。為了進(jìn)一步精確定位發(fā)生改變的文件,把Master機(jī)上的主文件信息表和從文件信息表分別分割成兩部分,對每一部分再使用單向哈希函數(shù)計(jì)算哈希值,以此類推,直到文件信息表的每一條記錄,具體過程如圖4所示。

圖4 更新文件檢索

任意大小的數(shù)據(jù)集產(chǎn)生的數(shù)字簽名都是固定長度的,通過單向哈希函數(shù)對數(shù)據(jù)集產(chǎn)生的數(shù)字簽名的長度要明顯小于數(shù)據(jù)集的長度。對每個數(shù)據(jù)集計(jì)算數(shù)字簽名的計(jì)算量和數(shù)據(jù)集的大小成線性比。數(shù)字簽名的計(jì)算是一個迭代過程,可以通過多線程的方式進(jìn)行,因此對主文件信息表計(jì)算數(shù)字簽名和對從文件信息表計(jì)算數(shù)字簽名的過程可以同步進(jìn)行。每次當(dāng)主從文件信息表的數(shù)字簽名不同時,就對信息表對半切分。因此整個檢索更新文件的時間復(fù)雜度由原先的O(n)降低到O(logn)。另外對簽名的計(jì)算是按需進(jìn)行的,不需要一片連續(xù)的存儲空間來存儲數(shù)字簽名,因此從時空效率兩方面考慮,該方法都比較合理。

4 結(jié)束語

在基于open flow協(xié)議的FCS系統(tǒng)應(yīng)用背景下,研究了純軟件雙機(jī)熱備系統(tǒng)的數(shù)據(jù)同步方法,并且在對傳統(tǒng)文件備份時機(jī)以及檢索更新文件的不足進(jìn)行分析的基礎(chǔ)上,提出了基于鏈路延遲的文件復(fù)制以及基于單向哈希函數(shù)的更新文件檢索方法。基于鏈路延遲的文件復(fù)制,可以有效保證主備機(jī)間文件復(fù)制的連續(xù)性,并且在保證主備機(jī)數(shù)據(jù)一致性和系統(tǒng)復(fù)制性能間取得權(quán)衡?;趩蜗蚬:瘮?shù)的更新文件檢索,把檢索更新文件的時間復(fù)雜度從O(n)降到O(logn),從而節(jié)省了很多時間,在很大程度上提高了系統(tǒng)效率。通過以上兩點(diǎn)改進(jìn),能夠高效快速的實(shí)現(xiàn)雙機(jī)熱備系統(tǒng)中對等節(jié)點(diǎn)上數(shù)據(jù)的同步。

[1] 王麗君,劉永強(qiáng),張健.基于OpenFlow的未來互聯(lián)網(wǎng)試驗(yàn)技術(shù)研究[J].電信網(wǎng)技術(shù),2011(6):2-3.

[2] 王彥龍.海量數(shù)據(jù)保護(hù)與容災(zāi)關(guān)鍵技術(shù)研究[D].西安:西北工業(yè)大學(xué),2008:79-82.

[3] Victoria V.Livschitz,West Bloomfield.One-way hash function for distributed data synchronization:United States,US6470329B1[P].2002-10-22.http://www.google.com.hk/patents?hl=zh-CN&lr= &vid=USPAT6470329&id=DbcLAAAAEBAJ&oi=fnd&dq=One-way+hash+function+for+distributed+data+synchronization&printsec=abstract#v=onepage&q=One- way% 20hash% 20function% 20for%20distributed%20data%20synchronization&f=false.

[4] Dale Burr,Robert Bruce Nicholson.Suspension of an asynchronous remote copy pair system having a primary controller and a remote controller:United state,US7890715B2[P].2011-2-15.http://www.google.com.hk/patents?hl=zh-CN&lr= &vid=USPAT7890715&id=dBcdAQAAEBAJ&oi=fnd&dq=Suspension+of+an+asynchronous+remote+copy+pair+system+having+a+primary+controller+and+a+remote+controller&printsec=abstract#v=onepage&q=Suspension%20of%20an%20asynchronous%20remote%20copy% 20pair% 20system% 20having% 20a%20primary%20controller%20and%20a%20remote%20controller&f=false.

猜你喜歡
雙機(jī)機(jī)上哈希
雙機(jī)、雙槳軸系下水前的安裝工藝
雙機(jī)牽引ZDJ9道岔不同步問題的處理
機(jī)上上網(wǎng),開啟乘機(jī)新時代
空中之家(2018年1期)2018-01-31 01:50:33
基于PLC的變頻器控制系統(tǒng)在甩干機(jī)上的研究
電子測試(2017年15期)2017-12-18 07:19:29
Loader軸在雙機(jī)桁架機(jī)械手上的應(yīng)用
基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
基于維度分解的哈希多維快速流分類算法
基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
一種基于Bigram二級哈希的中文索引結(jié)構(gòu)
藍(lán)天雙雄——?dú)灠薎I雙機(jī)編隊(duì)
航空知識(2001年5期)2001-06-12 15:08:38
鄂托克前旗| 平邑县| 康平县| 贵港市| 马鞍山市| 广水市| 板桥市| 湘潭县| 深泽县| 日照市| 钟山县| 达州市| 焉耆| 庄浪县| 庐江县| 泊头市| 山西省| 延边| 津南区| 晋宁县| 阳谷县| 洪洞县| 宁河县| 衡阳县| 乌拉特中旗| 广昌县| 肥乡县| 永寿县| 蒙城县| 甘肃省| 德化县| 锦屏县| 西丰县| 鄂州市| 文山县| 台北市| 烟台市| 潍坊市| 邢台市| 元阳县| 湖南省|