摘要:為了保障國網生產管理系統 7×24小時不間斷安全穩定運行,對F5負載均衡的虛擬服務器和負載均衡算法以及JGroups緩存同步、Web服務器集群、Oracle數據庫RAC等技術進行了分析和研究,設計出一套軟硬件系統架構,并對這一架構進行詳細的闡述和論證。
關鍵詞:生產管理系統;負載均衡器;服務器集群;單點故障
作者簡介:茆德柱(1978-),男,江蘇金湖人,國網電力科學研究院信息通信技術分公司,工程師;閆訓超(1975-),男,江蘇沛縣人,國網電力科學研究院信息通信技術分公司,工程師。(江蘇 南京 211100)
中圖分類號:TM7 文獻標識碼:A 文章編號:1007-0079(2013)27-0197-02
國網生產管理系統(State GridProduction Management System,簡稱PMS)是為了滿足國網公司建設“一強三優”現代公司的需要,實現安全生產精細化管理的目標,由國網公司統一組織建設,依據公司總部、網省和地市三級生產管理的業務特點,并結合當前實際業務進行設計,實現電網生產的規范化、標準化和精細化管理,提高電網生產管理水平。
對于一個提供電網生產管理的系統來說,系統的穩定性和性能是不言而喻的。如果系統在大并發的訪問壓力情況下宕機,就直接影響到電網運行檢修等管理工作,因此構建一個穩定且高效的系統是尤其重要的。如何應對大并發訪問,保障系統7×24小時不間斷運行是系統面臨的重點難題。本文采用F5作為應用服務器前端的負載均衡以及JGroups緩存同步技術解決了上述的問題。
一、負載均衡以及JGroups技術
1.負載均衡技術
負載均衡建立在現有網絡結構之上,它提供一種廉價有效透明的方法擴展網絡設備和服務器的帶寬,增加吞吐量,加強網絡數據處理能力,提高網絡的靈活性和可用性。
負載均衡從其應用的地理結構上分為本地負載均衡和全局負載均衡(地域負載均衡)。本地負載均衡是指對本地的服務器群做負載均衡;而全局負載均衡是指對多個地理位置、多種網絡結構的服務器群間做負載均衡。PMS系統作為全省大集中部署所以只研究本地負載均衡。
本地負載均衡能有效地解決數據流量過大、網絡負荷過重的問題,且不需花費昂貴開銷購置性能卓越的服務器,充分利用現有設備,避免服務器單點故障造成系統宕機。對運行的群集進行擴容,只需增加新的服務器到群集中,而不需改變現有網絡結構或停止系統。
從實現方式上區分,負載均衡分為軟件和硬件方式。軟件方式是指在服務器上安裝軟件實現負載均衡,如DNS負載均衡、代理服務器、地址轉換網關等。其優點是配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。[1]但缺點較多:需要安裝額外的軟件,軟件會消耗系統資源,功能越強大消耗得越多,所以當請求特別大的時候,軟件本身將成為系統瓶頸;軟件可擴展性差,易受操作系統的限制;軟件方式存在單點故障點,如一旦出現故障,整個系統將不可用。一般而言,軟件方式適用于訪問量小且不要求7×24小時全天候運行的系統。
硬件方式是直接在服務器與網絡間安裝負載均衡設備,獨立于系統之外,加上多種負載均衡算法、智能化的流量管理,可使系統達到最佳性能和穩定性。[2]硬件以F5 BIG-IP LTM(簡稱F5)為代表,可做4-7層負載均衡,具有負載均衡、應用和會話交換、狀態監控等功能。硬件方式適用于負載量大且要求7×24小時全天候運行的系統。
F5的主要功能如下:
(1)支持最小連接數、輪詢、最快響應、哈希、預測、觀察、動態比例等流量分發算法,將來自客戶端的流量分發到后臺應用服務器上,而面對客戶端,只有一個IP地址或域名。
(2)秒級監控應用程序模塊的狀態,一旦模塊繁忙或宕機將不再向其發送新的請求到故障模塊上,群集里只要有相同模塊能夠正常使用,客戶端訪問就不會受其影響。當故障模塊恢復,能夠自動識別并加入群集。
(3)具有動態Session(或源IP地址)的會話保持功能。
(4)由兩臺F5組成的主備模式的系統中,當主設備出現故障時能夠將請求無縫切換至備用設備上,消除了設備的單點故障,提高了系統的高可用性。這一特性適合7×24小時全天候運行的系統。
2.JGroups緩存同步技術
JGroups是基于Java技術的組播通訊工具,其工作模式基于IP組播技術,支持在可靠性和群組成員管理上進行擴展,使用靈活的協議棧,適用于服務器集群、多服務器通訊、服務器復制、分布式緩存等。[3]
JGroups可靠性:使用重傳丟失信息技術保證群組消息發送到所有接收者;將大塊消息分解成多個小塊消息發送,并在接收方重新組裝;確保消息發送和接受的順序性;保證消息收發的原子性,消息被所有成員接收到或都收不到。
JGroups成員管理:獲得每個分組的成員信息;當新成員加入、當前成員離開或掉線時,組內成員均獲得通知。
JGroups主要功能:組的創建與刪除,組成員在LAN或WAN環境內互相發送消息;檢測并通知成員加入、離開、掉線并移除已掉線的成員;消息的組播和消息的點對點發送;支持UDP、 TCP、JMS等傳輸協議;免費開源代碼。
二、PMS的負載均衡實現
1.系統架構
PMS采用省公司集中部署,省、地市、工區三級應用,采用JAVA技術開發。為了提高系統的性能和高可用性,采用兩臺HP RX8640小型機作為數據庫服務器,數據庫軟件采用Oracle10G RAC,采用多臺HP3850 PC服務器作為應用服務器,其操作系統采用 RedHat Linux 5.3,WEB服務器中間件采用Weblogic9i進行單節點部署,并使用2臺F5以主備模式旁路接入網絡構建負載模式,保證系統的高可用性。系統采用多層企業級架構,按照四層方式部署,即網站系統和應用服務部署在不同的物理層次,從而提供更高的安全性。其硬件架構如圖1所示。
使用F5,將客戶端請求有效分發到多臺應用服務器上,將日常業務應用、任務調度模塊和對外接口模塊分拆成三個不同群集,有效避免了任務調度和對外接口影響日常業務的正常進行,也提高了對外接口的效率及任務調度的穩定運行,提高了系統整體的穩定性和性能。而對于三個不同群集里的應用服務器,任何幾臺應用服務器出現宕機時,只要有一臺服務器正常就不會影響系統應用的正常訪問。兩臺數據庫采用Oracle RAC,只要其任一節點正常,數據都能增刪改查,當任一節點數據庫出現異常時也不會影響系統的運行。利用兩臺互備的F5可以保證其中一臺F5出現異常可秒級切換,真正做到高可用性,保證系統在7×24小時不間斷運行。
2.系統群集緩存同步
為了提升系統的性能,減少應用服務對數據庫的訪問,PMS系統采用了數據緩沖機制,實現了業務模型從數據庫獲取的數據存放在應用服務器端內存的機制。但在群集環境下,會導致用戶在多臺應用服務器上讀取同組數據而結果不一致。
為了保證數據的一致性,采用JGroups緩沖同步技術對業務模型進行局部緩沖刷新。在群集一個節點中的緩沖更改后,能夠及時通知其他節點。為了提高同步效率,采用增量刷新的優化策略。通過在集群的多個服務節點之間分發負載和多級緩沖,減少對數據庫服務的訪問,避免復雜業務規則的重復計算過程,提升系統整體運行效率。
為了避免三個群集的緩沖同步數據互相干擾,在三個不同的群集中采用不同的組播地址和端口。對于JGroups而言只能在同一組群集之間進行緩沖同步。并且組中的成員是動態的,應用服務器可以隨時加入或者離開群集。這樣既保證了數據的一致性又提高系統整體的性能。
3.系統群集監控
為了讓F5能夠高效分發,將請求分發到有效的應用服務器上,必須配置健康檢查。否則請求會發送到假死的應用服務器上,造成系統訪問異常。
F5的健康檢查有最低限度的IP地址檢查(采用Ping命令檢查服務器是否存活)、應用端口檢查(檢查相應的TCP/UDP端口是否激活來確定服務的狀態),以及高級的HTTP應用檢查(通過應用的健康檢查頁面返回值與初設參數是否一致)。
本系統采用高級的HTTP應用檢查,每5秒向服務器發送/MWWebSite/CheckState.jsp 和/MWWebSite/CheckState.jsp檢查請求,若在2秒內不能正常得到“CheckOk”返回值即表示該模塊失效。F5會將請求轉發其他服務器上,實現請求的正常轉發,提高了系統的穩定性。設置參數如表1所示。
表1 設置參數
Monitor配置Send參數Receive參數
1GET /MWWebSite/CheckState.jsp HTTP/1.1\r\nCheckOk
三、結束語
對于國網的生產管理系統而言,由于省公司集中部署,且密切關系到電網的日常生產管理工作,其重要性是不言而喻的。若沒有良好的硬件架構和可靠的軟件系統,對7×24小時不間斷運行的要求是無法滿足的。通過采用F5負載均衡設備和緩存同步JGroups技術提高了用戶性能和可用性。在迎峰度夏期間能夠滿足高并發的業務模塊安全穩定運行,得到國網公司領導及基層用戶的認可,對促進國網公司生產管理規范化和標準化、提高國網公司生產管理水平和執行力意義深遠。
參考文獻:
[1]安凝.F5為網上應用加速[J].計算機安全,2006,(1).
[2]李建,鄭偉才,等.利用F5_BIG_IP設備實現浙江天氣網負載均衡[J].計算機與網絡,2012,(8).
[3]JGroups掀起Java群組通訊風潮[EB/OL].http://tech.ccidnet.com/art/3565/20040606/480363_1.html.2012.