汪海枝,李 磊
(西安工業(yè)大學(xué),陜西 西安 710021)
計算機技術(shù)與互聯(lián)網(wǎng)技術(shù)水平不斷攀升,服務(wù)器[1]在軍事、醫(yī)療以及金融等眾多極具重要性的行業(yè)領(lǐng)域中占據(jù)著舉足輕重的地位,廣泛應(yīng)用于一系列關(guān)鍵業(yè)務(wù)的處理。在網(wǎng)絡(luò)環(huán)境中運行的服務(wù)器肩負(fù)著處理系統(tǒng)后臺任務(wù)的重大職責(zé),是保障各應(yīng)用程序正常工作的有力支撐,一旦服務(wù)器發(fā)生故障[2],就會產(chǎn)生系統(tǒng)數(shù)據(jù)丟失或異常停機等風(fēng)險性較高的安全隱患問題,這不僅威脅著信息系統(tǒng)的自身安全,而且對服務(wù)器的整體使用對象都存在較大威脅。因此,服務(wù)器故障的相關(guān)研究逐漸演變成了有關(guān)科研人員的熱點課題。
服務(wù)器故障檢測水平作為系統(tǒng)總體是否可用的主要決定因素之一,是當(dāng)前學(xué)者的主要探索方向。例如:唐琳等人[3]以視頻圖像識別技術(shù)為基礎(chǔ),創(chuàng)建故障特征庫,采集故障視頻,經(jīng)逐幀分析、對比后,由輔助診斷系統(tǒng)給出服務(wù)器故障的判定結(jié)論;王紅霞[4]則面向艦船云計算系統(tǒng)的服務(wù)器故障,根據(jù)采集到的故障識別數(shù)據(jù),利用數(shù)據(jù)挖掘技術(shù)展開分析、建模,構(gòu)建出分類器模型。
上述方法能夠準(zhǔn)確檢測出服務(wù)器故障,為后續(xù)故障處理奠定基礎(chǔ),因此,本文展開進(jìn)一步探討,將服務(wù)器的固定型故障修復(fù)作為研究課題,基于構(gòu)建的虛擬化組態(tài)軟件,提出一種冗余故障自修復(fù)方法。設(shè)計服務(wù)器冗余故障識別算法,為自修復(fù)提供參考依據(jù);組態(tài)軟件通過節(jié)省設(shè)備更替與系統(tǒng)更新步驟,使修復(fù)方法更高效、更便捷;利用基于周期循環(huán)碼的修復(fù)編碼規(guī)則,有助于準(zhǔn)確地自修復(fù)各類冗余故障發(fā)生節(jié)點。
將邏輯值賦予指定節(jié)點,經(jīng)過大量蘊含操作,利用學(xué)習(xí)法則學(xué)習(xí)所得的蘊含結(jié)果,取得多個全局邏輯值。
假設(shè)節(jié)點M的邏輯賦值是w,蘊含操作之后得到的蘊含結(jié)果是[N,v],其中,v指代的是賦予節(jié)點N的邏輯值,則采用下列推導(dǎo)式界定蘊含操作
[M,w]?[N,v]
(1)


1)當(dāng)故障集的冗余故障具有不可控性時:若推導(dǎo)式[g,1]?[k,?]成立,則有S0∪=k/?。其中,節(jié)點k的特定邏輯值是?;
2)當(dāng)故障集的冗余故障具有不可觀測性時,識別步驟如下所述:
①前向傳播并標(biāo)記(g,?),得到故障(k,?),其中,節(jié)點k歸屬于服務(wù)器邏輯門g的輸入mi;

③基于各無扇出區(qū)域的邏輯門g,若其為非扇出源的重匯聚門,則前向傳播并標(biāo)記(g,?);反之,則后向傳播并標(biāo)記(g,?);

根據(jù)服務(wù)器的屬性與特點,組態(tài)軟件通常由組態(tài)與運行兩種程序環(huán)境組成,如圖1所示。組態(tài)環(huán)境的組成部分為人機界面、通信連接、實時數(shù)據(jù)庫等多種組態(tài)程序;而運行環(huán)境則由與組態(tài)程序一一對應(yīng)的人機界面、通信連接等多種運行程序架構(gòu)而成。

