摘要:該文介紹了高可用系統軟件結構及其工作原理、同時分析了高可用系統的硬件組成,如何采用容錯技術來提高計算機系統的可用性。
關鍵詞:高可用性;磁盤陣列
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)33-9542-02
The Design of the High Useful System
LI Jin-xia
(The Computer Center of Hebei University of Economics and Business, Shijiazhuang 050061, China)
Abstract: The article introduced the software structure and work principle of the high useful function system. At the same time analysed the hard ware form of the high useful function. Adopted the hold wrong technology to improve the useful function of the computer system.
Key words: the high useful function; disk formation
隨著計算機應用技術的發展,數據容量大量增長,廣大用戶對計算機系統整體性能的要求也越來越高,要求有更為完備的手段保障系統運行的高可靠性和不間斷性。高可用性是在相當長的時間段內,系統連續不斷地執行其功能的能力,獲得高可用性最常使用的方式就是容錯。
1 高可用系統的工作過程
HA服務器(HA Daemon)啟動:啟動HA Daemon管理程序,HA Daemon監測服務器資源是否可靠并對服務器進行配置,然后啟動指定的服務和代理程序。
代理程序(Agent)工作:代理程序(Agent)啟動后,可以通過心跳(Heartbeat)監測服務器資源及所有服務的相關進程。
Agent心跳(Heartbeat)檢測:心跳信號(Heartbeat),是一種錯誤檢測機制,包括Agent心跳和服務器心跳(Server Heartbeat)兩種。通過周期性的Agent心跳,Agent代理程序會將服務的可靠性通知HA服務器(HA Daemon)。
HA服務器(HA Daemon)響應:HA服務器(HA Daemon)在預定時間內沒有收到Agent心跳,就預示它所監測的服務出現了故障,此時,HA服務器會執行向備份服務器發出故障信號。
服務器心跳(Server Heartbeat)檢測:HA服務器通過周期性的服務器心跳(Server Heartbeat),會將自身的可靠性通知備份服務器。服務器心跳是通過基于TCP/IP 的Socket或RS-232線來傳送的,如果服務器出現故障,HA管理器將向對方發送服務已死的心跳。
服務(Service)切換:備份服務器(Backup Server)在規定的收到主服務器(Active Server)發出的故障信號后,開始進行服務切換。HA管理器首先停止主服務器上的服務,同時釋放公用IP地址(Swithable IP)和共享磁盤,然后啟動由備份服務器上接管公用磁盤和公用IP地址,接管主服務器上的全部服務。切換完成后,服務自動恢復正常運行。
2 高可用性系統的硬件構成
高可用性系統主要采用集群或雙機容錯、磁盤冗余陣列(RAID)、多路徑故障檢測等技術來保證系統的可靠性。
集群(Cluster):集群是一組被稱為節點的計算機,針對重要服務和資源,如Web服務和數據庫服務,使用兩臺以上的服務器,對于網絡的其他部分來說,這些服務器就象一個單一的實體,一個高可用的“虛擬”服務器,集群在檢測到軟件和硬件故障時,自動將數據和處理的服務轉到無故障的節點,借此提高系統的可用性。
磁盤冗余陣列(Redundant Arrays of Inexpensive Disks):磁盤陣列(RAID)是一項非常優秀的容錯技術,按功能可以分為0至5級,其中RAID1和RAID5最為常用。
磁盤鏡像/硬盤雙工(RAID1):磁盤鏡像指系統保存數據時,會將相同的數據同時寫入到兩塊物理盤上,以防止單個硬盤的物理故障。硬盤雙工指計算機裝有兩個磁盤控制器,使鏡像集中的兩個磁盤都有自己的磁盤控制器,可以同時防止磁盤控制器和磁盤介質的失效。
含奇偶校驗的磁盤條帶集(RAID5):磁盤條帶集是一種磁盤管理技術,創建條帶集需要兩塊以上的硬盤,將這些硬盤的自由空間組織到一個大的邏輯驅動器中。使用條帶集時,數據按順序寫入到所有物理盤中,每次一行,這樣數據就可以均勻地分布到所有的驅動器上。磁盤條帶集沒有數據冗余,不提供任何容錯功能。
RAID5是當前最流行的容錯設計方法,其讀操作有比磁盤鏡像更高的性能。但是,由于寫盤時需要進行奇偶校驗值的計算,需要使用比一般寫操作更大的內存。
多路徑故障檢測:心跳信號(Heartbeat)是一種錯誤檢測機制,是集群節點間保持著的間歇通信信號。通過每一個通信路徑,在兩個對等系統之間進行周期性的握手,如果連續沒有收到的心跳信號到了一定的數目,就把這條路徑標示為失效。
為了減少由于潛在的通訊錯誤所引起的不必要的系統切換,節點之間可以使用不同介質的多條通信路徑。
當通過心跳信號檢測其它服務器失敗時,則認為此服務器是關閉的。使用多種檢測方法確保了系統錯誤能夠被正確識別,可以避免不必要的失效切換。
3 高可用系統的軟件
操作系統(Operating System):主服務器和備份服務器一般需要運行相同版本的操作系統。如:Windows NT/2000、Sun Solaris、Linux等。
服務程序(Service):服務程序在指定的活動服務器上運行,客戶機可以通過連接在該服務器上的網卡上的指定的Active IP 地址來訪問,服務程序由HA軟件來管理,當活動服務器出現故障時,在很短的當機時間內,備份服務器會將服務程序接管過去。主服務由特殊的應用軟件來提供。主服務需要的數據和程序存放在公用磁盤上,這些數據和程序只有運行主服務的服務器可以訪問。
HA管理進程(HA Daemon):HA Daemonand 和HA Monitor Daemon是HA軟件的核心進程,由它來初始化系統配置,接收來自HA代理的信息,并通過專用網與其它服務器的HA管理進程通信,協調運行服務器與備份服務器間的關系。
HA代理(Agent):Agent是一個軟件監視模塊,可以監控數據庫服務或其他應用服務的運行,為了完成特定的任務,用戶可以自己編寫Agent腳本(Script)。
管理工具(Administration Tool):系統管理員通過管理工具管理、監視服務程序的運行狀態。
高可用系統可以自動實現關鍵服務在兩臺服務器之間的切換,在很大程度上減少了管理員的介入,提高了系統的可靠性。系統運行性能穩定可靠,達到了預期效果。
參考文獻:
[1] Snia dictionary N [EB/OL]. http://www.snia.org/education/dictionary/n.
[2] 郭長勇.磁盤陣列與雙機容錯[J].電子計算機與外部設備,1999,23(2):33-37.
[3] 石春和,周新蓮.服務器容錯與磁盤陣列技術的集成[J].計算機應用研究,2001(1).
[4] Rose HA For Solaris安裝配置手冊[M].