上一篇 下一篇 分享链接 返回 返回顶部

香港vps服务器的MySQL配置Keepalived读写分离

发布人:欢子 发布时间:2026-01-21 09:49 阅读量:9
香港vps服务器的MySQL配置Keepalived读写分离:

1背景

在数据库一主多从架构中,若所有查询的流量都切入主节点,会造成服务器拥塞,因此需要将业务一致性要求不是特别高的应用的查询流量分散到从库,以实现负载均衡

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负载均衡

lvs是四层负载均衡,也就是说建立在OSI模型的第四层――传输层之上

传输层上有TCP/UDP,lvs支持TCP/UDP的负载均衡

因为LVS是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的

lvs的转发可以通过修改IP地址实现(NAT模式)

lvs的转发还可以通过修改直接路由实现(DR模式)

因LVS缺乏后端状态检测,于是配合Keepalived使用会拥有不错的效果

2架构

LVS+Keepalived架构

DBip备注

Master10.243.95.3keepalivedMaster

Slave110.243.95.4keepalivedBackup

Slave210.243.95.5

10.243.95.101读VIP

3搭建

1)安装依赖包

yum-yinstallnet-snmp

unzip-ukeepalived_pack.zip

cdkeepalived_pack/rhel6/;

rpm-ivhipvsadm-1.26-2.el6.x86_64.rpm

rpm-ivhkeepalived-1.2.7-3.el6.x86_64.rpm

2)修改配置文件

两个节点的配置大体相似,仅需修改优先级和角色

global_defs{

notification_email{

#user@example.com

}

notification_email_frommail@example.org

#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

fall3

rise1

}

vrrp_instanceVI_1{

#修改1.主节点MASTER

stateBACKUP

interfaceeth0

virtual_router_id200

#修改2.主节点优先级需大于从节点

priority90

advert_int1

authentication{

auth_typePASS

auth_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_loop10

lb_algorr

lb_kindDR

#persistence_timeout2

protocolTCP

real_server10.243.95.53306{

weight3

TCP_CHECK{

connect_timeout10

nb_get_retry3

delay_before_retry3

connect_port3306

}

}

real_server10.243.95.43306{

weight3

TCP_CHECK{

connect_timeout10

nb_get_retry3

delay_before_retry3

connect_port3306

}

}

real_server10.243.95.33306{

weight3

TCP_CHECK{

connect_timeout10

nb_get_retry3

delay_before_retry3

connect_port3306

}

}

}

3)绑定子接口VIP

应用于三个数据库节点

ipaddradd$VIP/32devlo

4)设置iptables规则

因LVS-keepalived需同时部署在RS服务器,存在一些问题

现象分析:请求经过keepalivedMASTER节点后,会根据负载均衡策略分发到配置文件中的RS服务器,此时会包含BACKUP节点,若分发至BACKUP节点会发生二次轮询分发给MASTER节点,造成循环

解决方案:通过设置fwmark参数,当数据包发送给VIP且mac地址不属于任何LVS节点会通过iptables进行标记,带标记的包才会进入LVS进行负载均衡处理

#在master上执行,MAC地址为数据库SLave1的MAC

iptables-tmangle-IPREROUTING-d10.243.95.101-ptcp-mtcp--dport3306-mmac!--mac-sourceFA:16:3E:1C:EB:DC-jMARK--set-mark0x2

#在Slave1上执行,MAC地址为数据库Master的MAC

iptables-tmangle-IPREROUTING-d10.243.95.101-ptcp-mtcp--dport3306-mmac!--mac-sourceFA:16:3E:30:DF:12-jMARK--set-mark0x2

5)添加服务器内核参数

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.eth0.send_redirects=0

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

修改后需重载配置sysctl-p

6)启动Keepalived服务

MySQL配置Keepalived读写分离

一诺网络香港免备案专区,提供「香港增强VPS」和「香港特惠VPS」两种类型的高可用弹性计算服务,搭载新一代英特尔®至强®铂金处理器,接入CN2低延时高速回国带宽线路,网络访问顺滑、流畅。机房网络架构采用了BGP协议的解决方案可提供多线路互联融合网络,使得不同网络运营商线路的用户都能通过最佳路由实现快速访问。香港云VPS低至29元/月,购买链接:https://www.enuoidc.com/vps.html?typeid=2

目录结构
全文