王登峰 李錚 李魁雨 劉丕洲 張少波
1. 國網寧夏電力有限公司 寧夏 銀川 750001;
2. 深圳市國電科技通信有限公司 廣東 深圳 518019
工業控制系統通常使用于電力,水利,石油和天然氣等行業,數據采集是工控系統一種應用類別,相關功能一般可包括可視化的報表定義、審核關系的定義、報表的審批和發布、數據填報、數據預處理、數據評審、綜合查詢統計等。隨著目前物聯網技術不斷發展,工控類數據量不斷增多,對數據處理的時效性要求不斷提高,同時工控系統作為底層數據獲取入口,又支撐了大量高級應用系統,是實現物聯網應用的基礎性系統,因此保障工控類數據采集系統的可靠運行尤為重要。但目前工控類數據采集系統仍普遍采用傳統信息系統建設方式進行系統建設,對系統可靠性研究不夠深入,可靠性保障手段仍有所不足,主要體現在:①沒有篩選出系統中關鍵節點設備并對不同設備采用不同可靠性策略;②系統的軟、硬件架構容錯能力較差,當工控類數據采集系統出現故障時,難以及時恢復;③在系統出現處理壓力過高而不能提供全部服務時,無法及時斷開部分業務或對業務進行降級處理,以減輕系統壓力,保證核心業務不間斷。
工業控制系統涵蓋多種類型的控制系統,包括監控和數據采集系統,分布式控制系統等;針對數據采集類系統,數據在終端設備生成,通過公網或專網傳至通信前置服務器,后通過采集前置服務器、數據庫服務器、應用服務器等完成數據采集入庫和數據應用過程。承載各功能的服務器及網絡設備視為系統的邏輯節點,基于邏輯節點的系統可靠性改造設計,遵照保障業務不間斷運行的原則,不考慮系統受攻擊以及安全設計等內容,分為高可靠性保障、一般可靠性保障共兩個級別。將生產庫集群、應用庫集群、接口庫集群、接口服務器、Web應用服務器、數據挖掘庫集群等設備中可靠性要求高的設備節點,采用高可靠性保障策略,中低要求的設備節點,采用一般可靠性保障策略。對于一般可靠性保障要求設備,可根據系統狀況自定義可靠性保障策略;對于高可靠性保障要求設備,從節點可靠性及相關節點自適應兩方面進行設計。
系統經優化后,所提升的能力包括:防止網絡局部擁塞、防止信息網絡癱瘓、防止業務數據丟失、保證數據存儲的可靠性,防止關鍵節點冗余過低、防止單點故障、防止服務器負載過高、防止服務器時差過大,以確保系統服務不間斷運行。
承載各功能的服務器及網絡設備視為系統的邏輯節點,主要邏輯節點描述如下:
1.1.1 通信前置:通信前置集群是前置系統的重要組成部分,用于與終端保持連接和通信,負責與終端設備之間的通信鏈路管理和原始通訊報文的收發,處理終端的登錄與心跳報文。
1.1.2 采集前置:采集前置集群負責處理通信前置機接收到的原始數據,實現對原始數據的解析和數據加工并完成將采集數據寫入系統數據庫。
1.1.3 主站密碼機:主站密碼機為終端設備通信提供加密和證書服務,只允許采集前置服務器訪問。
1.1.4 任務服務器:負責發起和執行系統各類型的數據采集功能,如日采集數據任務、月采集數據任務。
1.1.5 數據庫:數據采集系統一般使用Oracle數據庫,根據數據存儲及業務開展情況,將數據庫分為生產庫、應用庫、數據挖掘庫、接口庫。
1.1.6 Web應用服務。數據采集數據采集是工控系統一種應用類別,相關功能一般可包括可視化的報表定義、審核關系的定義、報表的審批和發布、數據填報、數據預處理、數據評審、綜合查詢統計等。
1.1.7 統一接口服務。接口區實現與其他系統交互的管理,承擔系統統一接口服務平臺任務。承擔系統發布數據接入、數據發布、數據訂閱等應用[1]。
系統數據包括采集類、設置類、控制類和數據應用類四大類數據業務。
1.2.1 采集類占據絕大多數,具有數據量大、頻度高、實時性低等特點,涉及每日、每周定時或不定時采集回來的基礎工控數據等多方面。
1.2.2 設置類主要涉及新裝設備的投入設置、終端設備運行參數設置等方面。
1.2.3 控制類具有實時性高、單點操作等特點,對于終端進行遠程關閉、重啟等控制操作。
1.2.4 數據應用類主要是統計分析、報表及數據發布等方面。
1.3.1 通信前置出現故障時,影響定時任務、事件采集、人工發起數據采集任務、參數設置、對時指令、控制數據采集設備、控制數據中轉設備等業務的開展,造成數據缺失等重要業務中斷,故可靠性要求為高。
1.3.2 采集前置出現故障時,影響報文解析、定時任務、事件采集、參數設置、對時指令、控制數據采集設備、控制數據中轉設備等業務的開展,造成數據缺失等重要業務中斷,故可靠性要求為高。
1.3.3 任務服務器出現故障時,影響定時任務、事件采集、人工發起數據采集任務、參數設置、對時指令、控制數據采集設備、控制數據中轉設備、統計計算、報表查詢、數據發布等業務的開展,不影響核心業務,故可靠性要求為中。
1.3.4 Web應用服務器出現故障時,影響人工發起數據采集任務、參數設置、對時指令、控制數據采集設備、統計計算、報表查詢等業務的開展,造成業務人員無法進行數據查詢、數據錄入、終端設備故障消缺、采集數據分析等業務,不影響核心業務,故可靠性要求為中。
1.3.5 密碼機出現故障時,影響參數設置、對時指令、控制數據采集設備、控制數據中轉設備等業務的開展,造成設備通信等重要工作無法執行,故可靠性要求為高。
1.3.6 接口服務器出現故障時,影響參數設置、控制數據采集設備、控制數據中轉設備等業務的開展,影響高層級系統實時通過數據采集系統進行的一些實時性、可靠性要求較高的業務,故可靠性要求為高。
1.3.7 接口庫出現故障時,影響高層級系統實時通過數據采集系統進行的一些實時性、可靠性要求較高的業務,故可靠性要求為高[2]。
節點可靠性:對于某一設備節點,使用動態負載均衡的,采用n+2原則(n為滿足正常業務開展至少需使用設備臺數),適度增加冗余設備;或使用集群等高可用技術,實現故障設備自動切換或業務自動接管。
2.1.1 通信前置服務器。采用動態算法進行動態負載均衡的部署方式,服務器采用N+2原則進行冗余。計算公式如下:通信前置機數量=全覆蓋終端總量(萬臺) /單臺接入量(萬臺)+ 2(2臺冗余)。
2.1.2 采集前置服務器。采用動態算法進行動態負載均衡的部署方式,服務器采用N+2原則進行冗余。計算公式如下:采集前置機數量=每秒需要處理報文業務總量 /單臺秒處理量+2(2臺冗余)。
2.1.3 數據庫服務器。生產庫、應用庫、數據挖掘庫、接口庫均為2節點集群部署,各數據庫使用獨立存儲。應用庫進行熱備,當數據丟失時,使用上述備份策略產生的備份文件進行數據恢復,可保證數據庫恢復到任意時間點。
2.1.4 Web應用服務器。采用weblogic集群部署,通過F5進行負載均衡。也可以用雙集群部署,每個服務器上可部署2個受管節點,對應部署2個管理節點,做Weblogic雙集群處理,部署完成后可用的受管節點為服務器數量的2倍,可有效利用資源。服務器采用N+1原則進行冗余。計算公式如下:Web服務器數量=最大用戶登錄數 /單臺會話處理量 + 1(1臺冗余)。
2.1.5 接口服務器。部署方式:負載均衡集群部署,接口服務器集群部署,所有接口請求經由負載均衡服務器派工至接口服務器處理。
相關節點自適應:主要通過相關節點自主調整業務來實現。通過對節點運行的各項業務預先進行分類分級,在節點性能壓力較大時,采用延遲甚至暫停部分低級別業務以保證更高級別業務正常運行的策略[3]。
2.2.1 應用庫異常。應用庫發生異常時,采用以下幾種方式縱向減小應用庫的壓力。
降低來自生產庫的壓力。當來自生產庫的數據同步壓力較大時,可以暫停來自生產庫的數據同步工作,減少數據寫入,減輕應用庫的負荷。
降低來自應用服務的壓力。當來自應用服務的壓力較大時,可以通過以下幾種方式減輕應用庫壓力:①限制部分重要性等級較低的角色登錄系統;②限制較大批量數據庫查詢功能;③以上兩種方式不足以緩解生產庫壓力時,可以考慮暫停應用服務,從而減輕應用庫壓力。
降低來自接口服務的壓力。當來自接口服務的壓力較大時,可以臨時停止數據發布,減少數據查詢,從而減輕應用庫壓力。
降低來自計算服務的壓力。當來自計算服務的壓力較大時,在可以臨時停止數據計算業務,減少數據查詢和寫入,從而減輕應用庫壓力。
2.2.2 生產庫異常。發生生產庫異常時,可考慮采用以下幾種方式縱向減少生產庫的壓力。
降低來自應用庫的壓力。當來自應用庫的數據同步壓力較大時,可以暫停來自應用庫的數據同步工作,減少數據寫入,從而減輕生產庫壓力。
降低來自入庫服務的壓力。當來自入庫服務的壓力較大時,可以通過以下幾種方式減輕應用庫壓力:①進行業務數據限制,根據重要性篩選,不進行非重要數據的生產庫存儲,從而減輕生產庫壓力。②進行數據緩存,將數據先緩存到文件或者內存數據庫中,待生產庫恢復之后再進行存儲,減少生產庫在異常階段的壓力。
降低來自調度服務、采集服務、通信服務的壓力。當來自這三個服務的壓力過大時,可以通過降低加載頻率的方式,減少三個服務對于生產庫的讀取,從而減輕生產庫的壓力[4]。
隨著物聯網時代的到來,物聯終端設備越來越多、數據量越來越大,對數據采集實時性要求越來越高,對于工控類數據采集系統而言,保證系統可靠性十分重要。本文中提出了一種提升系統可靠性的優化方法,可實現如下目標:①針對不同的設備集群,采取不同的可靠性設計策略,在提升系統整體可靠性的同時,避免資源浪費;②系統自身容錯能力提升,從而提升指令下發正確率、系統年可用率,增加系統各類設備平均無故障時間,降低系統故障發生頻次,減少系統故障恢復時間;③在業務高峰期,系統運行壓力較大時,可優先保障重點業務正常運行,降低重點業務中斷、出錯風險,避免造成較大損失。