LVS+Keepalived实现mysql的负载均衡
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了LVS+Keepalived实现mysql的负载均衡,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4049字,纯文字阅读大概需要6分钟。
内容图文
![LVS+Keepalived实现mysql的负载均衡](/upload/InfoBanner/zyjiaocheng/525/ba2f7c34ef34412d82dce7d23583ea45.jpg)
create table test( id int, name varchar(10) ); -- A中插入 insert into test values(1,‘A‘); -- B中插入 insert into test values(2,‘B‘);
(2)编辑realserver脚本文件
①进入指定文件夹:cd /etc/init.d/
②创建脚本文件:vi realserver
SNS_VIP=192.168.5.200 /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 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 echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $SNS_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
这里我们设置虚拟IP为:192.168.5.200
③保存脚本文件后更改该文件权限:chmod 755 realserver
④开启realserver服务:service realserver start
2.4 配置主负载服务器
关于keepalived相关知识,请参考:http://bbs.nanjimao.com/thread-855-1-1.html
(1)安装Keepalived相关包
wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
tar -zxvf keepalived-1.2.13.tar.gz
cd keepalived-1.2.13
./configure --disable-fwmark --prefix=/usr/local/keepalived
make && make install
(2)编辑keepalived.conf配置文件
①进入keepalived.conf所在目录:cd /etc/keepalived
②首先清除掉keepalived原有配置:> keepalived.conf
③重新编辑keepalived配置文件:vi keepalived.conf
global_defs { router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的 } vrrp_instance VI_1 { state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备 interface eth1 #指定Keepalived的角色,MASTER为主,BACKUP为备 virtual_router_id 51 #虚拟路由编号,主备要一致 priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR advert_int 1 #检查间隔,默认为1s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.5.200 #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个 } } # 定义对外提供服务的LVS的VIP以及port virtual_server 192.168.5.200 3306 { delay_loop 6 # 设置健康检查时间,单位是秒 lb_algo wlc # 设置负载调度的算法为wlc 基于权重的调度算法 lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式 nat_mask 255.255.255.0 #persistence_timeout 0 会话保持时间 protocol TCP real_server 192.168.5.122 3306 { # 指定real server1的IP地址 weight 3 # 配置节点权值,数字越大权重越高 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 192.168.5.123 3306{ # 指定real server2的IP地址 weight 3 # 配置节点权值,数字越大权重越高 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }
注意:会话保持时间要注释掉,这样可以看出负载均衡的调度
(3)开启keepalived服务
service keepalived start
停止命令
service keepalived stop
查看状态
service keepalived status
检测:运行命令ipvsadm
2.5 配置从负载服务器
从负载服务器与主负载服务器大致相同,只是在keepalived的配置文件中需要改以下两处:
(1)将state由MASTER改为BACKUP
(2)将priority由100改为99
vrrp_instance VI_1 { state BACKUP # 这里改为BACKUP interface eth1 virtual_router_id 51 priority 99 # 这里改为99,master优先级是100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.5.200 } }
2.6 验证性测试
在客户端上登录mysql,客户端机器是120,121,122,123之外的机器
mysql -h192.168.5.200 -uroot –pbruce -P3306 –Dbruce
因为mysql是长连接,所以测试时需要开启多个命令窗口进行连接
发现请求被平均分配到A和B服务器
LVS+Keepalived实现mysql的负载均衡
标签:virt 瓶颈 转换 def cti 算法 ip绑定 数据库服务器 class
本文系统来源:https://www.cnblogs.com/capacity-yang/p/13140638.html
内容总结
以上是互联网集市为您收集整理的LVS+Keepalived实现mysql的负载均衡全部内容,希望文章能够帮你解决LVS+Keepalived实现mysql的负载均衡所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。