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的负载均衡的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读! (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |