999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種分布式軟件系統(tǒng)可靠性加強(qiáng)模塊設(shè)計(jì)

2019-09-19 11:34:52孫曉冬
電腦知識與技術(shù) 2019年20期

孫曉冬

摘要:針對分布式的軟件系統(tǒng),設(shè)計(jì)了一種可靠性加強(qiáng)模塊。該模塊監(jiān)控分布式軟件各個處理單元的運(yùn)行狀態(tài),并記錄關(guān)鍵內(nèi)存數(shù)據(jù)和I/O數(shù)據(jù),當(dāng)處理單元失效時(shí)重啟該處理單元,載入關(guān)鍵內(nèi)存數(shù)據(jù)和I/O數(shù)據(jù)以恢復(fù)重啟前的狀態(tài),達(dá)到提高分布式軟件系統(tǒng)的可靠性的目的。

關(guān)鍵詞:分布式軟件系統(tǒng);軟件可靠性;故障恢復(fù)

中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2019)20-0067-03

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

1 背景

分布式軟件系統(tǒng)(Distributed Software Systems)分布式系統(tǒng)就是由多個相互連接的處理資源組成的軟件系統(tǒng),合作執(zhí)行一個共同的任務(wù)[1-2]。依靠分布式軟件系統(tǒng),我們可以把數(shù)據(jù)放到最合理的地方去處理[3]。而分布式軟件系統(tǒng)常見的一個問題就是如果一部分處理單元因各種原因崩潰,將導(dǎo)致整體性能下降甚至失效。軟件在運(yùn)行中一旦失效有可能導(dǎo)致嚴(yán)重的后果,有時(shí)甚至是致命的[4]。為提升分布式軟件系統(tǒng)的可靠性,需要有模塊專門監(jiān)控各處理單元的運(yùn)行狀態(tài),記錄關(guān)鍵內(nèi)存數(shù)據(jù)和I/O數(shù)據(jù),當(dāng)發(fā)生處理單元意外崩潰時(shí),及時(shí)重啟處理單元,并將記錄的關(guān)鍵內(nèi)存數(shù)據(jù)和I/O數(shù)據(jù)輸入到重啟后的處理單元中[5],達(dá)到提高軟件可靠性的目的。

2 軟件架構(gòu)

可靠性加強(qiáng)模塊REM(Reliability Enhanced Module/Middleware)是增加分布式軟件系統(tǒng)可靠性的一個軟件模塊,以達(dá)到降低軟件失效率,保障分布式軟件系統(tǒng)整體正常運(yùn)行,提高軟件開發(fā)、維護(hù)效率等目的。REM運(yùn)行于操作系統(tǒng)OS與軟件配置項(xiàng)CSCI(Computer Software Configuration Item)之間,與通信中間件處于同一層級,參見圖1。本文中的通信中間件使用的是數(shù)據(jù)分發(fā)服務(wù)DDS(Data Distribution Service),也可替換成其他支持分布式軟件系統(tǒng)的通信中間件。REM軟件模塊的功能主要包括主守護(hù)模塊、狀態(tài)監(jiān)控/看門狗、關(guān)鍵內(nèi)存區(qū)域監(jiān)控、I/O數(shù)據(jù)監(jiān)控、日志記錄和統(tǒng)計(jì)等。

REM的部署方案如圖 2所示,REM在部署上分為主守護(hù)模塊(以下稱為主REM)與分布式模塊(以下稱為分布式REM)。主REM單獨(dú)占據(jù)一個運(yùn)算節(jié)點(diǎn),在每個CSCI的運(yùn)行實(shí)例中,均有一個分布式REM,運(yùn)行于CSCI與操作系統(tǒng)之間。

3 軟件模塊設(shè)計(jì)

3.1 主守護(hù)模塊

負(fù)責(zé)啟動守護(hù)進(jìn)程,讀取全局配置文件信息并廣播到其他分布式REM上,接收CSCI啟動、停止、重啟、編譯等命令并廣播到分布式REM,接收分布式REM發(fā)送的配置項(xiàng)運(yùn)行狀態(tài)信息。主守護(hù)模塊只駐留在主節(jié)點(diǎn)上,包括為主守護(hù)進(jìn)程和配置項(xiàng)狀態(tài)控制兩個子模塊。

