加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮北站长网 (https://www.0561zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 通讯 > 正文

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

发布时间:2021-12-20 10:33:43 所属栏目:通讯 来源:互联网
导读:LVS+keepalived的安装部署怎么完成mysql的负载均衡,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 试验环境: LVS1:192.168.9.27 LVS2:192.168.9.28 keepalived 的VIP:192.168.9.23

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结果如下
 
LVS+keepalived的安装部署怎么完成mysql的负载均衡
 
#如果为1.1.17版本./configure结果如下
 
 LVS+keepalived的安装部署怎么完成mysql的负载均衡
 
[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的负载均衡的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

(编辑:淮北站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读