天天看點

Centos7之pacemaker高可用安裝配置詳解

申明: centos7的pacemaker與之前6使用的方法不一緻,即使用centos6.x的方法在centos7.x上面配置pacemaker不能成功。 是以openstack 上面的centos7.1如果使用官方文檔直接配置高可用HA也是無法成功的。(吐槽:openstack的liberty出的HA方案官方文檔不适用于centos7.x) 關于openstack liberty版本的高可用HA方案請參考下述實驗!!!

PS:與pacemaker高可用方案相對  應的  keepalived原理(主從配置+haproxy)及配置檔案詳解  請參  考博文: http://blog.csdn.net/tantexian/article/details/50056229

centos7配置pacemaker官方文檔位址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/High_Availability_Add-On_Administration/ch-startup-HAAA.html

pacemaker使用翻譯: http://clusterlabs.org/doc/zh-CN/Pacemaker/1.1/html-single/Clusters_from_Scratch/

Centos7之pacemaker高可用安裝配置詳解
Pacemaker’s key features include:
  • 監測并恢複節點和服務級别的故障
  • 存儲無關,并不需要共享存儲
  • 資源無關,任何能用腳本控制的資源都可以作為服務
  • Supports   fencing (also referred to as the   STONITH acronym,  deciphered later on) for ensuring data integrity
  • 支援大型或者小型的叢集
  • Supports both quorate and resource-driven clusters
  • Supports practically any redundancy configuration
  • 自動同步各個節點的配置檔案
  • 可以設定叢集範圍内的ordering, colocation and anti-colocation
  • Support for advanced service types
    • Clones:為那些要在多個節點運作的服務所準備的
    • Multi-state: for services with multiple modes (e.g. master/slave, primary/secondary)
  • Unified, scriptable cluster management tools

本次實驗環境: centos7.1 

node31:172.31.2.31 node32 :  172.31.2.32

node31、node32兩台機器上面都安裝pacemaker,是以下述操作都需要在兩天機器上面執行。

1、配置防火牆端口及關閉selinux systemctl   disable firewalld 

systemctl stop firewalld

iptables -F

2、配置hostname:  hostnamectl --static --transient  set-hostname node31  hostnamectl --static --transient  set-hostname node32

vim /etc/hosts

3、時間同步: yum install ntp -y ntpdate cn.pool.ntp.org

4、雙機互信(本次實驗發現,不配置雙機互信似乎也不會出現問題): ssh-keygen -t rsa

複制id_rsa.pub檔案: scp /root/.ssh/id_rsa.pub  [email protected]:/root/.ssh/authorized_keys

Centos7之pacemaker高可用安裝配置詳解

注:在node32執行同樣的互信操作。

5、安裝pacemaker叢集相關元件: yum install pcs   pacemaker   corosync   fence-agents-all -y    

6、啟動pcsd服務(開機自啟動) systemctl   start pcsd  .  service systemctl   enable pcsd  .  service

7、建立叢集使用者: passwd hacluster(此使用者在安裝pcs時候會自動建立)

Centos7之pacemaker高可用安裝配置詳解

上述所有操作都需要在兩個節點上面執行。

8、叢集各節點之間進行認證: pcs cluster auth node31 node32(此處需要輸入的使用者名必須為pcs自動建立的hacluster,其他使用者不能添加成功)

Centos7之pacemaker高可用安裝配置詳解

9,建立并啟動名為my_cluster的叢集,其中node31 node32為叢集成員: pcs cluster setup --start --name my_cluster node31 node32

10、設定叢集自啟動: pcs cluster enable --all

Centos7之pacemaker高可用安裝配置詳解

11、檢視并設定叢集屬性:

檢視目前叢集狀态: pcs cluster status
Centos7之pacemaker高可用安裝配置詳解

檢查pacemaker服務: ps aux | grep pacemaker

檢驗Corosync的安裝及目前  corosync狀态: corosync-cfgtool -s corosync-cmapctl | grep members pcs status corosync

檢查配置是否正确(假若沒有輸出任何則配置正确): crm_verify -L -V

禁用  STONITH: pcs property set stonith-enabled=false

無法仲裁時候,選擇忽略: pcs property set no-quorum-policy=ignore

Centos7之pacemaker高可用安裝配置詳解

12、pcs resource資源屬性配置:

Pacemaker / Corosync 是 Linux 下一組常用的高可用叢集系統。Pacemaker 本身已經自帶了很多常用應用的管理功能。但是如果要使用 Pacemaker 來管理自己實作的服務或是一些别的沒現成的東西可用的服務時,就需要自己實作一個資源了。

其中Pacemaker 自帶的資源管理程式都在 /usr/lib/ocf/resource.d 下。其中的 heartbeat 目錄中就包含了那些自帶的常用服務。那些服務的腳本可以作為我們自己實作時候的參考。 更多關于自定義資源請參考博文: http://blog.csdn.net/tantexian/article/details/50160159

接下來針對一些常用的pcs指令進行簡要講解。

檢視pcs resource針對資源操作用法: pcs resource help 

檢視pcs支援的資源代理标準: pcs resource providers

Centos7之pacemaker高可用安裝配置詳解

注:  Pacemaker 的資源主要有  ocf、lsb、  service、  systemd、  stonith幾大類  。LSB是為了促進 Linux 不同發行版間的相容性,LSB(Linux Standards Base)開發了一系列标準,使各種軟體可以很好地在相容 LSB 标準的系統上運作, LSB 即 Linux 标準服務,通常就是 /etc/init.d 目錄下那些腳本。Pacemaker 可以用這些腳本來啟停服務,可以通過  pcs resource list lsb檢視  。  另一類 OCF 實際上是對 LSB 服務的擴充,增加了一些高可用叢集管理的功能如故障監控等和更多的元資訊。可以通過   pcs resource list ocf     看到目前支援的資源。要讓 pacemaker 可以很好的對服務進行高可用保障就得實作一個 OCF 資源。  CentOS7   使用systemd替換了SysV。Systemd目的是要取代  Unix  時代以來一直在使用的init系統,相容SysV和  LSB  的啟動腳本,而且夠在程序啟動過程中更有效地引導加載服務。

檢視pacemaker支援資源高可用的清單: pcs resource list

假若想檢視httpd(apache)可使用:  pcs resource list | grep apache

Centos7之pacemaker高可用安裝配置詳解
具體apache用法: pcs resource describe ocf:heartbeat:apache
Centos7之pacemaker高可用安裝配置詳解

繼續閱讀