1)主守護(hù)進(jìn)程

在操作系統(tǒng)啟動后自動運(yùn)行,加載全局配置文件,等待其他分布式REM的守護(hù)進(jìn)程啟動后向后者廣播配置信息,至此初始化完成,進(jìn)入命令輪詢狀態(tài),等待全局控制命令的輸入。全局控制命令由用戶通過命令發(fā)送的程序以網(wǎng)絡(luò)報(bào)文方式將其發(fā)送至主守護(hù)進(jìn)程。

全局配置文件包括:

2)配置項(xiàng)狀態(tài)控制子模塊

負(fù)責(zé)和分布式REM進(jìn)行交互,廣播/分發(fā)全局控制命令,收集分布式REM的運(yùn)行狀態(tài)報(bào)告等。

3.2 狀態(tài)監(jiān)控/看門狗模塊

負(fù)責(zé)監(jiān)控配置項(xiàng)程序的狀態(tài),及時(shí)捕獲異常并通知守護(hù)模塊恢復(fù)配置項(xiàng)程序至異常前的運(yùn)行狀態(tài),接收并響應(yīng)全局控制命令等。該模塊屬于分布式REM。

1)守護(hù)線程

系統(tǒng)開機(jī)時(shí)啟動的守護(hù)線程,負(fù)責(zé)接收全局控制命令并產(chǎn)生相應(yīng)的動作,同時(shí)從配置項(xiàng)狀態(tài)監(jiān)視和看門狗子模塊接收其所管轄的配置項(xiàng)的運(yùn)行狀態(tài),并上報(bào)給主守護(hù)模塊和日志記錄模塊,同時(shí)守護(hù)線程還需要根據(jù)配置信息決定對出現(xiàn)異常的配置項(xiàng)如何處置(重新啟動,重置或不動作等)。

2)配置項(xiàng)狀態(tài)監(jiān)視

配置項(xiàng)狀態(tài)監(jiān)視子模塊設(shè)計(jì)為由REM創(chuàng)建的一個進(jìn)程,該進(jìn)程負(fù)責(zé)創(chuàng)建一個子進(jìn)程并在子進(jìn)程中啟動各CSCI,并通過waitpid等待子進(jìn)程的運(yùn)行結(jié)束或異常,捕獲子進(jìn)程的返回碼,將異常的狀態(tài)報(bào)告上報(bào)給守護(hù)線程和數(shù)據(jù)統(tǒng)計(jì)模塊。

3)看門狗

看門狗子模塊的設(shè)計(jì)原理為:啟動一個進(jìn)程和一個定時(shí)器,進(jìn)程初始化時(shí)睡眠(可采用獲取信號量的方式睡眠),定時(shí)器一旦到期即喚醒該進(jìn)程(釋放信號量),此時(shí)認(rèn)為看門狗餓死,即軟件異常;另有一進(jìn)程負(fù)責(zé)接收配置項(xiàng)發(fā)來的狀態(tài)報(bào)告,接收到報(bào)告后重置定時(shí)器,即執(zhí)行喂狗動作,定時(shí)器重新計(jì)數(shù)。

3.3 關(guān)鍵內(nèi)存區(qū)域監(jiān)控模塊

該模塊負(fù)責(zé)維護(hù)配置項(xiàng)程序的關(guān)鍵內(nèi)存區(qū)域,響應(yīng)配置項(xiàng)的關(guān)鍵內(nèi)存申請請求,并在重新啟動配置項(xiàng)程序后將保存的關(guān)鍵數(shù)據(jù)加載至其內(nèi)存地址空間等。需要注意的是,該模塊除了流程圖所示的業(yè)務(wù)邏輯外,還應(yīng)當(dāng)提供給配置項(xiàng)若干接口,包括:

l 注冊關(guān)鍵內(nèi)存區(qū)域

