當前,企業(yè)內(nèi)普遍搭建了郵件、門戶、OA、財務、人力資源等應用系統(tǒng),極大提高了企業(yè)辦公效率,產(chǎn)生了大量的業(yè)務數(shù)據(jù)。這些系統(tǒng)如果采用單節(jié)點架構(gòu),一旦出現(xiàn)軟硬件故障,可能導致系統(tǒng)停止服務,甚至產(chǎn)生業(yè)務數(shù)據(jù)丟失的情況。
所以,應采用雙機或集群架構(gòu),在出現(xiàn)故障后,系統(tǒng)內(nèi)部能夠自動切換,連續(xù)提供服務,提高系統(tǒng)可用性。
但是,集群架構(gòu)對于企業(yè)而言,前期的軟硬件投入和后期運行管理成本較高,往往由于集群內(nèi)部復雜的技術(shù)設(shè)計,可能產(chǎn)生額外的系統(tǒng)停機。所以,相對于雙機架構(gòu)的性價比較低,采用雙機架構(gòu)提高系統(tǒng)可用性,是企業(yè)首選之舉。
圖1 郵件系統(tǒng)雙機設(shè)計架構(gòu)圖
以郵件系統(tǒng)為例,使用2臺服務器部署郵件應用,后端共享SAN存儲,提供統(tǒng)一的郵件數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)的存儲。2臺郵件應用服務器搭建HA,實現(xiàn)雙機熱備,雙機設(shè)計架構(gòu)圖如圖1所示。
雙機的網(wǎng)卡1,通過網(wǎng)絡直連,作為心跳線,檢測雙機運行狀態(tài)。
雙機熱備采用一主一備的切換方式,其中Mail1為Active,Mail2 為 Standby。當心跳線檢測到正在提供服務的Mail1節(jié)點出現(xiàn)故障時,則自動切換到Mail2節(jié)點繼續(xù)提供服務。
在雙機共享存儲上創(chuàng)建一塊分區(qū),允許雙機訪問,雙機定期向該分區(qū)寫入雙機硬件狀態(tài),當正在提供服務的Mail1節(jié)點出現(xiàn)故障時,硬件狀態(tài)寫入異常,自動切換到Mail2節(jié)點繼續(xù)提供服務,從而實現(xiàn)磁盤仲裁機制,為心跳線檢測雙機運行狀態(tài)提供冗余。
雙機的網(wǎng)卡2,通過網(wǎng)絡,連接對端的遠程管理口,配置并建立Fence(即雙機故障隔離機制)。當正在提供服務的Mail1節(jié)點出現(xiàn)故障,又不能及時釋放資源時,Mail2節(jié)點通過遠程管理口對Mail1節(jié)點進行遠程重啟,將故障節(jié)點隔離出雙機系統(tǒng),避免雙機爭搶資源時,無法正常提供服務的情況出現(xiàn)。
雙機的網(wǎng)卡3分別配置業(yè)務IP地址(即服務器的真實地址),雙機工作時由一個浮動IP地址對外提供服務,服務器的真實IP地址對用戶透明,雙機軟件將具體提供服務的節(jié)點的真實地址與浮動IP地址進行綁定。
以Linux操作系統(tǒng)為例,進行郵件系統(tǒng)雙機部署的主要內(nèi)容如下:
(1)Mail1、 Mail2 安 裝相同版本的操作系統(tǒng),且相應操作系統(tǒng)配置也完全相同。
(2)保證本地硬盤分區(qū)一致。
(3)掛載的共享存儲的設(shè)備名稱相同。
(1)Mail1、 Mail2 的 郵件系統(tǒng)服務設(shè)置為開機關(guān)閉狀態(tài),并統(tǒng)一由雙機軟件接管。
(2)雙機服務設(shè)置為開機自啟動。
修改/etc/hosts文件,將域名解析地址設(shè)置為郵件域名,IP地址設(shè)置為服務地址(上文的浮動IP)。
(1)對存儲進行初始化設(shè)置。
(2)按照仲裁盤、用戶信息、數(shù)據(jù)庫數(shù)據(jù)、郵件主程序及郵件數(shù)據(jù)等進行分區(qū)。
(1)創(chuàng)建仲裁盤。
(2)添加雙機啟動腳本程序。
(3)配置/etc/cluster/cluster.conf文件。
(4)設(shè)置時鐘同步。
(5)將以上配置在Mail1和Mail2上進行同步。
詳細內(nèi)容見表1。
表1 雙機切換測試
詳細內(nèi)容見表2。
表2 常見問題處理
基于雙機熱備架構(gòu),采用主備方式進行雙機切換的應用系統(tǒng),當主節(jié)點出現(xiàn)應用服務異常、網(wǎng)絡不通、硬件宕機等突發(fā)故障時,通過雙機熱備機制自動切換到備節(jié)點,保證了業(yè)務的連續(xù)性和系統(tǒng)的可用性。而且易于維護,管理成本較低。