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