dr模式实现mysql负载均衡集群

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

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

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

#开启IP转发
[root@DR ~]# sysctl -p
net.ipv4.ip_forward = 1

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

#rr算法
[root@DR ~]# ipvsadm -A -t 192.168.159.250:3306 -s rr
[root@DR ~]# ipvsadm -a -t 192.168.159.250:3306 -r 192.168.159.132:3306 -g
[root@DR ~]# ipvsadm -a -t 192.168.159.250:3306 -r 192.168.159.136:3306 -g
[root@DR ~]# ipvsadm -Sn
-A -t 192.168.159.250:80 -s wrr
-a -t 192.168.159.250:80 -r 192.168.159.132:80 -g -w 1
-a -t 192.168.159.250:80 -r 192.168.159.136:80 -g -w 1
-A -t 192.168.159.250:3306 -s rr
-a -t 192.168.159.250:3306 -r 192.168.159.132:3306 -g -w 1
-a -t 192.168.159.250:3306 -r 192.168.159.136:3306 -g -w 1

#保存配置
[root@DR ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm

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

[root@RS1 ~]#  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@RS1 ~]#  sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


[root@RS1 ~]#  ip addr add 192.168.159.250/32 dev lo
[root@RS1 ~]#  route add -host 192.168.159.250/32 dev lo
[root@RS1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.159.250/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:4a:7e:86 brd ff:ff:ff:ff:ff:ff
    inet 192.168.159.132/24 brd 192.168.159.255 scope global dynamic eno16777736
       valid_lft 1015sec preferred_lft 1015sec
    inet6 fe80::20c:29ff:fe4a:7e86/64 scope link 
       valid_lft forever preferred_lft forever
[root@RS2 ~]#  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@RS2 ~]#  sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


[root@RS2 ~]#  ip addr add 192.168.159.250/32 dev lo
[root@RS2 ~]#  route add -host 192.168.159.250/32 dev lo
[root@RS2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.159.250/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:2e:bc:ec brd ff:ff:ff:ff:ff:ff
    inet 192.168.159.136/24 brd 192.168.159.255 scope global dynamic eno16777736
       valid_lft 1759sec preferred_lft 1759sec
    inet6 fe80::20c:29ff:fe2e:bcec/64 scope link 
       valid_lft forever preferred_lft forever

3. 配置数据库

[root@RS1 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to 'root'@'192.168.%.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

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

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

MariaDB [(none)]> 

[root@RS2 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

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 RS2;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> 

4. 客户端访问测试

在这里插入图片描述

[root@longnian ~]# mysql -uroot -p123456 -h192.168.159.250 -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| RS1                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
[root@longnian ~]# mysql -uroot -p123456 -h192.168.159.250 -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| RS1                |
| RS2                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
[root@longnian ~]# mysql -uroot -p123456 -h192.168.159.250 -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| RS1                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值