配置項(xiàng)通過此接口來注冊所有需要用到的空間,該接口需要配置項(xiàng)程序員嚴(yán)格考慮好數(shù)據(jù)的相關(guān)性,如果需要恢復(fù)一個完整的數(shù)據(jù)結(jié)構(gòu),需要該數(shù)據(jù)結(jié)構(gòu)實(shí)例化的結(jié)構(gòu)池和其相關(guān)的所有數(shù)據(jù)結(jié)構(gòu)。

l 申請關(guān)鍵內(nèi)存區(qū)域

本接口輸入?yún)?shù)為內(nèi)存ID號和內(nèi)存大小,則根據(jù)內(nèi)存大小參數(shù)開辟出共享內(nèi)存空間,將空間首地址返回給調(diào)用者,記錄該ID下已分配了內(nèi)存。

l 釋放關(guān)鍵內(nèi)存區(qū)域

釋放制定ID的內(nèi)存空間,記錄該ID下的內(nèi)存已被釋放。

3.4 I/O數(shù)據(jù)監(jiān)控模塊

按時(shí)間序記錄近一段時(shí)間內(nèi)系統(tǒng)定制的I/O數(shù)據(jù),如狀態(tài)修改命令、操作等,在配置項(xiàng)重啟后將這些命令的恢復(fù)給配置項(xiàng)。

該模塊分為I/O數(shù)據(jù)注冊、I/O數(shù)據(jù)監(jiān)控和I/O數(shù)據(jù)恢復(fù)三個子模塊。

1)I/O數(shù)據(jù)注冊

配置項(xiàng)在啟動時(shí)向本模塊發(fā)送的注冊請求,注冊成功后,本模塊則會對已注冊的I/O數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和記錄,而對未注冊的數(shù)據(jù)不進(jìn)行該處理。

注冊的數(shù)據(jù)類型包括兩種:序列型和唯一型。序列型數(shù)據(jù)表示該數(shù)據(jù)的所有歷史均需要按照時(shí)間序保存下來,在執(zhí)行配置項(xiàng)的I/O數(shù)據(jù)恢復(fù)時(shí)按照時(shí)間序?qū)⑦@些數(shù)據(jù)序貫到配置項(xiàng);唯一型數(shù)據(jù)則表示該數(shù)據(jù)只需要保存最新一次的記錄即可,在執(zhí)行配置項(xiàng)的I/O數(shù)據(jù)恢復(fù)時(shí)將這個最新記錄恢復(fù)給配置項(xiàng)。

2)I/O數(shù)據(jù)監(jiān)控

該子模塊位于配置項(xiàng)的DDS中間層,監(jiān)控I/O數(shù)據(jù)的流入流出,包括:

l DDS數(shù)據(jù)接收

從DDS接收到報(bào)文,如果該報(bào)文為已注冊報(bào)文,則錄入統(tǒng)計(jì)信息,將統(tǒng)計(jì)信息發(fā)送給統(tǒng)計(jì)模塊,按照報(bào)文的注冊類型(序列型、唯一型)保存下來,最后把該數(shù)據(jù)返回給配置項(xiàng)。

l DDS數(shù)據(jù)發(fā)送

配置項(xiàng)需要發(fā)送的網(wǎng)絡(luò)報(bào)文,先通過本子模塊處理,如果該報(bào)文為已注冊報(bào)文,則錄入統(tǒng)計(jì)信息,將統(tǒng)計(jì)信息發(fā)送給統(tǒng)計(jì)模塊,按照報(bào)文的注冊類型(序列型、唯一型)保存下來,最終通過DDS的數(shù)據(jù)發(fā)送接口將數(shù)據(jù)發(fā)送給目的地。

需要注意的是,所有已注冊的I/O數(shù)據(jù)直接都需要保存時(shí)間序列的關(guān)系,在I/O數(shù)據(jù)恢復(fù)時(shí),不同的I/O數(shù)據(jù)的恢復(fù)順序是按照時(shí)間序的。

3)I/O數(shù)據(jù)恢復(fù)

