趙瑩,王國平,路學剛,楊勰,劉軍,劉賽
(1.云南電網有限責任公司,昆明650011;2.南瑞集團有限公司(國網電力科學研究院有限公司),南京210003;3.南京南瑞信息通信科技有限公司,南京210003)
在國家大力倡導推進云數據中心建設的背景下,眾多服務依賴于云環境,一旦云環境發生故障錯誤,將會導致嚴重的后果。近年來,云環境發生故障事件頻發,例如,在2018 年一月份,由于谷歌自動化設備的故障導致長達93 分鐘的停運,隨之而來的后果導致谷歌軟件上最受歡迎的一些應用程序突然停止服務,指使谷歌資金損失慘重。2018 年2 月28 日,亞馬遜云服務平臺(AWS)因錯誤指令而導致停電。據Cyence 報道的數據統計分析,由于AWS 長達四小時的服務中斷,不僅導致五百家上市公司損失了1.5 億左右的美元而且還引起了大量用戶的投訴意見。網絡監測公司Apica做過相關研究,其指出世界排名前100 位的互聯網零售商中起碼有54 家都因為故障影響導致其收益下降了20%以上,甚至有3 家網站因此暫停了服務。18 年六月份,阿里云的官方網站的控制臺和部分產品功能由于處理不當出現故障;阿里云的官方網站的一部分控制功能,還有MQ、NAS、OSS 等產品的一些功能由于人為惡意攻擊同樣也出現了訪問異常的情況,一些用戶報告說,手機方面和電腦方面都無法訪問。2018 年七月初,AWS 的管理控制平臺出現間歇性失靈狀況。同年七月中旬,谷歌云平臺由于事先準備工作不當導致大面積負載均衡服務發生故障,這直接導致用戶短時間內無法訪問云平臺。
當今,容災備份恢復的解決已經刻不容緩,相關專家指出該問題已經上升到國家信息發展的戰略高度,成為國家信息安全體系的核心問題之一[1]。針對該問題提出的抗災后備和災后恢復系統已成為通向信息化社會道路必不可少的基礎安全設施,其中容災備份的一個應用延伸為保障業務連續性,即(Business Continuity),業務連續性主要是指組織在故障事件后可以以預定的、可接受范圍內的水平持續提供服務的能力。業務連續保護目前在國際上受到了相當大的關注,它是由多學科相互交叉的新興前沿研究熱點領域,因此研究業務連續保護相當有必要。云南電力高度重視業務連續性在公司信息系統中的應用研究工作,已開展各類信息系統的數據級、應用級以及雙活災備建設實踐。在應用中,為了解決數據復制一致性問題,除了采用傳統的基于邏輯級的數據復制技術外,目前云南電力公司也在開展基于塊復制的物理級數據復制技術試點驗證工作,但這些技術僅針對傳統環境下數據庫層面解決數據異地災備問題。隨著電網公司業務上云,傳統的業務開通、遷移、資源調配、故障恢復等解決方案已無法滿足云環境下的業務連續性保障要求。如何確保云數據中心/云平臺在地震、洪水、火災等自然條件引起的事故破壞或失敗后及時恢復,在這基礎上確保業務的連續性是一個亟待解決的重要問題。而在該問題中,在云平臺下保障業務連續性并對故障進行快速的定位和恢復則是重中之重。
故障診斷技術早在40 年之前就已經有人開始著手研究,發展至今已經相當成熟,主要應用于大型電網、軍事、航空航天、汽車工業等領域中[2-3]。目前常用的故障診斷方法包括、基于專家系統的診斷評估方法、基于貝葉斯網絡的診斷評估方法和基于故障樹的診斷評估方法等[4]。此外,許多學者還基于新興的技術提出了很多新的方法,如基于隱馬爾科夫和神經網絡相結合的集成模型[5],基于混合鍵合圖模型的綜合診斷方案[6],基于最小動態貝葉斯網絡構建了最小評價模型(H-MEMS)[7]等。
專家系統是由該領域內專家所提供的專業知識為基礎形成的評估體系,可以利用該系統不斷積累知識經驗來診斷故障,該方法的特點是簡單,但在知識不全面、經驗不足的條件下,專家系統的表現不佳。貝葉斯網絡可以通過該網絡的無環圖結構描述變量之間的關系網絡,表達故障的相關性,但結構復雜,計算復雜程度很高。故障樹分析法主要用于分析各種導致設備出現故障的因素,通過構建樹,根據樹狀結構,逐層細化,找出并繪制出出現故障的所有可能組合。該方法適用的環境非常廣泛,其不僅可以分析軟硬件本身出現故障的原因,推到出導致系統故障的原因組合,還能進行定量計算。雖然故障樹分析法也存在一些問題,包括一旦故障樹規則確定后續就不好更改,如果有新的故障將無法很好地診斷,但利用故障樹分析法實現故障診斷仍然存在非常大的優勢。
基于此,本文針對云環境,根據知識庫保存的歷史只是構建故障樹,結合故障樹分析法實現故障樹規則的自我更新完善,通過分析云業務系統故障,針對這些故障分析出故障處理流程和具體的故障處理建議,達到對故障進行快速的定位和恢復的目的。
故障樹分析法(Fault Tree Analysis,FTA),是在1961 年由美國貝爾實驗室的研究員華特先生為提升火箭發射系統安全性、可靠性而提出的[8]。它是一種適用于故障診斷的分析方法,主要通過圖演繹的方式,目前已被成功運用于對化工[9]、航空航天[10]、核電站[11]、制造工藝[12]、汽車故障[13]等各個領域的安全性分析。該方法是通過將導致形成故障的因素根據樹的結構逐級推演,從而得出系統故障的原因,該方法甚至可以進一步計算每種故障發生的概率,找出產生系統故障因素的所有組合。故障樹分析法的有點非常多:它能夠分析任何故障,不單單局限于分析由于軟硬件本身引起的故障,還包括一些人為導致或者周圍環境引起的故障原因;它通過分析可以確定最小割集,最小割集可以幫助系統確定系統的缺陷和所有可能存在的故障模式,并通過定量計算故障分布和發生概率,從而求得最小割集重要度,確定正確的診斷流程以及確定每個故障相應的優先級。
最小割集是可靠性統計的基本概念之一,站在故障的角度,由于每個底層事件都是由系統所能測量和控制的最低分析單元組成,因此它其實表示的是導致系統出現故障的最根本的原因。換句話來說,如果最小割集中所有的部件都出現了故障,這意味著該系統也就出現了故障。所以,最小切割集是那些導致系統出現中斷或者故障的最小因素組合。確定最小割集可以使我們準確系統所有潛在危機,它是實現精準故障診斷的核心。
除了最小割集之外,頂部事件發生的概率也是評估系統故障的一個定量描述。因此。通過系統模型中的頂事件以及最小割集的發生概率,求得系統發生異常甚至故障的原因。
假設某系統模型的最小割集K{X1,X2,…,Xn},其中Xn表示第n 個底事件,值得注意的是最小割集種的每個底事件沒有交集完全獨立,因此根據計算每個底事件的發生概率的積可以得到最小割集的概率PK,計算公式如下:

