歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux高可用(HA)集群之Pacemaker詳解

Linux高可用(HA)集群之Pacemaker詳解

日期:2017/2/27 15:58:05   编辑:Linux教程
一、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).操作系統
  • CentOS 6.4 X86_64 位系統
(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).命令配置方式
  • crmsh
  • pcs
(2).圖形配置方式
  • pygui
  • hawk
  • LCMC
  • pcs
注:本文主要的講解的是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
Copyright © Linux教程網 All Rights Reserved