在数据库一主多从架构中,若所有查询的流量都切入主节点,会造成服务器拥塞,因此需要将业务一致性要求不是特别高的应用的查询流量分散到从库,以实现负载均衡
keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouterRedundancyProtocol,即虚拟路由冗余协议
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的
因LVS缺乏后端状态检测,于是配合Keepalived使用会拥有不错的效果

yum-yinstallnet-snmpunzip-ukeepalived_pack.zipcdkeepalived_pack/rhel6/;rpm-ivhipvsadm-1.26-2.el6.x86_64.rpmrpm-ivhkeepalived-1.2.7-3.el6.x86_64.rpm
两个节点的配置大体相似,仅需修改优先级和角色
global_defs{??notification_email{???smtp_server192.168.200.1??smtp_connect_timeout30??router_idLVS_DEVEL}vrrp_scriptchk_mha{??script"/root/mha/scripts/check_manager.sh/root/mha"??interval5??weight-40??fall?3??rise?1???}vrrp_instanceVI_1{??修改2.主节点优先级需大于从节点??priority90??advert_int1??authentication{auth_typePASSauth_pass1111??}?#VIP??virtual_ipaddress{10.243.95.101??}??notify_master"/root/mha/scripts/write_keepalived_state.sh/root/mha/logMASTER"??notify_backup"/root/mha/scripts/write_keepalived_state.sh/root/mha/logBACKUP"}
virtual_serverfwmark2{delay_loop10lb_algorrlb_kindDR#??persistence_timeout2protocolTCPreal_server10.243.95.53306{weight3TCP_CHECK{connect_timeout10nb_get_retry3??delay_before_retry3connect_port3306}}real_server10.243.95.43306{weight3TCP_CHECK{connect_timeout10nb_get_retry3??delay_before_retry3connect_port3306}}real_server10.243.95.33306{weight3TCP_CHECK{connect_timeout10nb_get_retry3??delay_before_retry3connect_port3306}}???}
因LVS-keepalived需同时部署在RS服务器,存在一些问题
现象分析:请求经过keepalivedMASTER节点后,会根据负载均衡策略分发到配置文件中的RS服务器,此时会包含BACKUP节点,若分发至BACKUP节点会发生二次轮询分发给MASTER节点,造成循环
解决方案:通过设置fwmark参数,当数据包发送给VIP且mac地址不属于任何LVS节点会通过iptables进行标记,带标记的包才会进入LVS进行负载均衡处理
在Slave1上执行,MAC地址为数据库Master的MACiptables-tmangle-IPREROUTING-d10.243.95.101-ptcp-mtcp--dport3306-mmac!--mac-sourceFA:16:3E:30:DF:12-jMARK--set-mark0x2
net.ipv4.conf.all.send_redirects=0net.ipv4.conf.default.send_redirects=0net.ipv4.conf.eth0.send_redirects=0net.ipv4.conf.lo.arp_ignore=1net.ipv4.conf.lo.arp_announce=2net.ipv4.conf.all.arp_ignore=1net.ipv4.conf.all.arp_announce=2
本文来源:国外服务器--MySQL配置Keepalived读写分离(mysql读写分离部署)
本文地址:https://www.idcbaba.com/guowai/5825.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。




