本文共 5189 字,大约阅读时间需要 17 分钟。
Mycat服务主机(server7、server8)上需要增加Mycat服务的状态检测脚本,并开放相应的检测端口,以提供给Haproxy对Mycat的服务状态进行检测判断。可以使用xinetd来实现,通过xinetd,Haproxy可以用httpchk来检测Mycat的存活状态。(xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。xinetd为linux系统的基础服务)
(1) 安装软件:yum -y install xinetd
(2) 查看配置文件:vim /etc/xinetd.conf
(3)配置自定义Mycat存活状态检测服务:
vim /etc/xinetd.d/mycat_status
service mycat_status { flags = REUSE socket_type = stream port = 48700 wait = no user = root server = /usr/local/bin/mycat_status log_on_failure += USERID disable = no }
(4)添加 /usr/local/bin/mycat_status服务脚本(监听mycat的状态),并赋予权限
vim /usr/local/bin/mycat_status
#!/bin/bash#/usr/local/bin/mycat_status.sh # This script checks if a Mycat server is healthy running on localhost. # It will return: # "HTTP/1.x 200 OK\r" (if Mycat is running smoothly) # "HTTP/1.x 503 Internal Server Error\r" (else) #对应mycat的安装目录启动程序Mycat=`/usr/local/mycat/bin/mycat status | grep 'not running' | wc -l` if [ "$Mycat" = "0" ]; then #模拟返回http请求信息/bin/echo -e "HTTP/1.1 200 OK\r\n" else /bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n" fi
chmod +x /usr/local/bin/mycat_status
(5)启动服务:systemctl start xinetd.service
systemctl status xinetd.service
netstat -antup|grep 48700
(6)测试配置结果
/usr/local/bin/mycat_status
(1)安装软件: yum install haproxy.x86_64 -y
(2)编辑配置文件:vim /etc/haproxy/haproxy.cfg
## global配置中的参数为进程级别的参数,通常与其运行的操作系统有关global log 127.0.0.1 local0 info ## 定义全局的syslog服务器,最多可以定义2个 ### local0是日志设备,对应于/etc/rsyslog.conf中的配置,默认回收info的日志级别 #log 127.0.0.1 local1 info chroot /usr/share/haproxy ## 修改HAProxy的工作目录至指定的目录并在放弃权限之前执行 ### chroot() 操作,可以提升 haproxy 的安全级别 group haproxy ## 同gid,不过这里为指定的用户组名 user haproxy ## 同uid,但这里使用的为用户名 daemon ## 设置haproxy后台守护进程形式运行 nbproc 1 ## 指定启动的haproxy进程个数, ### 只能用于守护进程模式的haproxy;默认为止启动1个进程, ### 一般只在单进程仅能打开少数文件描述符的场中中才使用多进程模式 maxconn 4096 ## 设定每个haproxy进程所接受的最大并发连接数, ### 其等同于命令行选项"-n","ulimit-n"自动计算的结果正式参照从参数设定的 # pidfile /var/run/haproxy.pid ## 进程文件(默认路径 /var/run/haproxy.pid)## defaults:用于为所有其他配置段提供默认参数,这默认配置参数可由下一个"defaults"所重新设定defaults log global ## 继承global中log的定义 mode http ## mode:所处理的模式 (tcp:四层 , http:七层 , health:状态检查,只会返回OK) option httplog retries 3 option redispatch ## serverId对应的服务器挂掉后,强制定向到其他健康的服务器 maxconn 2000 ## 前端的最大并发连接数(默认为2000) timeout connect 5000ms ## 连接超时(默认是毫秒,单位可以设置us,ms,s,m,h,d) timeout client 50000ms ## 客户端超时 timeout server 50000ms ## 服务器超时## HAProxy的状态信息统计页面listen admin_stats bind :80 ## 绑定端口 stats uri /admin-status ## 统计页面URI stats auth admin:admin ## 设置统计页面认证的用户和密码,如果要设置多个,另起一行写入即可 mode http option httplog ## 启用日志记录HTTP请求## listen: 用于定义通过关联“前端”和“后端”一个完整的代理,通常只对TCP流量有用listen mycat_servers bind :3307 ## 绑定端口 ---------------------------------------------------------------------这里一定要注意,在测试连接的时候,端口指定3307 mode tcp option tcplog ## 记录TCP请求日志 option tcpka ## 是否允许向server和client发送keepalive option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www ## 后端服务状态检测 balance roundrobin ## 定义负载均衡算法,可用于"defaults"、"listen"和"backend"中,默认为轮询方式 server mycat_01 172.25.12.7:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10 server mycat_02 172.25.12.8:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10
(3)启动服务:systemctl start haproxy.service
[root@server5 ~]# ps -ef | grep haproxyroot 8667 1 0 22:57 ? 00:00:00 /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pidhaproxy 8668 8667 0 22:57 ? 00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Dshaproxy 8669 8668 0 22:57 ? 00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Dsroot 9059 4014 0 23:00 pts/0 00:00:00 grep --color=auto haproxy
(4)测试
在server6上部署Haproxy
(1)
(2)启动pcs集群后,添加VIP和haproxy的资源
pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.12.100 op monitor interval=30spcs resource create haproxy systemd:haproxy op monitor interval=60s
(3)此时VIP和haproxy资源不再同一个节点上,要解决此问题可以将VIP和haproxy资源绑定到一个组中
pcs resource group add hagroup vip haprox
(4)测试
[root@server5 ~]# ip link set down eth0
重启server5即可恢复server5的
(1)
(2)安装软件(server5和server6端):yum install fence-virt.x86_64 -y
(3)在server1和server4中新建目录:mkdir /etc/cluster
scp fence_xvm.key root@172.25.12.5:/etc/clusterscp fence_xvm.key root@172.25.12.6:/etc/cluster
(4)在pacemaker中添加fence资源:
pcs stonith create vmfence fence_xvm pcmk_host_map="server5:demo5;server6:demo6" op monitor interval=60s
(5)启用STONITH组件的功能:pcs property set stonith-enabled=true
(6)验证群集配置信息:crm_verify -LV
,不报错即可
(7)测试
[root@server5 ~]# ip link set down eth0
mysql -uroot -h172.25.12.100 -pwestos -P3307
转载地址:http://beknz.baihongyu.com/