本博文分别完成如下实验:
1>首先实验简单的pacemaker+httpd高可用 2>在1的基础上面实现haproxy web负载均衡高可用 |
一:pacemaker+httpd高可用
1、首先需要根据之前博文步骤将node31、node32的pacemaker基础环境配置好。(node31、node32 IP地址为172.31.2.31 172.31.2.32)
centos7只pacemaker高可用安装配置详解:https://my.oschina.net/tantexian/blog/648990
或者:
查看配置好pacemaker的基础环境:
pcs cluster status
2、配置安装apache httpd服务(node31、node32都需要配置):
yum install httpd -y
vim /var/www/html/index.html
I'm node31!!! My IP is 172.31.2.31...(PS:在node32上面为:I'm node32!!! My IP is 172.31.2.32...)
重启httpd:systemctl restart httpd
页面请求:
Apache 1.3.2 及以后的版本,apache自带的功能server-status。可以用来查看apache进程占用的服务器资源及apache进程状态信息。
PS:由于后面pacemaker需要根据httpd server-status来进行检测(当然也可以使用其他页面/index.html) 开启httpd server-status: vi /etc/httpd/conf/httpd.conf
systemctl restart httpd |
更多关于如何配置httpd请参考博文:http://blog.csdn.net/tantexian/article/details/50056199
3、添加一个VIP来给外界提供服务:
查看pcs使用帮助:pcs resource help
pcs resource create WebVIP ocf:heartbeat:IPaddr2 ip=172.31.2.100 cidr_netmask=32 op monitor interval=30s nic=eth0
注:上述的VIP必须与系统所有在网络处于同一个网段(但是没有被使用的IP,执行完上述命令则可以ping通WebVIP 172.31.2.100)。
解释ocf:heartbeat:IPaddr2: ocf:代表pacemaker支持的资源标注类型,更多请参考博文:http://blog.csdn.net/tantexian/article/details/50160959。 heatbeat:表示资源脚本所在ocf的命名空间。 IPaddr2:资源脚本名称。 |
3、配置好WEBVIP查看当前pacemaker状态:
4、查看pacemaker默认支持的apache使用:
pcs resource list | grep apache
pcs resource describe ocf:heartbeat:apache
5、添加apache到集群pacemaker控制中:
pcs resource create MyWeb ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=5s
设置为每隔5秒钟检测一次server-status状态。
启动整个集群节点:pcs cluster start --all)
启动resource(pcs没有直接启动resource的命令,只能通过):
pcs resource enable MyWeb
确保资源在同一个节点运行:
pcs constraint colocation add WebVIP MyWeb INFINITY
-
Resource Location(资源位置):定义资源可以、不可以或尽可能在哪些节点上运行;
-
Resource Collocation(资源排列):排列约束用以定义集群资源可以或不可以在某个节点上同时运行;
-
Resource Order(资源顺序):顺序约束定义集群资源在节点上启动的顺序;
6、当一个节点宕机,VIP会自动漂移到其他无故障主机,从而达到高可用。(可以使用关机模拟)。