pacemaker + corosync 的高可用集群搭建成功后,配置简单的web服务进行测试
搭建问题记录
问题1:node unclean (offline)
解决办法禁用stonith
crm(live)configure#property stonith-enabed=false crm(live)configure#verify crm(live)configure#commit
问题2:双机同时启动,但是都显示对方offline
故障排查:
再次检查双机通信情况 【可以通信】
查找资料怀疑时间同步问题,重新设置集群内时间服务器,同步校对时间 【时间同步】
查看corosync日志error和warning 【未发现问题】
怀疑问题出在防火墙上,搭建前已经关闭iptables和SELinux,经查找果然centos7中还存在firewall作为默认防火墙。关闭后重启pacemaker,双机同时在线。
简单web资源部署
- 配置IP地址资源
crm(live)# configure
crm(live)configure# primitive webip ocf:heartbeat:IPaddr params ip=192.168.116.228 op monitor interval=30s timeout=20s on-fail=restart
crm(live)configure# verify
crm(live)configure# commit
webip 部署IP地址资源名
ocf:heartbeat:IPaddr 使用的服务代理
ip=192.168.116.228 是指定对外提供web服务的虚拟地址(node1=192.168.116.128; node2=192.168.116.129),当服务节点故障时,部署的webip可以转移到备用服务器上,保证对外提供服务。
在node2上使用ssh指令,关闭node1上得corosync服务,此时资源转移到node2
至此IP资源配置成功
- 配置httpd资源
Linux 中httpd服务对应Apache web服务
首先安装httpd服务
查看代理资源lsb中没有httpd服务代理
查找资料,找到类似问题的解决办法,在/etc/rc.d/init.d路径下创建服务脚本文件httpd,内容如下:
此时lsb中可以查看到httpd,部署资源
crm(live)configure# primitive webserver lsb:httpd op monitor interval=30s timeout=20s on-fail=restart
crm(live)configure# verify
crm(live)configure# commit
因为集群为了平衡复杂自动将资源部署于不同的节点上,现在通过定义组资源使这两个资源部署于同一个节点
crm(live)configure# group webGroup webip webServer
crm(live)configure# verify
crm(live)configure# commit
(crm status 展示图待补充)
最后进行测试,在本机(宿主)访问192.168.116.228,kill掉服务节点centos1仍然可以访问页面,此时由centos2提供服务