corosync+pacemaker:在配置corosync时最好具有三个以上的节点,并且节点个数 为奇数个,如果使用偶数个节点的话也没关系,只是要关闭不具有法定票数的决策 策略功能

支持的服务在pacemaker目录/usr/lib/ocf/resource.d/heartbeat

环境:

三台机器:centos7-docker-test1 10.1.1.170

                      centos7-docker-test2 10.1.1.169

                      centos7-docker-test3 10.1.1.171

集群IP:10.1.1.207

 1.   配置这3台机器互相识别主机名:

例如在10.1.1.170机器上/etc/hosts文件:

[root@centos7-docker-test1 ~]# more /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.1.1.171  centos7-docker-test3

10.1.1.169  centos7-docker-test2

10.1.1.170  centos7-docker-test1

2.  三台机器关闭防火墙,setenforece为0,安装ntp服务,保证两台机器时间同步

#setenforce 0

#systemctl disable firewalld.service

#systemctl stop firewalld.service

#iptables --flush

 安装时间服务:

yum install ntp

systemctl start ntpd

systemctl enable ntpd

ntpdate cn.pool.ntp.org

3. 在三台机器上安装corosync和pacemaker安装包:

yum install  -y pacemaker pcs psmisc policycoreutils-python

安装完毕后,会产生一个系统用户hacluster

4. 启用pcs

#systemctl enable pcsd.service

#systemctl restart pcsd.service

#passwd hacluster(三台机器密码保持一致)

5. 在一台机器上执行集群认证:

pcs cluster auth -u hacluster -p futong-jw centos7-docker-test1 centos7-docker-test2 centos7-docker-test3

6 .   在一台机器上执行cluster同步配置

#pcs cluster setup --start --name mycluster 10.1.1.170 10.1.1.169

此命令会在三台机器的/etc/corosync目录中增加corosync.conf配置文件

7 .  每次重启自动启动集群:

#pcs cluster enable --all

两个节点时,忽略quorum功能:

pcs property set no-quorum-policy=ignore

8. 检验:

#pcs status corosync

#pcs  status

 9.    配置共享资源

pcs property set stonith-enabled=false  禁用stonith设备

 pcs resource create VIP ocf:heartbeat:IPaddr2 ip=10.1.1.207  cidr_netmask=24 op monitor  interval=30s            #配置共享IP

 #配置http服务HA,注意:所有节点上的http服务都必须先关闭,http HA才可以正常运行,因此安装好httpd服务后,不要配置随系统自动启动功能

缺省apache中没有启动status模块,所以先启用status需要的模块  #所有节点上都要做这个设置

grep status_mod /etc/httpd/conf/httpd.conf

httpd -M | grep status

Vi httpd.conf

<Location /server-status>

     SetHandler server-status

     Order deny,allow

     allow from all

</Location>

http://blog.itpub.net/29620572/viewspace-1773071/  httpd.conf配置说明

pcs resource create web-server1 apache configfile="/etc/httpd/conf/httpd.conf"  statusurl="http://127.0.0.1/server-status"  

还要设置主机ClusterIP和web-server1应运行在统一节点上,这样才能充分利用集群IPde价值

pcs constraint colocation add Web ClusterIP INFINITY

还要设置这两个启动的先后次序

pcs constraint order ClusterIP then Web

配置mysql,系统中取消mysql自启动,并停止mysql运行:

pcs resource create mysql-server mysql config="/etc/my.cnf" datadir="/var/lib/mysql" user="root"

pcs constraint colocation add mysql-server VIP1 INFINITY

pcs constraint order VIP1 then mysql-server

10. 查看目前集群状态

#pcs status

11. 可做如下两个测试:

1)  关闭目前运行资源的节点,则资源转移到其他节点上

2 )删去目前运行资源节点上的httpd软件,则VIP和web资源同时迁移到其他节点上

查看pcs cluster ip地址:

[root@centos7-docker-test1 etc]# pcs resource show VIP

 Resource: VIP (class=ocf provider=heartbeat type=IPaddr2)

  Attributes: ip=10.1.1.207 cidr_netmask=24 

  Operations: start interval=0s timeout=20s (VIP-start-interval-0s)

              stop interval=0s timeout=20s (VIP-stop-interval-0s)

              monitor interval=30s (VIP-monitor-interval-30s)

http://blog.csdn.net/jemmy858585/article/details/43203375    pcs命令大全