當前,企業內普遍搭建了郵件、門戶、OA、財務、人力資源等應用系統,極大提高了企業辦公效率,產生了大量的業務數據。這些系統如果采用單節點架構,一旦出現軟硬件故障,可能導致系統停止服務,甚至產生業務數據丟失的情況。
所以,應采用雙機或集群架構,在出現故障后,系統內部能夠自動切換,連續提供服務,提高系統可用性。
但是,集群架構對于企業而言,前期的軟硬件投入和后期運行管理成本較高,往往由于集群內部復雜的技術設計,可能產生額外的系統停機。所以,相對于雙機架構的性價比較低,采用雙機架構提高系統可用性,是企業首選之舉。

圖1 郵件系統雙機設計架構圖
以郵件系統為例,使用2臺服務器部署郵件應用,后端共享SAN存儲,提供統一的郵件數據和數據庫數據的存儲。2臺郵件應用服務器搭建HA,實現雙機熱備,雙機設計架構圖如圖1所示。
雙機的網卡1,通過網絡直連,作為心跳線,檢測雙機運行狀態。
雙機熱備采用一主一備的切換方式,其中Mail1為Active,Mail2 為 Standby。當心跳線檢測到正在提供服務的Mail1節點出現故障時,則自動切換到Mail2節點繼續提供服務。
在雙機共享存儲上創建一塊分區,允許雙機訪問,雙機定期向該分區寫入雙機硬件狀態,當正在提供服務的Mail1節點出現故障時,硬件狀態寫入異常,自動切換到Mail2節點繼續提供服務,從而實現磁盤仲裁機制,為心跳線檢測雙機運行狀態提供冗余。
雙機的網卡2,通過網絡,連接對端的遠程管理口,配置并建立Fence(即雙機故障隔離機制)。當正在提供服務的Mail1節點出現故障,又不能及時釋放資源時,Mail2節點通過遠程管理口對Mail1節點進行遠程重啟,將故障節點隔離出雙機系統,避免雙機爭搶資源時,無法正常提供服務的情況出現。
雙機的網卡3分別配置業務IP地址(即服務器的真實地址),雙機工作時由一個浮動IP地址對外提供服務,服務器的真實IP地址對用戶透明,雙機軟件將具體提供服務的節點的真實地址與浮動IP地址進行綁定。
以Linux操作系統為例,進行郵件系統雙機部署的主要內容如下:
(1)Mail1、 Mail2 安 裝相同版本的操作系統,且相應操作系統配置也完全相同。
(2)保證本地硬盤分區一致。
(3)掛載的共享存儲的設備名稱相同。
(1)Mail1、 Mail2 的 郵件系統服務設置為開機關閉狀態,并統一由雙機軟件接管。
(2)雙機服務設置為開機自啟動。
修改/etc/hosts文件,將域名解析地址設置為郵件域名,IP地址設置為服務地址(上文的浮動IP)。
(1)對存儲進行初始化設置。
(2)按照仲裁盤、用戶信息、數據庫數據、郵件主程序及郵件數據等進行分區。
(1)創建仲裁盤。
(2)添加雙機啟動腳本程序。
(3)配置/etc/cluster/cluster.conf文件。
(4)設置時鐘同步。
(5)將以上配置在Mail1和Mail2上進行同步。
詳細內容見表1。

表1 雙機切換測試
詳細內容見表2。

表2 常見問題處理
基于雙機熱備架構,采用主備方式進行雙機切換的應用系統,當主節點出現應用服務異常、網絡不通、硬件宕機等突發故障時,通過雙機熱備機制自動切換到備節點,保證了業務的連續性和系統的可用性。而且易于維護,管理成本較低。