关于lvs+keeplived在mysql分库分上负载部署
架构图:
模块 | IP | 主机规格 | VIP |
keepalived+lvs | 1x2.2x.37.67 1x2.2x.38.85 | 4c8G SSD | vip: 1x2.2x.37.126 |
dble集群 | 1x2.2x.37.51 1x2.2x.38.13 | 8c32G SSD | |
mysql主从 | 1x2.2x.37.85 主 1x2.2x.38.162 从 1x2.2x.38.56 从 | 8c32G SSD |
-
安装lvs+keepalive
在1x2.2x.37.67和1x2.2x.38.85分别安装
yum install -y ipvsadm
yum install keepalived –y -
给后端被转发服务器添加vip
本实验环境为172.21.37.51 和 xx(添加在本地回环网卡lo上),本次采用单VIP
ifconfig lo:0 1x2.2x.37.126 netmask 255.255.255.255 broadcast 1x2.2x.37.126
/sbin/route add -host 172.21.37.126 dev lo:0 -
给后端被转发服务器配置arp抑制防止ip冲突
37.51和38.13均需要设置
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 -
配置keepalive参数
在1x2.2x.37.67和1x2.2x.38.85都要设置,配置分三个部分,一、三部分两机设置相同,第二部分有区别。vi /etc/keepalived/keepalived.conf
A. 第一部分全局设置
! Configuration File for keepalived
global_defs {
router_id LVS_3767
script_user root
enable_script_security
}
B. 第二部分vip设置
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 50
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 5211
}
virtual_ipaddress {
1x2.2x.37.126/32
}
}
C. 第三部分lvs转发设置
virtual_server 1x2.2x.37.126 8066 {
delay_loop 3
lb_algo lc
lb_kind DR
protocol TCP
real_server 1x2.2x.37.51 8066 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 1
connect_port 8066
}
MISC_CHECK {
misc_path “/etc/keepalived/check_tidb.sh 1x2.2x.37.51 8066”
misc_timeout 3
misc_dynamic
}
}
real_server 1x2.2x.38.13 8066 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 1
connect_port 8066
}
MISC_CHECK {
misc_path “/etc/keepalived/check_tidb.sh 1x2.2x.38.13 8066”
misc_timeout 3
misc_dynamic
}
}
}
#启动 keepalived
systemctl start keepalived
查看 LVS 规则
ipvsadm -Ln
检查 ip_vs 内核模块是否加载
lsmod | grep ip_vs
#测试连接 去非路由机器上测
[root@host-1x2-2x-37-51 ~]# mysql -u root -p’xxxx’ -h 1x2.2x.37.126 -P 8066 -e “select version();”
±------------------------------------------------------------------------------+
| VERSION() |
±------------------------------------------------------------------------------+
| 8.0.20-dble-3.23.04.0-a9257aa72722c03ebe3290fd20201437b4f3a1f5-20230619104507 |
±------------------------------------------------------------------------------+
keeplived和dble高可用测试:
1、停掉vip所在的keeplived机器 ,另一台keeplived机器 会邦定新的VIP。
2、停掉其中一台dble服务器,服务仍然能正常提供服务。