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