圖1 組態(tài)軟件的軟件環(huán)境框架示意圖
虛擬化組態(tài)軟件功能相對獨立,其框架結(jié)構(gòu)可看作為軟件集成平臺,構(gòu)成組件如圖2所示。

圖2 組態(tài)軟件結(jié)構(gòu)示意圖
各組件的具體作用描述如下:
1)即時性數(shù)據(jù)庫模塊:作為虛擬化組態(tài)軟件的核心部分,該模塊質(zhì)量對整個組態(tài)軟件效用具有直接影響。此數(shù)據(jù)庫中涵蓋的是經(jīng)由數(shù)據(jù)庫技術(shù)[5]管理的全部數(shù)據(jù)對象集合。模塊功能是存儲服務(wù)器工作時生成的動態(tài)數(shù)據(jù)與支持服務(wù)器正常運行的內(nèi)部信息。
2)輸入輸出設(shè)備驅(qū)動模塊:作為數(shù)據(jù)塊模塊與設(shè)備模塊的連接層,該模塊的作用是為整個服務(wù)器提供設(shè)備信息與即時訪問設(shè)備協(xié)議封裝,將抽象出的設(shè)備轉(zhuǎn)換成一個具有可配置性的服務(wù)器單元,減小其與組態(tài)軟件之間的相關(guān)性,賦予該單元數(shù)據(jù)交換服務(wù)能力。
3)程序管理模塊:該模塊相當(dāng)于一個專用管理工具,主要用于提供備份、建立新程序、搜索以及解壓縮等功能,簡化局部組態(tài)成果的使用任務(wù)。
4)通信與第三方應(yīng)用接口模塊:該模塊負(fù)責(zé)實現(xiàn)組態(tài)軟件與第三方應(yīng)用的遠(yuǎn)程數(shù)據(jù)訪問與交互。
5)圖形組態(tài)模塊:利用此模塊劃分現(xiàn)場過程的圖形畫面為具有不同外觀屬性的線、文本以及填充圖形三個目標(biāo),其功能包括預(yù)警通知、過往數(shù)據(jù)查詢等,通過組態(tài)即可完成動畫連接目標(biāo)的數(shù)據(jù)源指定。
以構(gòu)建的組態(tài)軟件為基礎(chǔ),假設(shè)均分初始文件μ為t組含有κ個數(shù)據(jù)塊的聚類,利用(?3n/2」,κ)極大距離可分碼[6],編碼處理各聚類中的數(shù)據(jù)塊,取得數(shù)量為?3n/2」的編碼數(shù)據(jù)塊集合{d1,d2,…,d?3n/2」},復(fù)制各編碼數(shù)據(jù)塊后,通過不斷迭代的形式將其保存至部分修復(fù)聚類中的n個節(jié)點里,即{V1,V2,…,Vn},因此,各節(jié)點內(nèi)含有三套編碼數(shù)據(jù)塊,且鄰近兩節(jié)點之間的相同編碼數(shù)據(jù)塊數(shù)量不小于1,如圖3所示,該周期循環(huán)碼編碼結(jié)構(gòu)的矩陣分布形式如下所示。

(2)
其中,矩陣行表示修復(fù)聚類的n個節(jié)點,矩陣列表示各聚類中的?3n/2」個編碼數(shù)據(jù)塊,矩陣元素0和1分別表示當(dāng)前節(jié)點上是否儲存了對應(yīng)編碼數(shù)據(jù)塊,0表示未存儲,1表示存儲。

