集群(Cluster)技術是一種通過軟硬件技術,將一組物理上相互獨立的服務器在系統中整合為邏輯上為單一的系統,這些獨立的服務器共用一個磁盤存儲。集群系統和單臺服務器比較,具有高性能、高可靠和高擴展性,其核心技術是任務調度、服務器狀態監聽和負載均衡。服務器集群系統根據不同的特征可以有多種分類方法,目前業界通常把集群系統分為兩類:高可用性集群(High Availability Cluster,簡稱HA集群)和高性能計算集群(High Performance Computing Cluster,簡稱HPC集群)。高可用集群就是采用集群技術來實現計算機系統的高可用性,它通常有兩種工作方式:容錯系統和負載均衡系統。容錯系統通常是主從服務器方式,從服務器檢測主服務器的狀態,當主服務工作正常時,從服務器并不提供服務,一旦主服務器失效,從服務器就開始代替主服務器向客戶提供服務。負載均衡系統是集群中所有的節點都處于活動狀態,它們分攤系統的工作負載。一般Web服務器集群、數據庫集群和應用服務器集群都屬于這種類型。
1 集群系統設計與實現
以某石化公司MES系統為例,該系統為公司生產運行提供從生產調度、生產執行、質量控制到生產統計分析全過程的業務管理,提高生產運行效率,滿足煉廠生產運行業務的需求。對于公司來說,高可靠、高性能和多業務承載的集群系統是為生產管理提供支撐的關鍵。
根據MES系統服務器軟硬件要求,從專業系統開發、實施和維護的角度考慮,該公司MES系統生產環境需部署2臺SCSI磁盤陣列和10臺服務器,其中服務器包括:2臺Oracle數據庫服務器、2臺PHD-SQL服務器、1臺WPKS服務器、1臺APP服務器、1臺LIMS數據庫服務器、1臺LIMS應用服務器和2臺域控服務器。在硬件架構設計上,主要針對Oracle數據庫服務器、SQL Server數據庫服務器和PHD實時數據庫服務器采用服務器集群。
Oracle數據庫服務器集群使用2臺IBM X3850主機,每臺采用英特爾Xeon Processor E7-4820處理器,64G內存,四口千兆以太網卡,操作系統為Windows Server 2008 R2,數據庫管理系統為Oracle EntERPrise Edition 11g,使用Oracle RAC技術實現數據庫集群。每臺服務器的第一塊網卡接入公網交換機,配置公網IP;第二塊網卡作為心跳線,兩臺服務器直連,配置私有IP;第三塊網卡連接磁盤陣列,與磁盤陣列提供的IP地址在同一網段。在兩臺服務器的/etc/hosts文件中定義虛擬IP地址,當運行Oracle Universal Installer時,該程序啟動Oracle的虛擬互聯網協議配置助手,也就是說Oracle能夠自動配置公共虛擬IP地址。當運行srvctl start nodeapps –n <node_name>命令時,所有的虛擬IP地址將被激活。Oracle RAC可以實現多節點負載均衡,提供系統高可用性,故障容錯能力極強,其拓撲結構如圖1所示。
圖1
PHD實時數據庫和SQL Server數據庫安裝在一起,設計為故障轉移集群。PHD-SQL服務器集群使用2臺IBM X3850主機,每臺采用英特爾Xeon Processor E7-4820處理器,64G內存,四口千兆以太網卡,操作系統為Windows Server 2008 R2,采用Microsoft Cluster Server(MCS)實現服務器集群。每臺服務器的第一塊網卡接入公網交換機,配置公網IP;第二塊網卡直連作為心跳線,配置私有IP;第三塊網卡連接磁盤陣列,與磁盤陣列提供的IP地址在同一網段。另外使用兩臺B類服務器,其中一臺用作為域控服務器,另外一臺作為冗余域控服務器,安裝Windows Server 2008操作系統,更新所有系統補丁,并安裝域控管理軟件,接入交換機并配置公網IP地址。PHD-SQL數據庫服務器集群拓撲結構如圖2所示。
圖2
磁盤陣列采用HP P2000 SCSI磁盤陣列柜,安裝20塊300G硬盤,總容量為6TB,其中預留4塊磁盤作為熱備盤,其余磁盤陣列方式為RAID5。其分區明細如下:
1區:1.99TB,分配給2臺PHD-SQL服務器做實時數據庫Cluster集群;
2區:5GB,分配給2臺PHD-SQL服務器,用于集群設計的心跳連接緩存區;
3區:600GB,分配給2臺PHD-SQL服務器,用于SQL集群;
4區、5區和6區平均分配剩余空間,每個約600GB,分配給2臺oracle服務器做RAC集群。
為了保證系統在某臺服務器出現故障時能正常運行,必須構造容錯系統。在MES系統中,容錯主要包括故障診斷和故障替換兩部分。我們用心跳檢測(heartbeat)來診斷故障,監控服務器每隔5秒向被監控服務器發出檢測信息包,被監控服務器中的心跳守護程序返回應答信息和有關的狀態信息,如被監控服務器不能及時響應,就認為被監控服務器出現故障。
故障替換應用在主從兩臺服務器之間,在主服務器有故障時,自動切換到后備服務器。主服務器與后備服務器都可以處于活動狀態(active)和非活動狀態(inactive)兩種狀態之一。當主服務器與后備服務器皆處于無故障正常狀態時,主服務器為活動狀態,執行系統服務,而非活動狀態服務器執行監督活動服務器的任務。一旦非活動服務器檢測到活動服務器出現故障,就進行故障切換,原來非活動服務器成為活動服務器,啟動服務和虛擬IP地址,并響應客戶機服務請求,而原來活動服務器則停止服務。
當集群中一臺服務器發生故障而由另一臺節點機來接替其服務時,為了保持集群內服務器的切換對其它應用服務器是固定的,就必須提供公共虛擬IP(VIP)地址。提供服務的節點切換時,該VIP隨之移到新的服務節點。
2 集群測試
集群創建后測試集群的狀態非常重要,要測試其是否能夠滿足MES系統正常運行,必須關注兩個方面。一方面是當任意一臺服務器故障時,另一臺服務器是否能夠在較短的時間內提供服務;另一個方面是共享數據是否準確無誤。
首先采用Windows集群管理器中提供的測試。在主服務器上打開集群管理器,選擇主服務器下線,同時在應用服務器上使用TPI訪問數據庫服務器,約30秒后即可正常訪問,說明服務從主服務器成功切換至備用服務器。
另外模擬服務器宕機進行測試。將主服務器強制關機,同時在應用服務器上使用TPI訪問數據庫服務器,約50秒后可正常訪問,說明在主服務器宕機后,服務可以成功切換至備用服務器。
最后,在數據庫中寫入大量測試數據,并模擬主服務器宕機,系統服務切換至備用服務器后,經檢查數據庫服務器中的測試數據準確無誤,說明集群服務提供的共享數據完整,能夠滿足MES系統運行要求。
3 結論
利用ORACLE RAC集群技術,使用兩臺IBM數據庫服務器(共享存儲HP P2000磁盤陣列)成功安裝了兩個節點的ORACLE RAC集群,該集群為MES系統提供了較好的后臺數據庫支撐;另外,利用Microsoft Cluster Server(MCS)實現PHD和SQL Server數據庫服務器集群,為MES系統提供了穩定的實時數據庫平臺。Oracle數據庫服務器、PHD實時數據庫服務器何SQL Server數據庫服務器集群的成功創建,實現了服務器故障時的自動診斷和自動切換,能夠避免因為服務器故障導致的系統服務終止,保證了MES系統運行的高可用性。集群技術隨著服務器硬件系統與操作系統的發展將會在高可用性、高可靠性、系統冗余等方面逐步提高,利用服務器的集群技術,通過周密計劃和網絡維護,系統破壞的機率是非常小的,因此對用戶來說,使用集群技術的MES系統可以大大地增強服務器的穩定性,滿足系統7×24小時的運行需求。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:服務器集群技術在某石化公司MES/ERP系統中的應用
本文網址:http://www.guhuozai8.cn/html/consultation/10819912226.html