楊 沖 馬素霞 吳玉龍
1.華北電力大學控制與計算機工程學院;2.山西世紀中試電力科學技術有限公司楊沖(1986-)男,碩士,工程師,研究方向為計算機軟件與理論。
目前,各電力系統應用開始采用電能質量基礎數據服務獲取所需的電能質量數據,以用來解決由于電能質量數據格式不同或者平臺不同而造成的數據共享問題。但用戶在訪問電能質量基礎數據服務的過程中,服務的可用性不能得到保證,服務的低可用性會使得用戶不能及時獲得電能質量數據。本文提出并實現了一種基于負載均衡技術的高可用性集群方案,旨在提高電能質量基礎數據服務的可用性。方案的網絡架構分為數據層、應用層和負載均衡功能層。負載均衡功能層通過IP 虛擬服務器和心跳檢測等技術來管理部署有電能質量基礎數據服務的應用層。
在智能電網運行過程當中,電能質量數據占據著越來越重要的位置。電能質量信息系統能夠采集、存儲電能質量數據,并依此來進行指標評估、問題分析和綜合治理以及數據展示。但電能質量數據格式千差萬別,來源多種多樣且互不兼容。這使得不同的電力應用之間難以進行數據共享,造成數據浪費?;赪eb Service 技術的電能質量基礎數據服務使得應用可以通過Web 服務的形式獲取到約定格式的電能質量數據,從而解決了數據共享的難題。然而基礎數據服務對服務提供方的可用性提出了很高的要求,Web 服務器的突發(fā)宕機,計算機網絡的中斷,Web服務器軟硬件的故障都會降低服務的可用性??紤]到電力系統應用對實時性有較高的要求,電能質量基礎數據服務的低可用性必然會加大電力應用獲得異常數據的概率,使得根據數據得到的分析決策出現偏差,從而造成社會供電危害和經濟損失。
本文采用的基于負載均衡技術的集群方案可以大大提高電能質量基礎數據服務的可用性,此方案通過將電能質量基礎服務發(fā)布到若干的分立系統中來提高服務提供方處理請求的整體能力。即使集群的某部分出現了故障,系統仍然能夠處理Web 服務的訪問請求。
電能質量基礎數據包括穩(wěn)態(tài)基礎數據和事件基礎數據,它是電網安全穩(wěn)定運行的核心要素。目前電能質量基礎數據的來源主要包括PQView 數據庫、基礎數據庫和監(jiān)測前端。
1)PQView 數據庫
PQView 是美國電科院與美國電力公司于九十年代初期開發(fā)的目前世界上一個成熟的、全面的電能質量專用的數據庫管理、分析與數據應用軟件。它不斷的將采集到的數據上傳并處理,存儲于其支持的開放式ODBC 數據庫即PQView 數據庫中。
2)基礎數據庫
基礎數據庫的數據來自電能質量采集和解析模塊,具體的數據來源包括電能質量監(jiān)測終端、電壓監(jiān)測儀采集來的數據,例如PQDIF 數據文件;也包括來自其他系統的電能質量數據,如PQView 數據庫。
3)監(jiān)測前端
監(jiān)測前端由監(jiān)測設備、監(jiān)測數據服務器組成。不同類型的監(jiān)測設備從現場采集電能質量數據,然后形成各自格式的數據文件,最終將這些電能質量數據文件上傳到各自的監(jiān)測數據服務器中存儲。
綜上所述,電能質量基礎數據的來源多種多樣、數據格式千差萬別、互不兼容?;赪eb Service 技術的電能質量基礎數據服務有助于充分利用電能質量數據,改善數據壁壘現狀。
首先,Web 服務因其具有語言獨立性、平臺無關性、跨地域、等特點,可以有效消除“信息孤島”現象,運行在不同機器上的電力應用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數據。
其次,Web Service是自描述、自包含的可用網絡模塊,可以執(zhí)行具體的業(yè)務功能。文獻[1]提出了開發(fā)一個電能質量基礎數據服務系統來解決數據共享的問題,系統將異構數據源的數據解析并轉換為特定XML格式的基礎數據,然后以接口的形式向外提供服務。通過基礎數據服務得到的電能質量數據可以用來進行數據分析,能及時發(fā)現電能質量問題,實現電能質量信息的共享。
電能質量基礎數據服務基于Web Service 技術,它的網絡特性決定了服務的局限性。一方面Web 服務器或設備的物理故障以及計算機網絡的中斷都會造成基礎數據服務的中斷,從而降低服務的可用性。另一方面,當Web服務器同一時刻處理的訪問請求數量超過其負載能力的時候,Web 服務將不可訪問。
對此,我們需要尋求一種提高電能質量基礎數據服務可用性的解決方案,來達到電力系統應用對電能質量基礎數據服務高可用性的要求,實現服務的無故障運行。基于負載均衡技術的集群方案就能顯著提升服務的可用性。
高可用性,它是指Web 服務保持一直在線并可用的能力,常用的衡量標準是可用性服務等級協議(SLA)。它會指出Web 服務器每年需要在多長時間內能正常工作、保持可用才達到高可用性的標準。
單一故障點,指網絡架構中導致系統或者系統組件在執(zhí)行其預期安全功能時失效的故障節(jié)點。它是一個單一系統,如果它出現了故障,整個系統都會無法工作。
我們采用基于負載均衡技術的集群方案來解決基礎數據服務可用性低的問題,即使集群的某部分出現了故障,電能質量基礎數據服務系統依然能夠正常工作,提供穩(wěn)定的Web 服務;同時大大提高基礎數據服務提供方處理大量訪問請求的能力。為了達到這個目標,我們構建一個備用系統,實現Web 服務的功能冗余。此集群采用負載均衡技術來實現,它的主要優(yōu)勢在于已經通過搭建的共享負載服務器的形式實現了冗余,而且不必采用昂貴的軟硬件設備。它的主要手段是數據和服務的冗余備份及失效轉移,一旦集群中的某些服務器宕機或者Web 服務訪問請求超過負載能力,就將電能質量基礎數據服務切換到其他可用的服務器上,如圖1 所示。
當Web 服務器集群中的服務器都可用時,負載均衡服務器會把用戶發(fā)送的訪問請求分發(fā)到任意一臺服務器上進行處理,當服務器10.0.0.1 宕機時,負載均衡服務器通過心跳檢測機制發(fā)現該服務器失去響應,就會把它從服務器列表中刪除,而將請求發(fā)送到其他服務器上,請求在任何一臺服務器中處理都不會影響最終結果。
解決電能質量基礎數據服務低可用性的集群方案包括數據層、應用層、負載均衡功能層。數據層包含基礎的電能質量數據;應用層每臺Web 服務器都部署了電能質量基礎數據服務,向上層提供Web 服務訪問功能;負載均衡功能層包含兩臺以上負載均衡服務器,它負責管理和分配集群從外部接收到的訪問請求,管理應用層服務器的使用?;谪撦d均衡的高可用性集群方案網絡架構如圖2 所示。
圖1 負載均衡原理
圖2 利用負載均衡服務器實現高可用的集群
本文提出的基于負載均衡的高可用性集群方案的架構是一個分層的網絡架構。搭建集群時,關鍵在于負載均衡功能層的實現。首先,要實現集群在創(chuàng)建虛擬服務器時,以自動化方式來指定要使用的服務器。其次,要解決網絡架構中單一故障點的問題,如圖1 所示IPVS 使用的負載均衡服務器為單一故障點。最后,維護多臺負載均衡服務器,就需要多個負載均衡服務器IP 地址。針對上述三個問題,我們分別采用IP 虛擬服務器、故障恢復服務器和虛擬IP 地址來解決。
IP 虛擬服務器(IPVS)是用來進行負載均衡的工具。它的主要用途是為Web 服務器提供一個“前端”,處理入向基礎數據服務器訪問請求。然后將這些請求發(fā)給各個部署有電能質量基礎數據服務的Web 服務器來響應。
IPVS 通過建立一個或多個虛擬服務來工作。它會將所有Web 服務器都分配給該服務,并為每個服務創(chuàng)建一個LINUX 前端。這個前端將訪問請求先聚集到該負載均衡服務器,再將每個請求的負載分發(fā)給作為虛擬服務一部分的Web 服務器。然后這些Web 服務器來處理這些請求,加入到這個虛擬服務的工作服務器越多,每臺Web 服務器要處理的前端分配過來的請求就越少。
在LINUX 中有個專門和IPVS 搭配工作的守護進程,使用它可以實現集群在創(chuàng)建虛擬服務器時,以自動化的方式指定要使用的Web 服務器。因此,兩臺負載均衡服務器上要安裝集群軟件包ipvsadm 和ldirectord。
如圖1 所示,IPVS 使用的負載均衡服務器明顯是一個單一故障點。如果該負載均衡服務器停止了工作,用戶就不能對電能質量基礎數據服務進行訪問。
解決方法就是引入故障恢復服務器,如圖2 所示,在負載均衡服務器1 出現故障時用負載均衡服務器2 替代它。除了增加故障恢復服務器,我們還需要一種機制來允許備用負載均衡服務器監(jiān)測主負載均衡服務器上是否出現了故障,然后接管所有負載。這個應用稱為heartbeat。它會同時跟兩臺負載均衡服務器保持聯系,一旦主服務器出現了故障,備用服務器就會接管。
Heartbeat 是一個集群管理程序,它是一個分布式的高可靠的程序。當集群運行心跳程序后,兩個負載均衡服務器之間經常性的傳遞心跳數據包,通知對方“我活著”這樣的信息,當負載均衡服務器1 的心跳信息無法被負載均衡2 接收到,并且這種情況持續(xù)了一段時間,心跳程序將開始收回負載均衡服務器1 的資源,選擇負載均衡服務器2 對負載均衡服務器1 的任務進行接管。當負載均衡服務器1 的心跳信息重新能夠被負載均衡服務器2 接收到的時候,心跳程序就允許負載均衡服務器1 重新加入集群,提供服務。
如圖2 所示,使用虛擬IP 地址的集群,集群的IP 地址在任一時間可以屬于任意一臺服務器;集群中,拿到該虛擬IP 地址的那臺服務器會代表整個集群連接到外網。即我們可以將所有的入向、出向連接都指向該虛擬IP 地址,而它總會擔當整個集群的接入點。
本文提出并初步實現了一種基于負載均衡技術的高可用性集群方案,提高了電能質量基礎數據服務的可用性,對智能電網中Web 服務的部署具有參考意義。
本文提出的集群架構在以下方面有待進行深入研究。負載均衡技術基于四層交換或者七層交換技術,鏈路層、傳輸層等都可以實現負載均衡。本文只針對應用層進行了負載均衡技術的使用,如何更大限度的把負載均衡技術運用到智能電網的Web 服務中,如何更大程度的提高服務的可用性需要更全面的解決方案。