IPVS分布式mysql_ipvsadm分发MySQL读请求

在MySQL的部署场景中,经常使用HAproxy和ipvs来作为读请求转发的网关.

ipvs的好处在于本身不需要daemon的方式来运行,而是直接作为kernel的服务来提供;

当ipvs和应用程序服务器在同一网段时,可以使用DR模式,这样可以避免在返回

数据时还需由网关来处理.

硬件:

ipvsadm服务器192.168.1.100,VIP虚拟ip配置为192.168.1.204

三台mysql从服务器:

192.168.1.135

192.168.1.136

192.168.1.137

一,安装ipvsadm

1,yum安装

#yum -y install ipvsadm

建立ipvsadm文件

#ipvsadm --save > /etc/sysconfig/ipvsadm

初始化配置

#ipvsadm -C

二,为ipvsadm服务器网卡配置一个虚拟IP

1,查看网卡名ip addr,记住en开头的网卡名,打开该网卡名的配置文件

#vi /etc/sysconfig/network-scripts/ifcfg-en你的网卡名

2,添加一行ip

IPADDR1=192.168.1.204

3,service network restart 重启网卡。

三,配置ipvsadm

1,ipvsadm -C清除之前的配置

2,在ipvs上新增一个服务器,使用负载平均分发到后端服务器的策略

#ipvsadm -A -t 192.168.1.204:3306 -s rr

3,为ipvs新增服务器增加后端真实的服务器

#ipvsadm -a -t 192.168.1.204:3306 -r 192.168.1.135:3306 -g

#ipvsadm-a -t 192.168.1.204:3306 -r 192.168.1.136:3306 -g

#ipvsadm-a -t 192.168.1.204:3306 -r 192.168.1.137:3306 -g

#ipvsadm --save

4,查看配置情况

# ipvsadm -L

IP Virtual Server version1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags->RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP localhost.localdomain:mysql rr-> 192.168.1.135:mysql Route 1 0 0

-> 192.168.1.136:mysql Route 1 0 0

-> 192.168.1.137:mysql Route 1 0 0

四,配置Mysql从库服务器

1,在回路接口(lo网卡)上新增ipvsadm服务器的ip地址

# vi /etc/sysconfig/network-scripts/ifcfg-lo

#添加下面一行

IPADDR1=192.168.1.204

2,添加静态路由,(更多详细操作)

route add -host 192.168.1.204 dev lo

3,设置网卡通讯规则(更多细节)

# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

#echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

#echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

#echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

# sysctl-p >/dev/null 2>&1 #/dev/null 2>&1 是什么意思?

为了使配置永久生效,建议把配置写入/etc/sysctl.conf的文件中。

每台从库服务器都需要同样的配置。

在第三台主机上通过VIP登录mysql 3次后,可以看到ipvsadm平均分发了对从库的访问。

# ipvsadm -L

IP Virtual Server version1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags->RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP localhost.localdomain:mysql rr-> 192.168.1.135:mysql Route 1 1 0

-> 192.168.1.136:mysql Route 1 1 0

-> 192.168.1.137:mysql Route 1 1 0

最后可以使用sysbench做压力测试。

本文在 使用IPVS分发MySQL读请求 的基础上根据自身的经验总结而来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值