在接收到配置項(xiàng)的I/O數(shù)據(jù)恢復(fù)請求后,按照時(shí)間序?qū)⑺杏涗浀腎/O數(shù)據(jù)通過DDS報(bào)文方式發(fā)送至配置項(xiàng)重置命令。

本模塊也需要向配置項(xiàng)提供接口,包括:

l I/O數(shù)據(jù)注冊接口

配置項(xiàng)在啟動時(shí)對需要關(guān)注的I/O數(shù)據(jù)進(jìn)行注冊;

l I/O數(shù)據(jù)發(fā)送和接收

配置項(xiàng)通過這些接口發(fā)送和接收網(wǎng)絡(luò)I/O數(shù)據(jù),I/O數(shù)據(jù)監(jiān)控子模塊根據(jù)注冊信息處理I/O數(shù)據(jù),并最終通過DDS的接口將數(shù)據(jù)接收或發(fā)送。

l I/O數(shù)據(jù)恢復(fù)請求

配置項(xiàng)在執(zhí)行路徑上需要顯式的調(diào)用一次I/O數(shù)據(jù)恢復(fù)請求接口來觸發(fā)恢復(fù)動作。配置項(xiàng)設(shè)計(jì)人員在設(shè)計(jì)時(shí)應(yīng)當(dāng)考慮調(diào)用此接口的時(shí)機(jī),即要保證在此處的I/O數(shù)據(jù)恢復(fù)是有效且安全的。

3.5 日志記錄模塊

該模塊負(fù)責(zé)記錄各配置項(xiàng)程序的運(yùn)行情況,以及各配置項(xiàng)注冊的I/O數(shù)據(jù)或軟件內(nèi)部數(shù)據(jù)等。分為記錄信息注冊和數(shù)據(jù)記錄兩個子模塊。

1)記錄信息注冊

接收從主守護(hù)線程發(fā)送來的全局配置信息的記錄信息等級,本子模塊根據(jù)記錄信息等級決定數(shù)據(jù)記錄子模塊在接收到某數(shù)據(jù)時(shí)是否記錄。

2)數(shù)據(jù)記錄

接收各分布式REM守護(hù)線程的運(yùn)行狀態(tài)報(bào)告,各配置項(xiàng)的I/O數(shù)據(jù)、軟件內(nèi)部數(shù)據(jù)等予以記錄。

3.6 統(tǒng)計(jì)模塊

該模塊用來統(tǒng)計(jì)出各配置項(xiàng)I/O、負(fù)載等情況,供操作或維護(hù)人員參考分析用。模塊接收分布式REM的狀態(tài)監(jiān)控模塊和I/O數(shù)據(jù)監(jiān)控模塊發(fā)來的統(tǒng)計(jì)信息并按照時(shí)間順序保存到本地文件中。

通過全局配置文件指定統(tǒng)計(jì)周期,在每個周期內(nèi)統(tǒng)計(jì):

1)CPU使用率,內(nèi)存使用率;

2)I/O吞吐率,包括網(wǎng)絡(luò)發(fā)送多少次,共多少字節(jié),接收多少次,共多少字節(jié);文件讀取多少次,共多少字節(jié),寫入多少次,共多少字節(jié);

3)故障周期,故障次數(shù),故障間隔時(shí)間。

4 結(jié)束語

本文論述了一種針對分布式軟件系統(tǒng)設(shè)計(jì)的可靠性加強(qiáng)模塊,該模塊分為主守護(hù)模塊與分布式模塊兩個部分。主守護(hù)模塊單獨(dú)運(yùn)行于一個運(yùn)算節(jié)點(diǎn)上,分布式模塊運(yùn)行于分布式軟件系統(tǒng)的各個軟件配置項(xiàng)之中。可靠性加強(qiáng)模塊監(jiān)視各軟件配置項(xiàng)的運(yùn)行狀態(tài),同時(shí)記錄各配置項(xiàng)的關(guān)鍵內(nèi)存數(shù)據(jù)和I/O數(shù)據(jù)。在配置項(xiàng)因故退出時(shí)自動重啟配置項(xiàng)并恢復(fù)成退出前的狀態(tài),為提高分布式軟件系統(tǒng)的可靠性提供了一種可行的方法。

