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文件:
[[email protected] ~]# 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地址:
[[email protected] 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命令大全