千家信息网

LVS+keepalived的安装部署怎么完成mysql的负载均衡

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,LVS+keepalived的安装部署怎么完成mysql的负载均衡,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。试验环境:LVS1:19
千家信息网最后更新 2026年11月01日LVS+keepalived的安装部署怎么完成mysql的负载均衡

LVS+keepalived的安装部署怎么完成mysql的负载均衡,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

试验环境:

LVS1:192.168.9.27

LVS2:192.168.9.28

keepalived 的VIP:192.168.9.230

要分发的mysql1: 192.168.9.29

要分发的mysql2:192.168.9.30

具体安装步骤:

#下载ipvsadm (也就是LVS程序包)

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

#解压

[root@lvs-a ~]# tar -zxf ipvsadm-1.24.tar.gz

#进入该ipvsadm目录

[root@lvs-a ~]# cd /usr/local/ipvsadm-1.24

#安装开发包及库文件

[root@lvs-a ipvsadm-1.24]# # yum install zlib-devel gcc gcc-c++ openssl-devel pcre-devel libtool kernel-devel ncurses-devel -y

#创建内核连接

[root@lvs-a ipvsadm-1.24]# ln -sv /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux #(2.6.18-194.el5-i686)根据系统版本修改。

#编译安装

[root@lvs-a ipvsadm-1.24]# make;make install

#进入目录

[root@lvs-a ~]# cd /usr/local/

#下载keepalived

wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

#解压

[root@lvs-a ipvsadm-1.24]# tar -zxf keepalived-1.2.12.tar.gz

#进入该keepalived目录

[root@lvs-a ~]cd keepalived-1.2.12

#编译安装

[root@lvs-a keepalived-1.2.12]#./configure --prefix=/usr/local/keepalived #这里编译完后面显示三个yes,说明编译成功,否则安装不成功。

#以下为1.2.12版本./configure结果如下

#如果为1.1.17版本./configure结果如下

[root@lvs-a keepalived-1.2.12]#make

[root@lvs-a keepalived-1.2.12]#make install

#复制启动文件