參考文獻(xiàn):

[1] Gheith A Abandah, Edward S Davidson. Characterizing Distributed Shared Memory Performance:A Case Study of the Convex SPP1000[J]. IEEE Trans on Parallel and Distributed Systems, 1998, 9(2): 206-216.

[2] 朱海濱, 蔡開裕, 樊愛華, 等. 分布式系統(tǒng)原理與設(shè)計(jì)[M].長沙: 國防科技大學(xué)出版社, 1997.

[3] Fred Barell, Richard Blair, et al. VB.NET高級編程[M]. 北京: 清華大學(xué)出版社, 2002.

[4] 李勇, 黃志球, 王勇, 等. 數(shù)據(jù)驅(qū)動的軟件缺陷預(yù)測研究綜述[J].電子學(xué)報(bào), 2017, 45(4).

[5] 戈應(yīng)安, 劉松強(qiáng), 王硯方. 采用分布式實(shí)時(shí)操作系統(tǒng)的容錯系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].核電子學(xué)與探測技術(shù), 1999, 19(5).

[6] 徐光俠, 陳蜀宇, 常光輝, 等. 分布式實(shí)時(shí)系統(tǒng)的軟件故障注入[J].重慶大學(xué)學(xué)報(bào), 2010, 33(2).

【通聯(lián)編輯:謝媛媛】

主站蜘蛛池模板: 色135综合网| 在线播放国产一区| 国产精品所毛片视频| 99re视频在线| 高清视频一区| 99热这里只有精品免费| 成人综合久久综合| 国产美女一级毛片| 999精品视频在线| 亚洲天堂视频在线观看免费| 国产一区自拍视频| 香蕉综合在线视频91| 素人激情视频福利| 性视频一区| 视频二区欧美| 国产亚洲精| 久久精品国产一区二区小说| 99国产在线视频| 成人福利在线观看| 国产一级精品毛片基地| 日韩在线网址| 自拍偷拍欧美日韩| 丁香六月激情婷婷| 色婷婷亚洲十月十月色天| 国产激情无码一区二区免费 | 麻豆精品在线视频| 91精品啪在线观看国产60岁| 久久国产香蕉| 久久伊人色| 在线看片免费人成视久网下载| 国产va免费精品| 亚洲成人在线免费观看| A级毛片无码久久精品免费| 日韩精品免费一线在线观看| 亚洲精品色AV无码看| 欧美三级不卡在线观看视频| 2020精品极品国产色在线观看| 中文字幕66页| 亚洲第一视频网| 国产区精品高清在线观看| 波多野结衣爽到高潮漏水大喷| 99草精品视频| 欧美午夜理伦三级在线观看| 欧美a在线视频| 国产在线小视频| 呦视频在线一区二区三区| 欧美中文字幕无线码视频| 91在线一9|永久视频在线| 无码精品一区二区久久久| 一级毛片基地| 欧美精品成人一区二区视频一| 大陆精大陆国产国语精品1024| 亚洲中文字幕无码mv| a级毛片毛片免费观看久潮| 国产成人8x视频一区二区| 国产女人在线| 国产精品综合色区在线观看| 在线免费a视频| 国产激情在线视频| 午夜色综合| 欧美一区二区三区国产精品 | 天天综合网在线| 国产99视频精品免费视频7| 最新国产网站| 免费jizz在线播放| 久久综合九九亚洲一区| 午夜国产大片免费观看| 国产91色| 国模极品一区二区三区| 国产在线精彩视频论坛| www.亚洲一区二区三区| 凹凸国产分类在线观看| 久久国产精品娇妻素人| a级毛片在线免费| v天堂中文在线| 国产精品55夜色66夜色| 91国语视频| 国产天天射| 九九线精品视频在线观看| 欧美人人干| 99热这里只有精品免费国产| 中文国产成人精品久久一|