根據等式(1),按照故障樹的邏輯結構從下往上逐步計算,可以求得故障樹頂事件發生的概率。已知可以通過使用頂事件和最小割集組成的或門來表示任何一種故障,因此頂事件的發生概率可以通過最小割集計算得到,假設已知故障樹的最小割集Mi,其中該故障樹包含m 個最小割集,可以求得該故障樹的頂事件發生概率為:。通過計算最小割集重要度PM/T=PM/PT,獲得每個最小割集的優先級,從而明確診斷流程及診斷順序。
故障會給系統帶來很大的損失,而若無法及時找到故障原因并快速解決故障,則可能會導致更加嚴重的損失。為了達到這個目的,需要系統運維人員根據之前的工作經驗來設計一個監管控制系統模型,實現對系統的重要設備的實時監控和狀態數據的實時采集,而對于那些有著高風險和高故障率的設備或模塊,需要進行比其他設備更加高頻的監控。運維人員對采集到的實時數據進行分析,若數據超出了閾值,那么便認定有故障產生;其次,這些數據信息可以用作故障樹的頂事件,然后依據故障樹定義規則構建分析模型。如圖1 所示。頂事件代表某項業務故障,底事件代表某最小單元故障。中間事件指未充分拆解的故障原因。

圖1 故障樹的建樹規則及其分析模型圖
其中,各符號的意義及概率計算如表1 所示。

表1 故障樹中各符號意義
有了分析模型后,就可以對系統異常進行診斷,基于故障樹的故障診斷流程如圖2 所示。

圖2 基于故障樹的故障診斷
知識是信息經過人為整理加工而得來的,知識庫是由事實,概念和規則組成的知識集合[14]。本文的知識庫用于存儲專家在這一領域提供的專業知識。
本文將知識庫添加到故障樹分析方法中,使故障樹規則可以自我更新和改進,與此同時,還給出了具體的故障處理建議。具體模型如圖3 所示。

圖3 基于故障樹的故障診斷
故障診斷流程主要包括三個步驟:
(1)收集所需數據,根據真實經驗積累、實際項目要求和專家組提供的專業知識,建立起故障樹的規則庫,計算出故障樹底事件的概率,完成故障樹規則庫的構建及初始知識庫的構建;
(2)當有告警發生時,根據故障樹和知識庫進行診斷,輸出一個包含故障診斷順序及故障處理建議的診斷報告;
(3)通過故障診斷報告產生的案例擴充故障處理知識庫,之后再根據擴充后的知識庫來更新完善故障規則庫。
本文針對云環境下業務連續性運行構建故障樹實現故障診斷模型。由于業務連續性運行涉及的范圍比較廣,需要從主機、網絡、存儲、應用、數據庫、中間件等方面,結合云計算、數據庫資源池,形成云環境下業務運行安全保障機制和閉環管理機制。通過云南電網調度系統業務運行典型場景實驗,形成如圖4 所示云環境下業務連續性運行故障診斷故障樹。

圖4 云環境下業務連續性運行故障診斷
本文在分析和處理大量數據的基礎上,選擇基于知識庫與故障樹的的云業務數據中心故障診斷技術,構建針對云環境的故障快速定位和恢復模型。通過實驗分析表明,本文提出的模型具有良好的表現,能夠完成精準的故障定位、診斷和處理建議,保障業務系統在云數據中心環境下運行的連續性。