關(guān)兆雄, 皇甫漢聰
(廣東電網(wǎng)有限責(zé)任公司 佛山供電局, 佛山 528000)
云計算的出現(xiàn)讓人們對于網(wǎng)絡(luò)的認(rèn)識發(fā)生了顯著的變化。人們通常習(xí)慣把數(shù)據(jù)存放在電腦當(dāng)中,并主觀認(rèn)為能夠保障數(shù)據(jù)安全。但電腦并不是完全安全的系統(tǒng),在加上云計算技術(shù)的出現(xiàn),讓很多數(shù)據(jù)都放在了肉眼不可見的“云”中。例如我們熟知的“百度云盤”,就有效地利用了這項技術(shù)。對于虛擬化技術(shù)的管理,也需要在程序、配置上面展開優(yōu)化,來解決存在的諸多問題。
虛擬器件實際上是安裝了操作系統(tǒng)、業(yè)務(wù)軟件等功能的軟件棧,它包含了系統(tǒng)所需要的虛擬資源,一般以.ova為后綴的壓縮包格式發(fā)布,即OVF包,它也是目前虛擬器件的業(yè)界標(biāo)準(zhǔn),將虛擬器件定義為3種不同格式,不同的解決方案都可以用一個OVF文件來進(jìn)行描述[1]。其文件構(gòu)成主要包含以下幾個方面。如表1所示。
表1 OVF文件類型
自動運維模塊是基于引擎技術(shù)而出現(xiàn)的功能模塊,包括不同的組件,例如圖1所示。
圖1 自動運維模塊構(gòu)成
監(jiān)視器的作用是負(fù)責(zé)收集虛擬器件運行過程中存在的狀態(tài)信息,并將數(shù)據(jù)結(jié)果存儲至事實庫當(dāng)中[2]。它的信息來源主要源于兩個方面,一是虛擬化平臺內(nèi)部的運行狀態(tài)信息,主要為監(jiān)視器提供接收接口;二是外部狀態(tài)信息,對整個虛擬器件進(jìn)行監(jiān)控,獲取通用信息[3]。例如CPU占用比例、內(nèi)存情況、硬盤空間與硬盤讀寫速率等,都可以成為監(jiān)視器監(jiān)視的重要內(nèi)容。
在自動運維模塊當(dāng)中,決策器是最關(guān)鍵的組件之一,推理設(shè)備通過對知識庫與事實庫的匹配,產(chǎn)生有效的運維序列,然后表示為虛擬器件中的對象,獲取參數(shù)列表,然后決策元來根據(jù)策略信息與器件的運行狀態(tài),匹配合理的行動序列,再交給執(zhí)行系統(tǒng)完成需要進(jìn)行的運維工作[4]。一般情況下,有兩種行為控制模式。首先是內(nèi)部行為控制,即對操作系統(tǒng)與軟件的運行管理,以虛擬器件的接口調(diào)用作為參照;然后是外部行為控制,即在虛擬器件的運行狀態(tài)下對所占用的物力資源進(jìn)行管理與快照,并對景象進(jìn)行保存,防止系統(tǒng)損壞時無法恢復(fù)[5]。
知識庫是虛擬器件自動運維的基礎(chǔ),也是不可或缺的組件。同時它也是虛擬器件運維方式的一種體現(xiàn),由狀態(tài)池、策略集組成。狀態(tài)池中包含了虛擬器件的狀態(tài)信息與物理機地址等,同時還包括了硬件運行環(huán)境的相關(guān)要求與軟件運行環(huán)境的要求。此外,這些信息通常在讀取描述文件后寫入[6]。而策略集中則存儲了策略信息,包括公共策略信息與私有策略信息,前者來源于公共桂策,可以適用于所有虛擬器件,進(jìn)行公共行為判定;后者則是來源于封裝規(guī)則集,最終可生成策略集合。
事實庫可以存儲虛擬器件上的所有狀態(tài)數(shù)據(jù),然后通過推理機來獲取數(shù)據(jù),并與已有的知識進(jìn)行分類和比較,產(chǎn)生維護(hù)動作集。例如圖2所示。
圖2 事實庫數(shù)據(jù)處理方式
事實庫的數(shù)據(jù)來源如圖所示,是監(jiān)視器所監(jiān)視的數(shù)據(jù),并由事實庫轉(zhuǎn)移至推理機,推理機在獲取數(shù)據(jù)后再展開分析與討論[7]。
推理機是自動運維模塊的最重要內(nèi)容,可以實現(xiàn)對監(jiān)控數(shù)據(jù)的推理與分析,讓運維動作的計算結(jié)果更加精確。本次研究中也對推理機的算法進(jìn)行了分析,讓數(shù)據(jù)定義成為不同的數(shù)據(jù)類型,不僅可以將一些無關(guān)數(shù)據(jù)進(jìn)行篩除,讓同類型的事實對象進(jìn)入匹配網(wǎng)絡(luò)當(dāng)中,也可以高效地滿足網(wǎng)絡(luò)篩選數(shù)據(jù)的相關(guān)要求。
自動運維虛擬器件建模工作可以通過虛擬化平臺實現(xiàn),采用B/S架構(gòu)來進(jìn)行,無論是一般用戶還是管理員都可以直接通過瀏覽器進(jìn)行訪問和管理,并對資源進(jìn)行有效整合,在資源池上建立虛擬化平臺,給用戶提供虛擬資源的容器[8]。在這種管理模式下資源可以得到有效的分配,虛擬化平臺的穩(wěn)定性也能得到顯著提升,滿足不同的業(yè)務(wù)需求與安全級別下多種訪問模式的要求。通常情況下管理服務(wù)器與客戶端物理主機之間存在著密切的聯(lián)系,管理服務(wù)器主要負(fù)責(zé)系統(tǒng)資源的管理與規(guī)劃,而物理主機則用于提供相關(guān)資源[9]。數(shù)據(jù)中心可以包含不同的資源池,滿足不同的服務(wù)要求,也可以在不同的物理主機內(nèi)實現(xiàn)動態(tài)遷移,但不跨越資源池,保障業(yè)務(wù)之間相互獨立[10]。
虛擬機的管理則包括資源分配、監(jiān)控、備份等各項工作,不僅可以負(fù)責(zé)虛擬機系統(tǒng)的啟動與停止,還能進(jìn)行多種類型的狀態(tài)添加與移除操作。無論是在本地還是在一地,虛擬機的管理都支持不同的網(wǎng)絡(luò)協(xié)議,也可以實現(xiàn)在本次操作異地設(shè)備,配置管理也能通過網(wǎng)絡(luò)接口來實現(xiàn),以創(chuàng)建虛擬網(wǎng)絡(luò)的方式讓虛擬機操作宿主機網(wǎng)絡(luò),在合理的防火墻制度下實現(xiàn)[11]。
監(jiān)控數(shù)據(jù)可以采用五元組來表示,不同屬性代表的是不同數(shù)據(jù)的名稱與值,包括數(shù)據(jù)類型與數(shù)據(jù)來源。虛擬器件當(dāng)中,感應(yīng)器通過接口獲取相應(yīng)的數(shù)據(jù),然后以字串形式發(fā)送個監(jiān)視器,此時監(jiān)視器可以判斷數(shù)據(jù)來源,然后在數(shù)據(jù)上附加上一定的信息,以便于在未來生成數(shù)據(jù)實例時進(jìn)行使用[12]。由于各個數(shù)據(jù)之間需要進(jìn)行匹配分析,針對不同的數(shù)據(jù)類型也需要定義不同的事實數(shù)據(jù)結(jié)構(gòu)。如果規(guī)則引擎進(jìn)行了匹配分析,那么會被默認(rèn)為“false”,即數(shù)據(jù)已經(jīng)被使用。另外還可以通過一致性設(shè)計模式讓內(nèi)部域暴露成員屬性,通過自身機制來了解事實類數(shù)據(jù)。
規(guī)則文件的性質(zhì)是一個可編輯的文本,并可以滿足自動運維的業(yè)務(wù)要求,表現(xiàn)出虛擬器件的業(yè)務(wù)功能。通常情況下虛擬器件的廠商在開發(fā)業(yè)務(wù)軟件的過程中會結(jié)合實際的運維需求來對軟件進(jìn)行規(guī)劃,滿足在不同環(huán)境下對于虛擬器件運維的需求。不同的器件會包含不同的規(guī)則文件,不同的規(guī)則文件可以視作一個運維單位。此時,規(guī)則文件的特征會結(jié)合其屬性、條件與結(jié)果來判斷,來明確規(guī)則執(zhí)行的時機[13]。一個條件即對一個事實的添加限制,也表明可監(jiān)控的數(shù)據(jù)需要滿足的條件,約束是規(guī)則引擎匹配算法的單位,可以將條件內(nèi)的屬性進(jìn)行管理與規(guī)劃,并將約束的結(jié)果進(jìn)行計算,當(dāng)所有約束能滿足規(guī)則要求時,證明條件滿足。研究中還可以引入復(fù)雜事件處理,將事實進(jìn)行定義,讓規(guī)則的功能更加全面,例如對歷史數(shù)據(jù)的分析、對規(guī)則次數(shù)的限制等[14]。
目前在規(guī)則引擎技術(shù)之下,rete算法是目前的“業(yè)內(nèi)標(biāo)準(zhǔn)”,一些引擎接口標(biāo)準(zhǔn)也是以rete為基礎(chǔ)而制定的。這種算法包含兩個部分,即運行執(zhí)行部分與規(guī)則部分。規(guī)則部分即形成一個識別網(wǎng)絡(luò)進(jìn)行匹配,然后讓事實數(shù)據(jù)通過匹配傳播進(jìn)行過濾,讓符合條件的事實得到保留。研究過程中也將事實數(shù)據(jù)進(jìn)行了檢查,將不符合要求的數(shù)據(jù)進(jìn)行過濾,讓網(wǎng)絡(luò)中需要的數(shù)據(jù)類型進(jìn)入網(wǎng)絡(luò)當(dāng)中[15]。目前rete網(wǎng)絡(luò)有多種節(jié)點類型,而事實庫中一旦有新的事實對象插入,那么匹配后的狀態(tài)也會得以保存,這樣一來等下一個事實對象插入時,只需要對新的事實對象進(jìn)行管理和檢查,減少了大量的重復(fù)計算。此外,rete算法還可以共享不同規(guī)則網(wǎng)絡(luò)中的共同部分,即節(jié)點相同時,不同規(guī)則的網(wǎng)絡(luò)可以共享相同規(guī)則的節(jié)點,減少內(nèi)存中的節(jié)點數(shù)量,提升系統(tǒng)的匹配性能。但這種方式也需要注意一點,即事實對象變化頻率較快時,采用rete算法的工作效率并不突出。
運維流程管理方案如圖3所示。
圖3 自動運維
虛擬器件自動運維管理可以對運維對象進(jìn)行有效監(jiān)控,然后在獲取狀態(tài)數(shù)據(jù)后進(jìn)行反饋。如圖所示,虛擬器件的狀態(tài)屬性可以通過監(jiān)視器來進(jìn)行管理,可以根據(jù)器件狀態(tài)池的參數(shù)來獲取運行狀態(tài)時的數(shù)據(jù),并將其作為規(guī)則引擎的事實數(shù)據(jù)存入事實庫當(dāng)中,此時規(guī)則引擎可以對知識庫進(jìn)行查詢匹配,將相關(guān)的信息發(fā)送給效應(yīng)器與決策器,結(jié)合參數(shù)數(shù)據(jù)來執(zhí)行相關(guān)的工作,引起操作對象運行狀態(tài)的變化,再讓新的狀態(tài)進(jìn)入事實庫進(jìn)行處理分析,實現(xiàn)“循環(huán)”,并最終實現(xiàn)虛擬器件的自動運維[16]。
規(guī)則引擎采用的是代碼形式的規(guī)則文件,便于相關(guān)運維人員進(jìn)行管理和修改。但考慮到實際的工作需求,如何對規(guī)則進(jìn)行解析,并在編輯界面中進(jìn)行管理,成為了主要的研究內(nèi)容。通常情況下不同的規(guī)則可以添加不同的條件,條件與條件之間也可以建立聯(lián)系,編輯器在運行過程中可以賭氣描述文件,并將選項進(jìn)行展示,如果用戶需要這些文件,便可以對這些文件進(jìn)行編輯與保存,例如在創(chuàng)建新虛擬器件時,就可以根據(jù)器件運維要求進(jìn)行編輯。
作為云計算技術(shù)的核心組成部分,如何提升虛擬化平臺的工作效率,推動虛擬化產(chǎn)品的開發(fā)與規(guī)劃,對云計算技術(shù)的普及具有顯著的現(xiàn)實意義。傳統(tǒng)虛擬化技術(shù)的效率問題也讓虛擬器件技術(shù)隨之產(chǎn)生,具有顯著的優(yōu)勢。本文針對虛擬器件的模型,對系統(tǒng)和管理平臺進(jìn)行了針對性分析,在虛擬化平臺中融入規(guī)則引擎技術(shù),對各個層次的不同對象進(jìn)行了自動運維管控,減少了系統(tǒng)問題的產(chǎn)生。在未來的工作中,還需要對測試環(huán)境進(jìn)行完善,力圖在一些更復(fù)雜的環(huán)境下展開測試,為企業(yè)的數(shù)據(jù)管理等工作提供技術(shù)支持,并實現(xiàn)出業(yè)務(wù)軟件外所有運維對象的有效管控,提升操作系統(tǒng)的質(zhì)量。