一、pacemaker 是什麼
二、pacemaker 特點
三、pacemaker 軟件包供應商
四、pacemaker 版本信息
五、pacemaker 配置案例
六、pacemaker 支持集群架構
七、pacemaker 內部結構
八、pacemaker 源代碼組成
九、Centos6.4+Corosync+Pacemaker 實現高可用的Web集群
一、pacemaker 是什麼
1.pacemaker 簡單說明
pacemaker(直譯:心髒起搏器),是一個群集資源管理器。它實現最大可用性群集服務(亦稱資源管理)的節點和資源級故障檢測和恢復使用您的首選集群基礎設施(OpenAIS的或Heaerbeat)提供的消息和成員能力。
它可以做乎任何規模的集群,並配備了一個強大的依賴模型,使管理員能夠准確地表達群集資源之間的關系(包括順序和位置)。幾乎任何可以編寫腳本,可以管理作為心髒起搏器集群的一部分。
我再次說明一下,pacemaker是個資源管理器,不是提供心跳信息的,因為它似乎是一個普遍的誤解,也是值得的。pacemaker是一個延續的CRM(亦稱Heartbeat V2資源管理器),最初是為心跳,但已經成為獨立的項目。
2.pacemaker 由來
大家都知道,Heartbeat 到了V3版本後,拆分為多個項目,其中pacemaker就是拆分出來的資源管理器。
-
Heartbeat 3.0拆分之後的組成部分:
-
Heartbeat:將原來的消息通信層獨立為heartbeat項目,新的heartbeat只負責維護集群各節點的信息以及它們之前通信;
-
Cluster Glue:相當於一個中間層,它用來將heartbeat和pacemaker關聯起來,主要包含2個部分,即為LRM和STONITH。
-
Resource Agent:用來控制服務啟停,監控服務狀態的腳本集合,這些腳本將被LRM調用從而實現各種資源啟動、停止、監控等等。
-
Pacemaker : 也就是Cluster Resource Manager (簡稱CRM),用來管理整個HA的控制中心,客戶端通過pacemaker來配置管理監控整個集群。
二、pacemaker 特點
-
主機和應用程序級別的故障檢測和恢復
-
幾乎支持任何冗余配置
-
同時支持多種集群配置模式
-
配置策略處理法定人數損失(多台機器失敗時)
-
支持應用啟動/關機順序
-
支持,必須/必須在同一台機器上運行的應用程序
-
支持多種模式的應用程序(如主/從)
-
可以測試任何故障或群集的群集狀態
注:說白了意思就是功能強大,現在最主流的資源管理器。
三、pacemaker 軟件包供應商
目前pacemaker支持主流的操作系統,
-
Fedora(12.0)
-
紅帽企業Linux(5.0,6.0)
-
openSUSE(11.0)
-
Debian
-
Ubuntu的LTS(10.4)
-
CentOS (5.0,6.0)
四、pacemaker 版本信息
pacemaker 版本信息
目前,最新版的是pacemaker 1.1.10 ,是2013年7月發布的
五、pacemaker 配置案例
1.主/從架構
說明:許多高可用性的情況下,使用Pacemaker和DRBD的雙節點主/從集群是一個符合成本效益的解決方案。
2.多節點備份集群
說明:支持多少節點,Pacemaker可以顯著降低硬件成本通過允許幾個主/從群集要結合和共享一個公用備份節點。
3.共享存儲集群
說明:有共享存儲時,每個節點可能被用於故障轉移。Pacemaker甚至可以運行多個服務。
4.站點集群
說明:Pacemaker 1.2 將包括增強簡化設立分站點集群
六、pacemaker 支持集群
1.基於OpenAIS的集群
2.傳統集群架構,基於心跳信息
七、pacemaker 內部結構
1.群集組件說明:
-
stonithd:心跳系統。
-
lrmd:本地資源管理守護進程。它提供了一個通用的接口支持的資源類型。直接調用資源代理(腳本)。
-
pengine:政策引擎。根據當前狀態和配置集群計算的下一個狀態。產生一個過渡圖,包含行動和依賴關系的列表。
-
CIB:群集信息庫。包含所有群集選項,節點,資源,他們彼此之間的關系和現狀的定義。同步更新到所有群集節點。
-
CRMD:集群資源管理守護進程。主要是消息代理的PEngine和LRM,還選舉一個領導者(DC)統籌活動(包括啟動/停止資源)的集群。
-
OpenAIS:OpenAIS的消息和成員層。
-
Heartbeat:心跳消息層,OpenAIS的一種替代。
-
CCM:共識群集成員,心跳成員層。
2.功能概述
CIB使用XML表示集群的集群中的所有資源的配置和當前狀態。CIB的內容會被自動在整個集群中同步,使用PEngine計算集群的理想狀態,生成指令列表,然後輸送到DC(指定協調員)。Pacemaker 集群中所有節點選舉的DC節點作為主決策節點。如果當選DC節點宕機,它會在所有的節點上, 迅速建立一個新的DC。DC將PEngine生成的策略,傳遞給其他節點上的LRMd(本地資源管理守護程序)或CRMD通過集群消息傳遞基礎結構。當集群中有節點宕機,PEngine重新計算的理想策略。在某些情況下,可能有必要關閉節點,以保護共享數據或完整的資源回收。為此,Pacemaker配備了stonithd設備。STONITH可以將其它節點“爆頭”,通常是實現與遠程電源開關。Pacemaker會將STONITH設備,配置為資源保存在CIB中,使他們可以更容易地監測資源失敗或宕機。
八、pacemaker 源代碼組成
說明:大家可以看到Pacemaker主要是由C語言寫的,其次是
Python,說明其效率非常高。最後我們來說一個小案例,實現高可用的Web集群。
九、Centos6.4+Corosync+Pacemaker 實現高可用的Web集群
1.環境說明
(1).操作系統
(2).軟件環境
-
Corosync 1.4.1
-
Pacemaker 1.1.8
-
crmsh 1.2.6
(3).拓撲准備
2.Corosync與Pacemaker 安裝與配置
Corosync與Pacemaker安裝與配置我就不在這裡重復說明了,大家參考一下這篇博文:http://freeloda.blog.51cto.com/2033581/1272417 (Linux 高可用(HA)集群之Corosync詳解)
3.Pacemaker 配置資源方法
(1).命令配置方式
(2).圖形配置方式
注:本文主要的講解的是crmsh
4.crmsh 簡單說明
注:以下上pacemaker 1.1.8的更新說明,最重要的我用紅色標記出來,從pacemaker 1.1.8開始,crm sh 發展成一個獨立項目,pacemaker中不再提供,說明我們安裝好pacemaker後,是不會有crm這個命令行模式的資源管理器的。
[root@node1 ~]# cd /usr/share/doc/pacemaker-1.1.8/
[root@node1 pacemaker-1.1.8]# ll
總用量 132
-rw-r--r-- 1 root root 1102 2月 22 13:05 AUTHORS
-rw-r--r-- 1 root root 109311 2月 22 13:05 ChangeLog
-rw-r--r-- 1 root root 18046 2月 22 13:05 COPYING
[root@node1 pacemaker-1.1.8]# vim ChangeLog
* Thu Sep 20 2012 Andrew Beekhof <[email protected]> Pacemaker-1.1.8-1
- Update source tarball to revision: 1a5341f
- Statistics:
Changesets: 1019
Diff: 2107 files changed, 117258 insertions(+), 73606 deletions(-)
- All APIs have been cleaned up and reduced to essentials
- Pacemaker now includes a replacement lrmd that supports systemd and upstart agents
- Config and state files (cib.xml, PE inputs and core files) have moved to new locations
- The crm shell has become a separate project and no longer included with Pacemaker (crm shell 已成為一個獨立的項目,pacemaker中一再提供)
- All daemons/tools now have a unified set of error codes based on errno.h (see crm_error)
[root@node1 ~]# crm
crmadmin crm_diff crm_failcount crm_mon crm_report crm_shadow crm_standby crm_verify
crm_attribute crm_error crm_master crm_node crm_resource crm_simulate crm_ticket
注:大家可以看到,安裝好pacemaker後,就沒有crm shell命令行工具,我們得單獨安裝。下面我們就來說說怎麼安裝crm sh
From:http://freeloda.blog.51cto.com/2033581/1274533