1.在server1和server4上安装haproxy 测试成功,之后关闭haproxy服务 (可以先不操作)
2.在server1和server4(两个节点,相互感应彼此的服务开启状态,实现双机热备)安装pacemaker和corosync
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y
3.修改配置文件名字,修改配置文件,并把配置文件发送一份给server4
totem {
version: 2
secauth: off
threads: 0 #并发开启的线程数,一般单核cpu修改即可,多核cpu不需要修改
interface {
ringnumber: 0
bindnetaddr: 172.25.254.0 #集群工作的网段
mcastaddr: 226.94.1.1 #多播ip,集群节点间通信使用这个多播地址,两个节点的要保持一致
mcastport: 5405 #多播端口号,保持默认即可
ttl: 1
}
}
末尾添加作用是启动corosync完成后,就启动pacemaker
service {
name: pacemaker #服务名称是pacemaker
ver: 0
}
4.在server1和server4上打开corosync服务
/etc/init.d/corosync start
cat /var/log/cluster/corosync.log (日志位置)
5.在server1和server4上安装依赖软件
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y
6.两个节点上做crm_verify -VL 校验
[root@server1 ~]# crm_verify -VL (校验会有错误信息是因为fence默认开启的)
error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
Errors found during check: config not valid
7.在server1上进行交互模式
[root@server1 ~]# crm
crm(live)configure# property stonith-enabled=false (设置fence关闭)
crm(live)configure# commit
[root@server1 ~]# crm_verify -VL (重新校验没有error提醒)
添加虚拟ip,监控及监控时间
[root@server1 ~]# crm
crm(live)# configure
crm(live)configure# pr
primitive property
crm(live)configure# property no-quorum-policy=ignore (关闭集群对节点数量的检查,节点server1如>果故障,节点server4收不到心跳,直接接管程序,保持正常运行,不至于一个节点崩掉之后而使整个集群崩
掉)
crm(live)configure# commit
添加haproxy和资源组
测试:监控查看工作的是server1
停止server1上的corosync
在server4上查看监控server4上线
让server1重新启动server1上成为服务器
1.查看server1和server4上有fence
2.打开物理主机的fence,如果不能打开,开是否安装
上图的interface必须是桥接的
3.确认fence开启在server1中进入交互界面,添加fence的节点,并且打开检测节点检测为true,server1为主机名,vm1为域名
4.crm_mon查看监控,应该是服务和fence不在一个节点,但当一台主机出现故障,坏的主机立即重启,fence迁移
上图命令可以让主机出错