通过pacemaker、corosync、haproxy实现高可用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43908373/article/details/95638375

一.基础知识
1.pacemaker
pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方。(作为通信层和提供关系管理服务,心跳引擎,检测心跳信息)
2.Corosync
Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。
二.开始配置
环境:
172.16.15.122(pacemaker+corosync+haproxy+httpd)
172.16.15.123(pacemaker+corosync+haproxy+httpd)

1.关闭防火墙和SELinux
systemctl disable firewalld
systemctl stop firewalld
#iptables –F
sed -i ‘/SELINUX/s/enforcing/disabled/’ /etc/selinux/config
setenforce 0

2.台主机分别修改hostname为ha1和ha2
hostnamectl --static --transient set-hostname ha1
hostnamectl --static --transient set-hostname ha2

4.同步时间
yum install ntp -y
ntpdate cn.pool.ntp.org

5.安装配置pacemaker+corosync
yum install pcs pacemaker corosync fence-agents-all -y

6.启动pcsd服务
systemctl start pcsd.service
systemctl enable pcsd.service

7.创建集群用户
passwd hacluster(此用户在安装pcs时候会自动创建)或者echo hacluster | passwd --stdin hacluster
以上步骤每个节点都需要执行执行

8.创建并启动名为my_cluster的集群,其中ha1 ha2为集群成员
pcs cluster setup --start --name my_cluster ha1 ha2

9.设置集群自启动
pcs cluster enable --all

10.查看集群状态
pcs cluster status

11.检验Corosync的安装及当前corosync状态
corosync-cfgtool -s
corosync-cmapctl| grep members
pcs status corosync

12.检查配置是否正确(假若没有输出任何则配置正确)
crm_verify -L -V
此错误,禁用STONITH:
pcs property set stonith-enabled=false
无法仲裁时候,选择忽略:
pcs property set no-quorum-policy=ignore
防止资源回迁
pcs resource defaults resource-stickiness=100

13.配置VIP资源:
pcs resource create vip ocf💓IPaddr2 params ip=192.168.0.10 nic=‘eno16777984’ cidr_netmask=‘24’ broadcast=‘172.16.15.1’ op monitor interval=5s timeout=20s on-fail=restart

14.安装haproxy
yum install haproxy -y

15.配置haproxy资源
pcs resource create haproxy systemd:haproxy op monitor interval=“5s”

16.定义运行的HAProxy和VIP必须在同一节点上
pcs constraint colocation add vip haproxy INFINITY

17.定义启动顺序,定义约束,先启动VIP之后才启动HAProxy:
pcs constraint order vip then haproxy
备注:配置资源多节点启动,添加–clone

18.配置haproxy
vim /etc/haproxy/haproxy.cfg
frontend main *:90
#stats uri /haproxy
stats refresh 30s #统计页面自动刷新时间
stats uri /haproxy #访问的uri ip:8080/haproxy
stats realm haproxy
stats auth admin:admin #认证用户名和密码
stats hide-version #隐藏HAProxy的版本号
stats admin if TRUE #管理界面,如果认证成功了,可通过webui管理节点
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js

use_backend static          if url_static
default_backend             app

#---------------------------------------------------------------------

static backend for serving up images, stylesheets and such

#---------------------------------------------------------------------
backend static
balance roundrobin
server static 127.0.0.1:90 check

#---------------------------------------------------------------------

round robin balancing between the various backends

#---------------------------------------------------------------------
backend app
balance roundrobin
server app1 172.16.15.122:80 check
server app2 172.16.15.123:80 check

19.安装http
yum install httpd -y

20.最后查看集群状态
pcs status

21.UI查看集群状态,登录用户名/密码:admin/admin
http://172.16.15.125:90/haproxy

21.测试
echo “web1” > /var/www/html/index.html
echo “web2” > /var/www/html/index.html
访问http://172.16.15.125:90

22.常用命令
1.创建web服务资源:
pcs resource create http lsb:httpd op monitor interval=20 timeout=20 on-fail=restart
2.创建文件系统资源:
pcs resource create webstore ocf💓Filesystem params device=“192.168.30.115:/web/data” directory="/var/www/html" fstype=“nfs” op monitor interval=20 timeout=20 on-fail=restart
3.创建IP地址资源:
pcs resource create webip ocf💓IPaddr ip=192.168.30.230 op monitor interval=20 timeout=20 on-fail=restart
4.查看指定资源属性:
pcs resource list lsb
5.查看资源类别:
pcs resource standards
6.查看默认资源管理器:
pcs resource providers
7.查看某个资源的代理:
pcs resource agents lsb
7.设置排列约束(资源同时启动,关闭,重启)
pcs constraint colocation add webip http
8.设置顺序约束(资源启动关闭顺序)
pcs constraint order start webip then start http
9.设置集群全局属性
pcs property set no-quorum-policy=ignore
10.设置集群节点为备用节点,以及重新上线
pcs cluster standby node1.luojianlong.com
pcs cluster unstandby node1.luojianlong.com
11.禁用资源
pcs resource disable ClusterIP
12.启用资源
pcs resource enable ClusterIP
13.启动和停止集群
pcs cluster stop --all
pcs cluster start --all

参考文档:
https://blog.csdn.net/fanzhigang0/article/details/52597153
http://blog.51cto.com/luojianlong/1383807
https://blog.csdn.net/weixin_32346335/article/details/54927357

展开阅读全文

没有更多推荐了,返回首页