- 論壇徽章:
- 0
|
搭建基于Linux具有高可用性的集群環(huán)境
反饋:史應生shiyingsheng@yahoo.com
文章下載地址:http://blogimg.chinaunix.net/blog/upfile2/071113164433.pdf
高可用性是企業(yè)級服務器集群的一個重要元素,可以幫助在服務器宕機的情況下減小服務的"downtime".
本文章從技術的角度,講述了目前主流的Linux發(fā)行版(Red Hat和Novell)的高可用產品的構架和特性。
適合讀者:
中/高級的Linux 系統管理員
企業(yè)IT部門的決策者
方案構架師
對高可用有興趣的所有人
一.高可用概念:
高可用集群軟件通常要包括幾個通用的特性。至少要提供:
1.一種機制來定義哪些系統可以被用作集群節(jié)點
2.哪些服務或者應用可以在節(jié)點間作失效切換(fail-over)
3.節(jié)點間內部相互通信的方式
4.當失效的節(jié)點控制相同的集群資源的情況下,防止資源的沖突
5.防止集群裂腦(split-brain)發(fā)生
6.Fence機制或者更加復雜的I/O fence機制
7.提供集群合作管理的機制
8.提供監(jiān)控工具
9.預先定義的應用和服務的監(jiān)控腳本
二.Heartbeat和SUSE Linux Enterprise Server
Heartbeat來自于High-Availability項目 (www.linux-ha.org)。SLES9和SLES10所帶的版本不同,SLES9包含的版本是Heartbeat1.x, 它允許創(chuàng)建2個節(jié)點的集群,提供基本的高可用性failover服務。SLES10包含的版本是Heartbeat2.x.它允許創(chuàng)建多個節(jié)點的集群,提供增強的特性
2.1) Heartbeat 1.x的特性
Heartbeat1.x允許集群節(jié)點和資源通過/etc/ha.d目錄下面的兩個文件來配置
ha.cf:定義集群節(jié)點,失效檢測和切換時間間隔,集群時間日志機制和節(jié)點Fence方法
haresources: 定義集群資源組,每一行定義可以一起進行失效切換的一個默認的節(jié)點和一組資源,資源包括IP地址,文件系統,服務或者應用
2.2) Heartbeat 2.0的特性
Heartbeat 2.0 即支持基于Heartbeat1.x 的配置(僅限于2個節(jié)點)又支持模塊結構的配置方法-集群資源管理器(Cluster Rescource Manager-CRM).
CRM模型可以支持最多16個節(jié)點,這個模型使用基于XML的集群信息(Cluster Information Base-CIB)配置。CIB文件(/var/lib/heartbeat/crm/cib.xml)會在各個節(jié)點間自動復制,它定義了下面的對象和動作:
*集群節(jié)點
*集群資源,包括屬性,優(yōu)先級,組和依賴性
*日志,監(jiān)控,仲裁和fence標準
*當服務失敗或者其中設定的標準滿足時,需要執(zhí)行的動作
圖一顯示了Heartbeat2.0結構的關鍵元素。
Consensus Cluster Membership服務使用選舉機制允許集群節(jié)點決定指定的協調器(Designated Cooridnator-DC),它來幫助建立仲裁,管理集群節(jié)點成員關系和資源分配。DC維護集群的狀態(tài)和管理策略。其他的節(jié)點必須轉發(fā)狀態(tài)改變請求到DC處理。Heartbeat服務檢查節(jié)點和連接狀態(tài)來決定失效是否發(fā)生,集群事件日志服務(ha-logd)提供集群套件中所有服務的日志功能。
為了控制集群資源,本地資源管理器(Local Resource Manager-LRM)啟動,停止和監(jiān)控資源代理。LRM守護進程(lrmd)負責和DC的集群時間通信。節(jié)點的fence代理是一種特殊的資源,由node-fencing進程stonithd控制。stonith的意思是"Shoot the Other Node in the Head",主要是使出現問題的節(jié)點從集群環(huán)境中脫離。fence設備包括串行或者基于網絡的電源切換設備或者遠程管理硬件。
當節(jié)點不能正常通信時,fence防止不同子集的節(jié)點運行相同的資源。這種情況叫做裂腦。裂腦通過使用應用設計,節(jié)點fencing或者資源指定的fencing來避免。
CRM守護進程(crmd)管理CIB,它允許對節(jié)點和資源的行為的高級限制和依賴。集群策略引擎(pengine)解釋和實施這些限制和依賴。集群轉移引擎(tengine)管理CRM的狀態(tài)和在出現失效事件時協調在另一個節(jié)點上進程的重新啟動和資源轉移。
2.3)配置工具
Heartbeat2.0.5,包含在SLES10中,引入了GUI工具用于集群的管理和監(jiān)控。它包括監(jiān)控腳本樣本來協助通用Linux服務和應用的配置,包括基于xinetd的服務,Apache服務,IBM DB2數據庫,IBM WebSphere應用服務器。許多其他的應用,例如NFS,Samba也可以進行配置。Heartbeeat2.0 遵循Open Cluster Framework (OCF)資源代理應用編程接口,允許使用通用的LSB初始化腳本和集群相關的OCF資源初始化腳本。
每個版本的Heartbeat也可以配置為結合Linux Virtual Server功能的用于IP負載均衡的功能。這取決于被配置的服務和資源的需求, 共享存儲,是否使用集群文件系統的并發(fā)訪問機制等等,與Oracle的OCFS的結合會在Heartbeat的下一個版本中集成。
在SLES10中包含在Heartbeat2.0.5中的GUI工具簡化了配置。同時,Novell也計劃使用Heartbeat2.0的核心服務作為將來Novell Cluster Services(NCS)軟件的基礎。NCS是獨立license的,包括了預先定義的資源類型,GUI配置工具和監(jiān)控工具。
三.Red Hat Cluster Suite (RHCS) 和 Red Hat Enterprise Linux 4
RHCS專門為Red Hat Enterprise Linux設計包含了下面兩個不同類型的集群
應用和服務切換:創(chuàng)建關鍵應用和服務的多節(jié)點服務器的集群環(huán)境
IP 負載均衡:對于進來的IP網絡請求在一群服務器組中做負載均衡
集群的主要元素包括Cluster Manager (CMAN),Cluster Configuration System (CCS) 和 Resource Group Manger (rgmanager).圖二顯示了在任何指定的時間運行在一個節(jié)點上的不同的服務和守護進程的關系
CCS提供訪問位于每一個節(jié)點的單一集群配置文件/etc/cluster/cluster.conf.配置文件包括版本號,它在集群任何時候改變時都會更新。ccsd運行在每一個節(jié)點上。當ccsd啟動后,它找到節(jié)點間最新版本的配置文件。
CMAN用于管理集群成員,消息和通知。CMAN包括一套內核補丁和一個用戶空間程序 (cman_tool).
cman_tool用于使一個節(jié)點加入或者離開集群。改變集群的投票期望值。CMAN依賴于CCS.
組資源管理器進程(clurgmgrd)處理管理員指定的集群服務(也稱之為資源),包括管理員的請求比如服務啟動,服務禁止,服務重新加載和服務重啟動。它也處理在服務失效時,服務的重新啟動和服務重定向。
3.1 配置工具
RHCS支持16個節(jié)點的集群。GUI的配置工具是system-config-cluster.集群配置包括:資源信息,節(jié)點信息,fencing設備信息和失效域信息。這些信息以XML的格式存儲在每個節(jié)點的/etc/cluster/cluster.conf文件中。這些資源在一個服務下被組織成資源組。
失效域是集群成員的子集。失效域有一下的特性:
無限制 — 允許你指定要優(yōu)選的成員子集,但是被分派到這個域的服務可以在任何可用的成員上運行。
有限制 — 允許你限制能夠運行某個特定服務的成員。如果在限制的失效轉移域中沒有一個可用的成員,服務就無法被啟動(手工啟動或被群集軟件啟動)。
無序 — 當服務被分派給一個無序的失效轉移域,運行服務的成員就會從失效轉移域成員中不按優(yōu)先順序被選擇。
有序 — 允許你在失效轉移域成員中指定一個優(yōu)選順序。在列表最前面的是最優(yōu)先的,跟著是次一級的,依此類推。
按照默認設置,失效轉移域是無限制和無序的。
CCS 支持集群信息的在線改變,而且會自動同步到其他的節(jié)點。
3.2 失效切換能力
類似于STONITH,fence設備是一個節(jié)點在它重新啟動它的服務前可以power cycle另一個節(jié)點。
Fence設備可以在一個沒有響應的節(jié)點恢復后,防止數據沖突。如果CMAN檢測到一個節(jié)點失敗, 失敗的節(jié)點會從集群中刪除。如果不使用fence設備,那么一個失效的節(jié)點可能會導致集群服務在多余一個節(jié)點運行,從而造成數據沖突甚至是系統崩潰。
四.針對這兩個廠家的商業(yè)高可用性解決方案如何選擇:
表1 對Red Hat 和 Novell 高可用軟件的作了技術比較。
| SUSE Linux Enterprise Server with Heartbeat | Red Hat Cluster Suite | | | | | | | | Heartbeat2.x
支持16個節(jié)點 | | | | | | | | | | |
個人認為:
對于費用敏感的企業(yè)Heartbeat是個不錯的選擇,它在Novell的發(fā)行版中提供。
對于想尋求易用的企業(yè)可以選在RHCS和它的GUI功能。RHCS和RHEL是獨立的產品 |
|