lvs+keepalived主从高可用负载均衡
安装keepalived和lvs管理工具
#yum install keepalived ipvsadm -y
-------------------------lvs-master01配置---------------------------------
lvs-master01配置
# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
# 接收邮件地址
notification_email {
[email protected]
[email protected]
[email protected]
}
# 邮件发送地址
notification_email_from [email protected]
# 本地邮件服务器发邮件
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_RR
}
# vrrp_instance 是一组逻辑分组的 VIP,可以写多个
vrrp_instance VI_1 {
state MASTER
interface ens33 # 实例工作的网络接口
virtual_router_id 55 # VRRP 路由 ID 实例,每个实例是唯一的
priority 100 # 优先级,备服务器设置 90
advert_int 1 # 指定 VRRP 心跳包通告间隔时间,默认 1 秒
# VRRP 验证块
authentication {
auth_type PASS
auth_pass 1111
}
# VIP 定义块
virtual_ipaddress {
192.168.31.55/24
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 56
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.56/24
}
}
virtual_server 192.168.31.55 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.31.9 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
real_server 192.168.31.10 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
}
virtual_server 192.168.31.56 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.31.9 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
real_server 192.168.31.10 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
}
-------------------------lvs-master02配置---------------------------------
lvs-master02配置
# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
# 接收邮件地址
notification_email {
[email protected]
[email protected]
[email protected]
}
# 邮件发送地址
notification_email_from [email protected]
# 本地邮件服务器发邮件
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_RR
}
# vrrp_instance 是一组逻辑分组的 VIP,可以写多个
vrrp_instance VI_1 {
state BACKUP
interface ens33 # 实例工作的网络接口
virtual_router_id 55 # VRRP 路由 ID 实例,每个实例是唯一的
priority 90 # 优先级,备服务器设置 90
advert_int 1 # 指定 VRRP 心跳包通告间隔时间,默认 1 秒
# VRRP 验证块
authentication {
auth_type PASS
auth_pass 1111
}
# VIP 定义块
virtual_ipaddress {
192.168.31.55/24
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 56
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.56/24
}
}
virtual_server 192.168.31.55 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.31.9 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
real_server 192.168.31.10 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
}
virtual_server 192.168.31.56 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.31.9 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
real_server 192.168.31.10 3306 {
TCP_CHECK {
connect_port 3306 #连接远程服务器的 TCP 端口
connect_timeout 3 # 连接远程服务器超时时间
nb_get_retry 3 # 最大重试次数
delay_before_retry 3 # 连续两个重试之间的延迟时间
}
}
}
启动keepalived
#systemctl start keepalived
设置开机启动
#systemctl enable keepalived
查看lvs状态
#ipvsadm -Ln
在mysql-slave服务器上写脚本
# vi lvs-dr-real.sh
#!/bin/bash
VIP1=192.168.31.55
VIP2=192.168.31.56
NIC1="lo:0"
NIC2="lo:1"
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $NIC1 $VIP1 netmask 255.255.255.255 broadcast $VIP1 up
ifconfig $NIC2 $VIP2 netmask 255.255.255.255 broadcast $VIP2 up
route add -host $VIP1 dev $NIC1
route add -host $VIP2 dev $NIC2
;;
stop)
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $NIC1 down
ifconfig $NIC2 down
;;
status)
if ifconfig $NIC1 |grep $VIP1 &> /dev/null; then
echo "$NIC1 is configured."
else
echo "$NIC1 not configured."
fi
if ifconfig $NIC2 |grep $VIP2 &> /dev/null; then
echo "$NIC2 is configured."
else
echo "$NIC2 not configured."
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
启动脚本
#bash lvs-dr-real.sh start
MySQL实战五:lvs+keepavlied双主实现服务器负载均衡
猜你喜欢
转载自blog.csdn.net/qq_28710983/article/details/80938245
今日推荐
周排行