lvs-dr实现mysql负载均衡集群

Posted Windy Tracel Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvs-dr实现mysql负载均衡集群相关的知识,希望对你有一定的参考价值。

lvs-dr实现mysql负载均衡集群

环境说明:

服务器的操作系统均为centos7,vip和rip在同一网段,使用lvs-dr模型来实现mysql集群服务

所有服务器均已配置好处VIP外的静态IP

两台mysql服务器的主机名分别是node1和node2,且已安装并启动好mysql

1. DR上配置VIP和转发规则

#配置VIP
[root@DR ~]# ip addr add 192.168.32.250/32 dev eth0



#配置ipvs转发规则
[root@DR ~]# yum -y install ipvsadm

#rr算法并不适合实际场景,这里仅作为测试
[root@DR ~]# ipvsadm -A -t 192.168.32.250:3306 -s rr
[root@DR ~]# ipvsadm -a -t 192.168.32.250:3306 -r 192.168.32.130:3306 -g
[root@DR ~]# ipvsadm -a -t 192.168.32.250:3306 -r 192.168.32.135:3306 -g
[root@DR ~]# ipvsadm -Sn
-A -t 192.168.32.250:3306 -s rr
-a -t 192.168.32.250:3306 -r 192.168.32.130:3306 -g -w 1
-a -t 192.168.32.250:3306 -r 192.168.32.135:3306 -g -w 1
#保存配置
[root@DR ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm

#如果误删,可以用保存的配置恢复
[root@DR ~]# ipvsadm -C
[root@DR ~]# ipvsadm -R < /etc/sysconfig/ipvsadm
[root@DR ~]# ipvsadm -Sn
-A -t 192.168.32.250:3306 -s rr
-a -t 192.168.32.250:3306 -r 192.168.32.130:3306 -g -w 1
-a -t 192.168.32.250:3306 -r 192.168.32.135:3306 -g -w 1


2. RS上配置arp内核参数和VIP

所有RS上都要做

[root@node1 ~]# vim /etc/sysctl.conf 
#添加以下两行
net.ipv4.conf.all.arp_ignore = 1
# 将对应网卡设置为只回应目标IP为自身接口地址的ARP请求
net.ipv4.conf.all.arp_announce = 2
# 将ARP请求的源IP设置为eth0上的IP,也就是RIP

[root@node1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


[root@node1 ~]# ip addr add 192.168.32.250/32 dev lo
[root@node1 ~]# route add -host 192.168.32.250/32 dev lo

3. 配置数据库

两台数据库服务器上授权,并创建不同名字的数据库用于区分

#node1上登录MySQL
MariaDB [(none)]> grant all on *.* to \'root\'@\'192.168.%.%\' identified by \'123456\';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)


MariaDB [(none)]> create database node1;
Query OK, 1 row affected (0.00 sec)

#node2上登录MySQL
MariaDB [(none)]> grant all on *.* to \'root\'@\'192.168.%.%\' identified by \'123456\';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database node2;
Query OK, 1 row affected (0.00 sec)

4. 客户端访问测试

[root@localhost ~]# mysql -uroot -p123456 -h192.168.32.250 -e \'show databases;\'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| node1              |
| performance_schema |
| test               |
+--------------------+
[root@localhost ~]# mysql -uroot -p123456 -h192.168.32.250 -e \'show databases;\'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| node2              |
| performance_schema |
| test               |
+--------------------+
[root@localhost ~]# mysql -uroot -p123456 -h192.168.32.250 -e \'show databases;\'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| node1              |
| performance_schema |
| test               |
+--------------------+
[root@localhost ~]# mysql -uroot -p123456 -h192.168.32.250 -e \'show databases;\'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| node2              |
| performance_schema |
| test               |
+--------------------+



[root@localhost ~]# for i in `seq 10`;do mysql -uroot -p123456 -h192.168.32.250 -e \'show databases;\'| grep node ; done
node2
node1
node2
node1
node2
node1
node2
node1
node2
node1

以上是关于lvs-dr实现mysql负载均衡集群的主要内容,如果未能解决你的问题,请参考以下文章

LVS-DR+keepalive做高可用,实现负载均衡(主备模式)

LVS-DR实现基于LAMP的负载均衡

集群------LVS-DR负载均衡群集(部署过程图文详解)

负载均衡集群之——LVS-DR的部署

LVS负载均衡群集部署之——DR模式的介绍及搭建步骤

LVS+keepalived 实现web高可用负载均衡集群