林驚雷 劉向東
華北石油通信有限公司
目前,動力環境監控系統用于實時監測機房基礎設施運行狀態,為機房管理自動化、運行智能化、決策科學化提供有力的技術支撐。但大部分系統基于通用性考慮,多側重于設備監測的準確性和穩定性,但在數據庫建模上忽視了設備間的關聯性。在部署階段,被監測設備通常以空間為單位進行組織,用組態方式展示出來,這種方式有利于用戶快速定位故障設備,但由于缺乏設備間的關聯性描述,故障告警只能體現設備單體故障狀態,無法評估或預測該故障的影響區域,而這點對于全面掌控供電系統的故障影響至關重要。
當供電系統出現故障時,運營管理者更關心機房哪些設備會受到影響,而這多依賴運維人員對供電系統的熟悉程度和故障處理經驗,對于不熟悉系統的維護人員多通過人工檢索組網圖完成,時效性很差。如果能解決供電設備關聯性問題,便可通過程序對供電系統進行分析,快速定位出終端用電設備,并關聯出該故障點上下游供電設備,這樣,可有效收斂故障邊界,提升應急響應時間。
由于大部分動力環境監控系統都存在封裝性,這導致系統擴展性差,用戶只能停留在應用層面,特定需求只能通過廠家定制開發實現,既增加了投入成本,也限制了用戶主動運維的積極性。實際上,實現該功能難度并不大,只要考慮好如何描述設備間的邏輯關系,并依此關系建立數據模型,圍繞此模型進行程序開發即可。該文以某數據機房供電系統為例,為該機房供電系統設備建立數據模型,通過對故障節點的分析,快速定位出故障影響區域,并在矢量拓撲圖上展示出來。
該運維應用以某數據機房供電系統為參考,以拓撲圖方式構建出該數據機房供電系統組建結構(圖1)。
該供電組網的局部拓撲結構比較簡單,由圖1可知,供電設備并非一對一的鏈表關系,相對于可靠性要求高的機房,都存在多機并聯或冗余的情況,因而在實體關系描述上存在多對一或一對多的情況。基于此可用多叉樹實現對整個供電系統的描述。通過數據建模,構建出供電系統各設備的關聯性。在實際應用中,可從告警事件中獲取到設備ID,依據設備間的關聯性,可快速遍歷出故障設備關聯的上下游設備。表1將對依據模型建立起來的表單中的主要字段進行簡要說明。圖2展示了該表的查詢結果。

圖1 機房供電系統拓撲圖Fig.1 Topology of machine room power supply system

表1 字段描述Tab.1 Field description

圖2 記錄查詢Fig.2 Record query
遍歷程序采用Python語言編寫,當動力環境監控系統上報某供電設備停電告警后,以告警設備為錨點分別進行上行和下行的遍歷,從而獲取到與之相關完整供電設備鏈的輸出。假設圖1中的UP-2-1并機輸出柜出現停電,輸出結果如下:

輸出結果是和故障節點相關的完整設備鏈,即故障影響區域。這些數據從后端傳遞給前端,并在矢量拓撲圖上展示出來。圖3 是告警觸發后對機房供電系統上行的遍歷代碼[1-2]。

圖3 上行遍歷代碼Fig.3 Upward traversal code
采用B/S 架構,后端采用DJANGO,前端為HTML5+JS。供電系統拓撲圖采用SVG(可縮放矢量圖)格式繪制,展示效果好,繪制完成的SVG圖嵌入到HTML中,

供電設備停電告警會觸發后端進行設備遍歷,并把遍歷結果發送給前端。前端根據接收數據定位SVG文件中的對應元素,并通過代碼對其屬性進行操作(如顏色填充或閃動等特效),把故障設備及相關的上下鏈設備和其他設備區分開,實現了對故障邊界的收斂。該處理方式對擁有龐大且組網結構復雜的供電系統而言,能顯著提升應急處理的時效。
如圖1所示,深灰填充部分是告警節點,淺灰填充部分為該設備關聯的上下游供電設備。故障邊界收斂有利于提升處理故障的時效,尤其對擁有龐大且組網結構復雜的供電系統而言效果更為明顯。
后端的主要功能是根據告警節點把遍歷的數據集傳遞給前端。在實際應用場景中可通過動力環境監控系統的北向接口獲取實時告警事件。測試階段是通過前端發送設備名稱給后端,來模擬從動環獲取供電設備停電告警事件。圖4為后端主要代碼[3]。

圖4 后端主要代碼Fig.4 Back-end core code
前端測試瀏覽器為IE。根據后端傳遞的數據匹配對應的SVG 控件對象,并填充該控件,從而實現對遍歷結果的展示。需要注意的是當頁面加載完成后才能操作SVG,程序里時延100 ms 后開始操作,具體時延根據頁面的復雜程度進行調整。圖5為前端主要代碼[4-5]。

圖5 前端主要代碼Fig.5 Front-end core code
開發及測試環境為

供電系統作為關鍵基礎設施,其安全性決定了整體運營質量。為供電系統提供安全保護措施,除了設計階段冗余保障,運維階段需要更多的快速定位和消除故障保護措施[6]。本文提供的對供電系統故障影響區域快速分析定位的方法,彌補了現有監控系統的不足,今后將進一步提高保障供電系統安全的自動化運維水平。