申明: 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/
Pacemaker’s key features include:
|
本次實驗環境: 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
注:在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時候會自動建立)
上述所有操作都需要在兩個節點上面執行。
8、叢集各節點之間進行認證: pcs cluster auth node31 node32(此處需要輸入的使用者名必須為pcs自動建立的hacluster,其他使用者不能添加成功)
9,建立并啟動名為my_cluster的叢集,其中node31 node32為叢集成員: pcs cluster setup --start --name my_cluster node31 node32
10、設定叢集自啟動: pcs cluster enable --all
11、檢視并設定叢集屬性:
檢視目前叢集狀态: pcs cluster status 檢查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 |
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 注: 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 具體apache用法: pcs resource describe ocf:heartbeat:apache |