圖3 周期循環(huán)碼編碼結(jié)構(gòu)示意圖
若修復(fù)聚類中任意節(jié)點發(fā)生冗余故障,則根據(jù)上列矩陣分布內(nèi)編碼數(shù)據(jù)塊相同的鄰近節(jié)點,即可迅速重構(gòu)出服務(wù)器冗余故障節(jié)點的數(shù)據(jù)結(jié)構(gòu),在保證極大距離可分碼屬性的同時,為自修復(fù)編碼構(gòu)建奠定修復(fù)特性基礎(chǔ)。
為實現(xiàn)冗余故障節(jié)點的準(zhǔn)確自修復(fù),需在修復(fù)聚類中融入周期循環(huán)碼。先均分節(jié)點,令t組修復(fù)聚類中各有n個節(jié)點,再利用周期循環(huán)碼保存編碼數(shù)據(jù)塊,儲存方式按照節(jié)點數(shù)量n的奇偶取值,分為兩種狀況:當(dāng)節(jié)點數(shù)量n=2x,x為任意正整數(shù)時,依據(jù)循環(huán)碼結(jié)構(gòu)在各節(jié)點上儲存三套編碼數(shù)據(jù)塊,并在鄰近節(jié)點內(nèi)進(jìn)行一次復(fù)制;當(dāng)節(jié)點數(shù)量n=2x-1時,通過兩副本復(fù)制模式[7]在各節(jié)點上保存編碼數(shù)據(jù)塊,關(guān)于最后的編碼數(shù)據(jù)塊則進(jìn)行三次復(fù)制。
根據(jù)圖4所示的最小編碼結(jié)構(gòu),設(shè)定各修復(fù)聚類中含有4個節(jié)點,且4無法被t整除,則經(jīng)分組后,得到nmod 4=1,2,3。
若nmod 4=1,則前t-1個修復(fù)聚類內(nèi)的節(jié)點數(shù)量是4,最后的聚類節(jié)點數(shù)是5;若nmod 4=2,則前t-2個修復(fù)聚類內(nèi)的節(jié)點數(shù)量是4,最后兩個聚類節(jié)點數(shù)是5;若nmod 4=3,則前t-3個修復(fù)聚類內(nèi)的節(jié)點數(shù)量是4,最后三個聚類節(jié)點數(shù)是5;以此類推,直到各聚類中的節(jié)點編碼數(shù)據(jù)塊存儲完全。
當(dāng)服務(wù)器的節(jié)點發(fā)生冗余故障時,在各修復(fù)聚類中采取周期循環(huán)碼完成故障自修復(fù)。服務(wù)器節(jié)點相互獨立,修復(fù)聚類內(nèi)多個鄰近節(jié)點同步發(fā)生冗余故障概率極小,故基于自修復(fù)編碼規(guī)則,根據(jù)修復(fù)聚類中發(fā)生冗余故障時的不同節(jié)點情況,制定出以下自修復(fù)流程:
1)單一節(jié)點冗余故障自修復(fù):根據(jù)圖4所示,若服務(wù)器節(jié)點V2發(fā)生冗余故障,則利用鄰近節(jié)點V1、V3重構(gòu)故障節(jié)點V2的編碼數(shù)據(jù)塊d2、d3以及dn+2,將在鄰近節(jié)點上采集到的編碼數(shù)據(jù)塊傳輸至故障節(jié)點V2后,冗余故障即可實現(xiàn)自動修復(fù)。

圖4 單一節(jié)點冗余故障自修復(fù)示意圖
2)一對不鄰近節(jié)點冗余故障自修復(fù):根據(jù)圖5所示,若服務(wù)器節(jié)點V2、V4發(fā)生冗余故障,則利用鄰近節(jié)點V1、V3、V5重構(gòu)故障節(jié)點V2、V4的編碼數(shù)據(jù)塊,在故障節(jié)點V2的鄰近節(jié)點V1與V3上采集編碼數(shù)據(jù)塊,將所得的編碼數(shù)據(jù)塊傳輸至故障節(jié)點V2后,自動修復(fù)冗余故障;同理,實現(xiàn)節(jié)點V4的冗余故障自修復(fù)。

圖5 一對不鄰近節(jié)點冗余故障自修復(fù)示意圖
基于虛擬化組態(tài)軟件架構(gòu)某服務(wù)器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),設(shè)置結(jié)構(gòu)中的節(jié)點數(shù)量為30,分布形式呈隨機性,如圖6所示。

