葛以踴,郭海龍,高鑫,吳海偉,陳鵬
(1. 南瑞集團有限公司智能電網(wǎng)保護和運行控制國家重點實驗室,江蘇 南京 211106;2. 南瑞集團(國網(wǎng)電力科學研究院)有限公司,江蘇 南京 211106;3. 國電南瑞 科技股份有限公司,江蘇 南京 211106;4. 國家電網(wǎng)有限公司西北分部,陜西 西安 710048;5. 國網(wǎng)江蘇省電力有限公司,江蘇 南京 210024)
新一代電網(wǎng)調度控制系統(tǒng)采用“物理分布、邏輯統(tǒng)一”的體系架構[1],監(jiān)控系統(tǒng)本地建設,分析決策中心業(yè)務集中建設[2],通過采用所轄電網(wǎng)實時就地監(jiān)控與全局分析決策相結合的策略[3],進一步提升電網(wǎng)調度控制系統(tǒng)的支撐能力。分析決策中心集中建設能夠綜合全局信息,為各區(qū)域提供控制目標,實現(xiàn)集中式控制決策[3]。為了保障系統(tǒng)的穩(wěn)定可靠運行,分析決策中心進行異地多點建設,引入業(yè)務多活機制,實現(xiàn)多個中心的故障冗余及各分析決策中心地位均等,同時對外提供服務,并確保單個分析決策中心故障時其他中心對核心業(yè)務或全部業(yè)務的快速接管[4]。
分析決策業(yè)務多活機制實現(xiàn)了全局負載均衡、中心容錯、階段結果數(shù)據(jù)同步、斷點續(xù)算和業(yè)務單元化等功能[4],其中全局負載均衡機制用于實現(xiàn)多中心間業(yè)務分流與容錯。
新一代電網(wǎng)調度控制系統(tǒng)中,分析決策中心的業(yè)務在運行時,通過場景、場景實例、子場景、子場景實例四元組信息進行管理[5],每個業(yè)務都運行在特定的場景四元組之下,包含了一組運行中的進程,這些進程向外界提供一系列的功能服務。人機云終端作為客戶端,部署在各監(jiān)控系統(tǒng),提供了位置無關的人機交互功能[6],支持本地、異地無差別訪問,可以連接到指定的分析決策中心進行服務調用,來展示分析決策業(yè)務的計算狀態(tài)、統(tǒng)計數(shù)據(jù)、計算結果等信息。
傳統(tǒng)的多中心間一般通過全局負載均衡(global server load balance,GSLB)設備來實現(xiàn)負載分流[7],在系統(tǒng)內構建域名解析系統(tǒng)(domain name server,DNS),GLSB設備根據(jù)策略將域名解析到某個中心[8—9]。新一代電網(wǎng)調度控制系統(tǒng)業(yè)務沒有統(tǒng)一的域名管理信息,并且部分調控系統(tǒng)業(yè)務的應用業(yè)務(如實時發(fā)電計劃)在多中心不是對等部署[10],只在一個選定的分析決策中心(業(yè)務主中心)進行計算,因此基于DNS的分流方式不能滿足特定的功能需求。另外,由于DNS緩存周期長等原因,傳統(tǒng)基于DNS的全局負載分流[11]在一個中心故障時,切換到新中心通常需要花費較長時間,不能滿足分析決策業(yè)務快速切換的需求。
文中介紹的負載均衡功能能夠綜合場景信息、服務信息及位置信息,將客戶端請求根據(jù)負載均衡策略分流到運行指定應用業(yè)務中心,并能快速檢測中心故障,完成故障中心訪問業(yè)務的切換,滿足新一代調控系統(tǒng)客戶端數(shù)據(jù)展示、操作控制的需求,有效支撐了分析決策中心業(yè)務的異地多活。
電網(wǎng)調度控制系統(tǒng)業(yè)務多活環(huán)境下,基于場景與服務狀態(tài)的負載分流實現(xiàn)方法,將客戶端請求分流到滿足負載分流策略的運行指定應用業(yè)務的分析決策中心,實現(xiàn)人機終端的數(shù)據(jù)展示、操作控制與業(yè)務場景工作中心服務相關聯(lián)。負載分流功能既支持所有中心都提供服務的應用,也支持只在部分中心提供服務的應用。針對不同的應用場景,負載分流功能會根據(jù)場景與服務分布情況進行分流。
調度控制系統(tǒng)包含建設在異地的多個分析決策中心,應用業(yè)務運行于多個中心。從整體上看,各中心的所有應用業(yè)務對外提供服務,對于某些特定的應用業(yè)務,存在一個工作的主中心。
負載分流功能主要由中心健康狀態(tài)檢查模塊、場景信息同步與選舉模塊、服務信息全局同步模塊、中心分流定位模塊及客戶端接口模塊共5個部分來實現(xiàn)。在每個分析決策中心的對外關口服務器上,運行前4個模塊的服務程序,用于檢測中心狀態(tài)、同步場景及服務信息,同時為客戶端提供查詢服務。
分析決策中心負載均衡技術按照一定的策略,將來自客戶層的訪問請求均衡到不同的分析決策中心,實現(xiàn)各中心在正常狀態(tài)下都能分擔業(yè)務處理,達到“活起來”的目標[4]。負載均衡采用全局與本地相結合的兩級分層設計,能夠根據(jù)均衡策略以及業(yè)務場景[12—14]、服務的實時運行狀態(tài)與資源使用情況,將客戶端請求分流到特定的中心,如圖1所示。
圖1 兩級負載均衡示意Fig.1 Schematic diagram of two-stage load balancing
本地負載均衡采用通用的服務器負載均衡 (ser-er load balance,SLB)做法。文中主要研究GSLB。
新一代電網(wǎng)調度控制系統(tǒng)中的業(yè)務以服務和場景的形式廣域部署在多個分析決策中心,為不同系統(tǒng)的業(yè)務訪問者提供服務。新一代電網(wǎng)調度控制系統(tǒng)提出的基于服務與場景的業(yè)務區(qū)分形式能夠更加多元化、精細化地對外提供業(yè)務,因此要求業(yè)務訪問時需要以基于服務與場景查詢的實現(xiàn)方式來定位業(yè)務。
GSLB服務以集群的方式廣域部署在多個分析決策中心,用于實現(xiàn)多個分析決策中心之間的負載分流,使業(yè)務請求可以定位到不同分析決策中心的本地負載均衡集群節(jié)點。GSLB服務的進程運行在各中心的對外關口節(jié)點上,GSLB服務之間完全獨立、對等,單個中心的GSLB服務故障不影響系統(tǒng)運行,客戶端可以配置任意中心的GSLB服務進行服務的查詢與定位。GSLB可以使用的策略包括隨機分配、就近分配、應用層狀態(tài)分配[7,12](定位到延遲小、負載輕、性能好并且關聯(lián)業(yè)務場景在線運行的中心)等。GSLB獲取中心容錯狀態(tài)(詳見2.2節(jié))檢測結果,一旦發(fā)現(xiàn)某個分析決策中心異常,自動暫停分發(fā)請求到該中心,當檢測到中心恢復正常后,自動將新的請求分發(fā)到該中心。
GSLB框架包括中心狀態(tài)健康檢查、全局服務管理、全局場景信息同步與選舉、中心分流定位服務及客戶端接口等功能。
中心狀態(tài)健康檢查模塊部署于各中心的關口節(jié)點上,通過在各中心間發(fā)送心跳報文的方式檢測中心運行狀態(tài);全局服務管理模塊收集本中心的服務信息,并將服務信息在不同中心間進行同步;場景信息同步與選舉模塊收集本中心場景信息并將其同步到其他中心,同時為每一個場景在所有中心中選舉唯一中心作為該場景的主中心;客戶端接口向人機云終端提供場景或服務的查詢接口,供其調用以查詢運行對應場景或服務的中心信息;中心定位分流服務接收到客戶端的查詢請求后,根據(jù)請求內容查詢在中心間相互同步的場景或服務信息,并根據(jù)對應的負載均衡為人機云終端分配符合客戶端需求的中心,將中心信息返回給客戶端,供客戶端后續(xù)調用相關服務或者場景,如圖2所示。
圖2 負載分流功能模塊Fig.2 Diagram of load shunt function models
負載均衡策略是中心分流定位模塊在響應客戶端負載分流查詢請求時選擇相應中心的依據(jù),文中實現(xiàn)的負載分流策略包括隨機分配、就近分配及應用層狀態(tài)分配。
隨機分配策略是指在收到查詢請求后,在運行指定業(yè)務場景的中心中隨機選擇一個中心,作為響應該客戶端應用請求的中心。
就近分配策略根據(jù)請求來源的IP地址信息,選擇與其位置相近且運行了所要查詢業(yè)務場景的中心作為響應該客戶端應用請求的中心。如果就近中心中沒有所要查詢的業(yè)務場景,則在其他運行該運行場景的中心中隨機選取一個作為響應該客戶端應用請求的中心。
應用層狀態(tài)分配策略選取延遲小、負載輕、性能好并且關聯(lián)業(yè)務場景在線運行的中心作為響應該客戶端應用請求的中心。
負載均衡功能包括中心狀態(tài)檢查、場景信息同步與選舉、全局服務管理、中心分流定位服務以及提供給應用程序調用的客戶端接口。
中心狀態(tài)檢查模塊負載檢查各分析決策中心內部狀態(tài)及中心間的狀態(tài);場景信息同步與選舉完成中心內場景信息獲取及場景信息在中心間同步,同時在各中心中為各場景選舉主中心;全局服務管理模塊負責各中心內部服務信息的收集和服務信息在中心間的同步;中心分流定位服務接收客戶端的查詢請求,并根據(jù)負載均衡策略將客戶端的請求定位到不同中心;客戶端接口供應用程序調用,以查詢自己所需的場景或服務所在中心。
中心狀態(tài)健康檢查模塊包括中心間心跳發(fā)送接收機制以及中心內部關鍵功能檢查機制。中心內部檢查關鍵通信設備的可達性與關鍵服務的可用性,如果內部關鍵功能異常,則認為當前中心故障,并通過心跳告知其他中心。另外如果收不到某個中心的心跳報文,則也認為該中心故障。中心狀態(tài)提供給中心分流定位模塊,作為分流時的參考。
中心內功能檢查檢測中心內關口節(jié)點與中心內關鍵節(jié)點網(wǎng)絡狀態(tài)以及中心內關鍵業(yè)務的運行來確定本中心的工作狀態(tài),并將中心狀態(tài)以心跳報文的方式發(fā)送到其他中心。
中心間心跳檢查包括網(wǎng)絡運行狀態(tài)檢測與業(yè)務運行狀態(tài)檢測2個方面,通過部署在各分析決策對外關口節(jié)點上的中心運行狀態(tài)感知功能完成,如圖3所示。對外關口節(jié)點上的網(wǎng)絡運行狀態(tài)檢測通過向中心內關鍵通信設備發(fā)送控制報文協(xié)議(internet control message protocol,ICMP)請求,并接收ICMP響應來監(jiān)測關口節(jié)點與中心內部其他節(jié)點的網(wǎng)絡狀態(tài),同時將本中心的狀態(tài)信息以心跳報文的形式發(fā)送到其他中心的關口節(jié)點以判斷本中心與其他中心的網(wǎng)絡狀態(tài)。業(yè)務運行狀態(tài)檢測監(jiān)視本中心各業(yè)務場景的運行狀態(tài)、服務運行狀態(tài),及時發(fā)現(xiàn)場景、服務的異常情況并將以上信息在各中心間同步,以作為中心間業(yè)務切換的依據(jù)。
圖3 中心運行狀態(tài)感知Fig.3 Diagram of center running state awareness
GSLB通過中心運行狀態(tài)感知功能,快速識別分析決策中心故障,并利用該信息來分流客戶層訪問請求。中心容錯示意如圖4所示,當各中心狀態(tài)正常時,GSLB根據(jù)選定的負載均衡策略[7—8]將業(yè)務請求分配到對應中心,當分配的中心發(fā)生故障時,GSLB會將業(yè)務請求重新分配到其他狀態(tài)正常的中心,以確保業(yè)務請求在至少有一個中心狀態(tài)正常的情況下都可以得到響應。
圖4 中心容錯示意Fig.4 Schematic diagram of center fault tolerance
調控系統(tǒng)業(yè)務中有一些特定的應用業(yè)務不能在多中心對等部署,只在一個選定的分析決策中心(業(yè)務主中心)進行計算,并向外提供服務,此時客戶端發(fā)出的計算控制指令只有送給業(yè)務主中心才能執(zhí)行,人機展示只有連到業(yè)務主中心才能獲取正確的數(shù)據(jù)信息。因此需要對分析決策中心間的場景信息進行同步,并在多個中心中選舉出一個中心作為場景的主中心。
2.2.1 同步機制實現(xiàn)
為選舉業(yè)務場景的主中心,需要將中心內的場景信息在多中心間進行同步,以確保每個中心都能獲取到相同的場景信息,為場景主中心選舉提供數(shù)據(jù)參考。
每個中心的關口節(jié)點上的場景信息同步與選舉服務會收集本中心場景信息,將場景四元組信息與中心唯一ID組合為一個全局唯一的值,并將中心內這些唯一的值以心跳報文的形式在各中心間進行同步。
2.2.2 選舉機制實現(xiàn)
場景信息同步與選舉服務在中心間同步場景信息會將最早獲取到場景信息的時間也同步到其他中心,場景信息同步與選舉服務首先接收各中心的心跳報文,并從中獲取到各中心的場景信息。當超過一定時間場景,信息不再發(fā)生變化時,選舉服務再根據(jù)場景信息中的時間戳,在多個中心中選舉出時間戳最早的場景所在中心作為該場景的主中心,如果所有場景信息獲取的時間恰好一致,則選取場景信息中所屬中心ID較小場景所在中心作為主中心。同時,如果場景主中心已經選舉完成,之后又收到其他新接入中心的場景信息,并且場景信息獲取到的時間比當前主中心上的場景信息的時間更早,也不再重新選舉,以保證場景主中心的穩(wěn)定性,如圖5所示。
圖5 場景信息同步與主場景選舉示意Fig.5 Schematic diagram of synchronize of scenario and master center select
2.2.3 查詢主場景實現(xiàn)
場景信息同步與選舉模塊對各中心的場景進行同步與管理。業(yè)務應用在分析決策中心運行時,通過場景、場景實例、子場景、子場景實例四元組信息進行管理,每個業(yè)務應用都運行在特定的四元組之下。業(yè)務應用下的進程向外界提供一系列的功能服務,等待客戶程序(如:人機云終端)調用。各中心的四元組信息互相之間同步,形成全局的場景信息。
場景信息同步與選舉模塊實現(xiàn)中心間的場景選舉與切換。場景選舉與切換根據(jù)全局的場景四元組信息進行,如果某場景已有全局主場景,需要通過心跳進行維持;如果沒有,則將中心優(yōu)先級最高的那個場景選為主場景。應用根據(jù)選舉結果,確定當前中心是不是工作主中心,是否需要進行計算與對外提供服務。
服務信息全局同步模塊進行多中心間服務信息同步。各中心內部的服務信息由服務管理功能實現(xiàn),服務信息全局同步模塊從各中心的服務管理模塊獲得服務信息,在各中心間交互,最終形成全局的分析決策中心服務信息,如圖6所示。
圖6 服務管理示意Fig.6 Schematic diagram of service management
根據(jù)系統(tǒng)的總體架構,全局服務信息同步功能實現(xiàn)了一、二級分析決策中心間、同級分析決策中心多活站點間、分析決策中心與模型數(shù)據(jù)中心間以及分析決策中心與監(jiān)控系統(tǒng)間的服務信息的同步。在一、二級分析決策中心間相互同步少量的必要的服務信息;同級分析決策中心多活站點間相互同步各自中心內的服務信息;分析決策中心與模型數(shù)據(jù)中心間以及分析決策中心與監(jiān)控系統(tǒng)間的同步方式相同,由模型數(shù)據(jù)中心或監(jiān)控系統(tǒng)將自身服務信息同步到任意一個分析決策中心,分析決策中心只將必要的分析決策中心內的服務信息同步到模型數(shù)據(jù)中心或監(jiān)控系統(tǒng)[15],模型數(shù)據(jù)中心或監(jiān)控系統(tǒng)間不需要同步服務信息。不同中心間的全局服務信息同步采用可配置的方式完成。
中心分流定位模塊響應客戶端負載分流查詢請求,提供中心定位服務。通過綜合中心狀態(tài)信息、全局場景信息、全局服務信息,給出滿足客戶端需求的中心。默認情況下,根據(jù)負載均衡策略分配中心;當查詢參數(shù)包含場景、場景實例、子場景、子場景實例時,除了滿足指定的負載均衡策略外,還要選擇有該場景四元組的中心;當指定要查詢主場景中心時,則返回主場景中心。
中心分流定位模塊根據(jù)客戶端提供的參數(shù)查詢,綜合全局場景信息、全局服務信息、客戶端位置信息獲得特定的工作中心。客戶端可以向任意一個中心的中心分流定位模塊發(fā)送定位查詢請求。
由于業(yè)務場景同時部署在多個分析決策中心,如果所有客戶端請求都集中到某一中心,必然會造成該中心業(yè)務提供者負載過高,造成請求響應不及時甚至業(yè)務場景故障的情況,因此需要對客戶端請求按照一定的負載均衡策略進行分流。
客戶端在訪問業(yè)務場景時,首先需要向任意一個分析決策中心的關口節(jié)點的中心分流定位服務查詢所請求服務或業(yè)務場景的所屬中心,關口節(jié)點上的中心分流定位服務根據(jù)各分析決策中心的狀態(tài)及服務或業(yè)務場景負載均衡策略選取合適的分析決策中心,作為該客戶端請求的業(yè)務場景的響應中心,并將包含該中心關口節(jié)點地址等內容的信息返回到客戶端,客戶端根據(jù)分流結果進行正常的服務或業(yè)務場景請求,如圖7所示。
圖7 客戶端分流示意Fig.7 Schematic diagram of client distribute
客戶端接口模塊提供給人機終端等客戶程序使用。新一代調控系統(tǒng)客戶訪問業(yè)務應用的服務時,需要首先調用負載分流提供的客戶端接口(見表1),獲取所要訪問業(yè)務的中心信息,中心分流模塊根據(jù)客戶端請求信息及應用在中心間的分布情況為該客戶端分配合適的中心,客戶端獲取到分配的中心后直接訪問對應中心的相關服務。該分流方式需要客戶程序主動調用查詢接口。
表1 負載均衡接口Table 1 Application programming interface of load-balance
文中搭建了實驗驗證環(huán)境,并完成相關關鍵技術實驗驗證。
實驗驗證環(huán)境如圖8所示,由3個分析決策中心、2個監(jiān)控系統(tǒng)組成。其中,分析決策中心A與監(jiān)控系統(tǒng)1位于南京,其他部分部署在北京。
圖8 業(yè)務多活測試驗證環(huán)境示意Fig.8 Schematic diagram of multi-active technologies verification environment
在分析決策中心A、B、C上部署實時場景下場景實例與子場景實例均為1的數(shù)據(jù)庫服務子場景,并部署運行于該場景下的模型修改服務,在3個不同的工作站上查詢上述場景及服務對應的中心關口節(jié)點地址。模擬分析決策中心在故障、斷網(wǎng)、正常情況下的中心關口節(jié)點地址返回情況以及在不同負載均衡策略下的返回情況。驗證結果如下。
(1) 模擬中心故障后,查看中心狀態(tài)信息,發(fā)現(xiàn)故障中心狀態(tài)由正常變?yōu)楣收?說明中心狀態(tài)健康檢查能夠迅速識別出各中心的狀態(tài),并作為負載分流模塊分流時的參考,確保負載分流模塊只會將狀態(tài)正常的中心的關口節(jié)點信息返回給客戶端。
(2) 模擬當前人機云終端定位到的中心故障,之后重新定位人機服務關口節(jié)點,經過5 s左右,可由故障中心切換到狀態(tài)正常的中心,說明GSLB服務在當前分流中心發(fā)生故障后能快速將人機云終端的訪問請求分流新的中心。
(3) 為人機工作站配置所屬中心信息并發(fā)起負載分流請求,全局負載分離會根據(jù)配置信息將根據(jù)工作站的請求分流到指定中心;將人機工作站所屬中心配置刪除后再發(fā)起負載分流請求時,負載分流模塊會將客戶端請求隨機分配到任意狀態(tài)正常的中心。證明全局負載分流模塊可以根據(jù)不同的策略完成客戶端請求的分流。
文中在參考傳統(tǒng)GSLB的基礎上,結合電網(wǎng)調控系統(tǒng)分析決策中心業(yè)務的特點,提出了分析決策中心業(yè)務多活技術框架和相關關鍵技術。實驗驗證表明,該技術滿足新一代電網(wǎng)調度控制系統(tǒng)“物理分布、邏輯統(tǒng)一”體系架構下分析決策中心的異地建設需求,實現(xiàn)了多個分析決策中心間負載均衡與故障冗余切換。后續(xù)將開展故障分析決策中心恢復正常后投運帶來的相關技術問題研究,進一步完善分析決策中心業(yè)務多活技術方案。