[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ ##这样才能用service keepalived 的命令。

#复制命令文件

[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

#复制【配置文件

[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

#新建主配置文件目录

[root@lvs-a keepalived-1.2.12]#mkdir -p /etc/keepalived

#编辑配置文件LVS1

[root@lvs-a sysconfig]#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
router_id lvs
}

vrrp_sync_group http { #设置vrrp组,随便起名字,
group {
mysql ###随便起的名字
}
}

vrrp_instance apache { ###定义一个vrrp实例
state MASTER #设置lvs的状态, MASTER和BACKUP两种,必须大写,主节点master,从节点backup
interface eth0 #设置对外服务的接口,也就是/LVS监控的网络接口
virtual_router_id 01 #设置lvs监听的接口,同一实例下virtual_router_id必须相同 ,随便起名字
priority 500 # #设置优先级,数值越大,优先级越高 ,也就是主节点的这个值大
advert_int 1 ## //MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

authentication { #设置验证类型和密码
auth_type PASS
auth_pass aabb ##密码
}
virtual_ipaddress { ##设置keepalived的VIP
192.168.9.230 #如果有多个,往下加就行了

#192.168.9.231

#192.168.9.232

}

}

virtual_server 192.168.9.230 3306 { ##定义虚拟服务器
delay_loop 6 #健康检查时间,单位是秒。
lb_algo rr #负载调度算法,这里设置为rr,即轮询算法
lb_kind DR #LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选
nat_mask 255.255.255.0 #可以不填写这个参数,
# persistence_timeout 50
protocol TCP

real_server 192.168.9.29 3306 { ##要分发的目标服务器IP,
weight 1 #设置权重,也就是分发的次数,这里表示每个分发一次,
TCP_CHECK { #通过tcpcheck判断RealServer的健康状态
connect_timeout 3 ##连接超时时间

#nb_get_retry 3 #重连次数 ,有默认值
#delay_before_retry 3 #
重连间隔时间 有默认值
connect_port 3306
}
}
real_server 192.168.9.30 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}

#配置完成重启keepalived

[root@lvs-a sysconfig]#service keepalived restart

#添加自己的网关

[root@lvs-a network-scripts]# route add -host 192.168.9.254 dev eth0


#安装keepalived同lvs1相同

#安装keepalived后配置LVS2,配置如下:

[root@lvs-b ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
router_id lvs
}

vrrp_sync_group http {
group {
mysql
}
}

vrrp_instance apache {
state BACKUP
interface eth0
virtual_router_id 01
priority 400
advert_int 1
# nopreempt
authentication {
auth_type PASS
auth_pass aabb
}
virtual_ipaddress {
192.168.9.230
}
}

virtual_server 192.168.9.230 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
# persistence_timeout 50
protocol TCP

real_server 192.168.9.29 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
real_server 192.168.9.30 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}

#配置完成重启keepalived

service keepalived restart

#添加自己的网关

route add -host 192.168.9.254 dev eth0

#查看

route -n

#查看分发结果

Ipvsadm -ln

#清除分发

Ipvsadm -C

#查看虚拟ip(VIP)

Ip addr

#配置 mysql-realserver1 在192.168.9.29上执行:

[root@lvs-a ~]# ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast 192.168.9.230 up ##设置的一个临时的IP

设置到主机的路由

[root@lvs-b ~]# route add -host 192.168.9.230 dev lo:0

设置默认路由

[root@lvs-b ~]#route add default gw 192.168.9.137

保证arp协议在连接过程中,路由器上,只知道网络中192.168.9.230对应的是分发器

[root@lvs-b ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@lvs-b ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#配置 mysql-realserver2 在192.168.9.30上执行:

[root@lvs-a ~]# ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast 192.168.9.230 up

设置到主机的路由

[root@lvs-a ~]#route add -host 192.168.9.230 dev lo:0

设置默认路由

[root@lvs-a ~]#route add default gw 192.168.153.137

保证arp协议在连接过程中,路由器上,只知道网络中192.168.9.230对应的是分发器

[root@lvs-a ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@lvs-a ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#两台mysql-realserver配置完成后启动分别mysql

Service mysqld start

LVS分发测试:

1,在 mysql-realserver1(192.168.9.29) 创建一个名字叫做slave1的数据库:

mysql> create database slave1;

Query OK, 1 row affected (0.00 sec)

2,在mysql-realserver2 (192.168.9.30)上创建一个名字叫做slave2的数据库:

mysql> create database slave2 ;

Query OK, 1 row affected (0.00 sec)

3,在一台能ping通mysql-realserver1和mysql-realserver2的机器上执行(注意不要在正在用着的lvs机器上执行,例如我现在lvs用着[root@lvs-a ~]#这个机器,如果你在这里执行他会报错

[root@lvs-a ~]# mysql -uroot -pliuwenhe -h292.168.9.230 -e'show databases';
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.9.230' (111)
You have new mail in /var/spool/mail/root

[root@lvs-b ~]# mysql -uroot -pliuwenhe -h292.168.9.230 -e'show databases';

+--------------------+
| Database |
+--------------------+
| information_schema |
| he |
| liuwenhe |
| mysql |
| performance_schema |
| slave1 |
| test |
+--------------------+
[root@lvs-b ~]# mysql -uroot -pliuwenhe -h292.168.9.230 -e'show databases';
+--------------------+
| Database |
+--------------------+
| information_schema |
| he |
| liuwenhe |
| mysql |
| performance_schema |
| slave2 |
| test |
+--------------------+

说明lvs分发成功。

看完上述内容,你们掌握LVS+keepalived的安装部署怎么完成mysql的负载均衡的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

配置 路由 文件 均衡 也就是 时间 目录 编译 成功 名字 接口 机器 版本 结果 网络 节点 服务 相同 健康 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 精品咖啡豆 互联网科技企业 中智农互联网科技 广东万易互联网科技有限公司惠州分公司 互联网佳科技有限公司 广州百单互联网科技有限公司 互联网属科技 腾讯科技 互联网女皇 广州凡科互联网科技 互联网高科技股票 赶超互联网科技 微信多开 华夏互联网科技业 苏州铭阳互联网科技有限公司 烟台灵鸽互联网科技有限公司 工业互联网展湾科技股份有限公司 黑云互联网科技有限公司 互联网科技包装股 互联网金融运营模式中的金融科技 易租星互联网科技有限公司 科技赋能下的互联网金融 互联网络科技有限公司 米聚互联网科技南京有限公司排面 玉溪新华互联网科技好不好 滨湖区互联网智能科技产品有哪些 山东有哪些互联网科技公司 中天科技中国工业互联网 济南小医互联网科技有限公司招聘 珠海东科互联网科技有限公司 福建互联网展示科技馆设计
0