圖6 某服務(wù)器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中節(jié)點分布示意圖
其中,8個方形指代冗余故障節(jié)點,22個圓形指代正常存活節(jié)點。冗余故障節(jié)點的剩余能量與信任度參數(shù)如表1所示。

表1 冗余故障節(jié)點相關(guān)參數(shù)信息
為驗證方法的優(yōu)越性與可行性,采用本文方法自動修復(fù)目標(biāo)服務(wù)器中含有的冗余故障,并分別從冗余故障自修復(fù)移動開銷[8]、服務(wù)器生存周期以及修復(fù)時長三個角度展開分析,前兩個評估指標(biāo)的實驗結(jié)果如圖7所示。

圖7 移動開銷與生存周期走勢圖
其中服務(wù)器生存周期使用剩余總能量多少來判定,若剩余總能量多則表示服務(wù)器生命周期長;關(guān)于修復(fù)時長模擬實驗環(huán)節(jié),則對8個冗余故障節(jié)點共進(jìn)行三組自修復(fù)仿真實驗,每組修復(fù)時長結(jié)果如表2所示。

表2 自修復(fù)時長實驗數(shù)據(jù)(單位:s)
結(jié)合以上圖7和表2顯示的實驗結(jié)果可以看出,該方法的8個冗余故障的移動開銷保持在500-600bit區(qū)間,沒有出現(xiàn)較大波動,且服務(wù)器隨著故障的修復(fù),剩余能量越來越大,生存周期越長,指標(biāo)均具有較為顯著的優(yōu)越性,數(shù)據(jù)走勢始終處于理想范圍中;對于自修復(fù)時長來說,不論是最后一列對應(yīng)的各故障節(jié)點自修復(fù)時長均值,還是最后一行對應(yīng)的每組實驗自修復(fù)時長均值,都能夠充分說明本文方法在修復(fù)時效性方面的明顯優(yōu)勢。這都得益于本文方法構(gòu)建的服務(wù)器冗余故障識別算法與虛擬化組態(tài)軟件,不僅準(zhǔn)確識別出因不同賦值而造成的故障集,而且使人機交互、圖形組態(tài)等作用得到了極大發(fā)揮,簡化了局部組態(tài)成果的使用任務(wù);根據(jù)節(jié)點數(shù)量的奇偶取值,采取不同策略在修復(fù)聚類中融入設(shè)計的周期循環(huán)碼,直到各聚類中的節(jié)點編碼數(shù)據(jù)塊存儲完全;按照修復(fù)聚類中單一節(jié)點與一對不鄰近節(jié)點兩種冗余故障情況,通過傳輸編碼數(shù)據(jù)塊給故障節(jié)點實現(xiàn)自修復(fù)。
對于以往科技水平來說,冗余故障的檢測與識別具有極大挑戰(zhàn)性,如今,該類型故障的難點與關(guān)鍵點已逐漸從檢測、識別階段轉(zhuǎn)變?yōu)楹罄m(xù)的修復(fù)階段。在物聯(lián)網(wǎng)、大數(shù)據(jù)時代的涌動下,組態(tài)軟件演變?yōu)楣た仡I(lǐng)域的重要環(huán)節(jié),為此,本文以虛擬化組態(tài)軟件為基礎(chǔ),面向服務(wù)器冗余故障,提出一種自修復(fù)方法。由于研究存在一定的局限性,故需將以下幾個優(yōu)化點作為今后的探索方向:針對組態(tài)軟件,采用驅(qū)動層協(xié)議添加離線編程功能,實現(xiàn)本文方法的離線自修復(fù)性能,使組態(tài)軟件更具可控性;應(yīng)結(jié)合更優(yōu)越的技術(shù)與策略,彌補欠缺的大數(shù)據(jù)處理能力,提升數(shù)據(jù)負(fù)荷應(yīng)對性與數(shù)據(jù)分析能力;本文研究對象僅限于服務(wù)器產(chǎn)生的冗余故障,應(yīng)涉及其他系統(tǒng)組件、不同故障類型的情況,進(jìn)一步探討方法適用性。