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程序包)
wgethttp://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-aipvsadm-1.24]##yum install zlib-devel gcc gcc-c++ openssl-devel pcre-devel libtool kernel-devel ncurses-devel -y
#创建内核连接 [root@lvs-aipvsadm-1.24]#ln -sv /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux#2.6.18-194.el5-i686)根据系统版本修改。 #编译安装 [root@lvs-aipvsadm-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-aipvsadm-1.24]#tar -zxf keepalived-1.2.12.tar.gz
#进入该keepalived目录 [root@lvs-a~]cd keepalived-1.2.12
#编译安装 [root@lvs-akeepalived-1.2.12]#./configure –prefix=/usr/local/keepalived#这里编译完后面显示三个yes,说明编译成功,否则安装不成功。 #以下为1.2.12版本./configure结果如下 #如果为1.1.17版本./configure结果如下 [root@lvs-akeepalived-1.2.12]#make
[root@lvs-akeepalived-1.2.12]#make install
#复制启动文件 [root@lvs-akeepalived-1.2.12]#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ ##这样才能用service keepalived 的命令。
#复制命令文件 [root@lvs-akeepalived-1.2.12]#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#复制【配置文件 [root@lvs-akeepalived-1.2.12]#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#新建主配置文件目录 [root@lvs-akeepalived-1.2.12]#mkdir -p /etc/keepalived
#编辑配置文件LVS1

[root@lvs-asysconfig]#vim /etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived

global_defs{
router_idlvs
}

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

vrrp_instanceapache{ ###定义一个vrrp实例
stateMASTER #设置lvs的状态,MASTERBACKUP两种,必须大写,主节点master,从节点backup
interfaceeth0 #设置对外服务的接口,也就是/LVS监控的网络接口
virtual_router_id01 #设置lvs监听的接口,同一实例下virtual_router_id必须相同,随便起名字
priority500 ##设置优先级,数值越大,优先级越高 ,也就是主节点的这个值大
advert_int1 ##//MASTERBACKUP负载均衡器之间同步检查的时间间隔,单位是秒

authentication{ #设置验证类型和密码
auth_typePASS
auth_passaabb ##密码
}
virtual_ipaddress{ ##设置keepalived的VIP
192.168.9.230 #如果有多个,往下加就行了
#192.168.9.231
#192.168.9.232

} }

virtual_server192.168.9.2303306{ ##定义虚拟服务器
delay_loop6 #健康检查时间,单位是秒。
lb_algorr #负载调度算法,这里设置为rr,即轮询算法
lb_kindDR #LVS实现负载均衡的机制,可以有NATTUNDR三个模式可选
nat_mask255.255.255.0 #可以不填写这个参数,
#persistence_timeout50
protocolTCP

real_server192.168.9.293306{ ##要分发的目标服务器IP,
weight1 #设置权重,也就是分发的次数,这里表示每个分发一次,
TCP_CHECK{ #通过tcpcheck判断RealServer的健康状态
connect_timeout3 ##连接超时时间
#nb_get_retry 3 #重连次数,有默认值
#delay_before_retry 3 #
重连间隔时间默认值
connect_port3306
}
}
real_server192.168.9.303306{
weight1
TCP_CHECK{
connect_timeout3
connect_port3306
}
}
} #配置完成重启keepalived
[root@lvs-asysconfig]#service keepalived restart
#添加自己的网关 [root@lvs-anetwork-scripts]#route add -host 192.168.9.254 dev eth0


#安装keepalivedlvs1相同 #安装keepalived后配置LVS2,配置如下:
[root@lvs-b~]#cat/etc/keepalived/keepalived.conf

!ConfigurationFileforkeepalived

global_defs{
router_idlvs
}

vrrp_sync_grouphttp{
group{
mysql
}
}

vrrp_instanceapache{
stateBACKUP
interfaceeth0
virtual_router_id01
priority400
advert_int1
#nopreempt
authentication{
auth_typePASS
auth_passaabb
}
virtual_ipaddress{
192.168.9.230
}
}

virtual_server192.168.9.2303306{
delay_loop6
lb_algorr
lb_kindDR
nat_mask255.255.255.0
#persistence_timeout50
protocolTCP

real_server192.168.9.293306{
weight1
TCP_CHECK{
connect_timeout3
connect_port3306
}
}
real_server192.168.9.303306{
weight1
TCP_CHECK{
connect_timeout3
connect_port3306
}
}
}

#配置完成重启keepalived
service keepalived restart
#添加自己的网关 route add -host 192.168.9.254 dev eth0
#查看 route -n
#查看分发结果 Ipvsadm -ln
#清除分发 Ipvsadm -C
#查看虚拟ipVIPIp addr
#配置mysql-realserver1 在192.168.9.29上执行:
[root@lvs-a~]#ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast192.168.9.230up ##设置的一个临时的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 broadcast192.168.9.230up 设置到主机的路由 [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’showdatabases’;
ERROR2003(HY000):Can’tconnecttoMySQLserveron’192.168.9.230′(111)
Youhavenewmailin/var/spool/mail/root [root@lvs-b~]#mysql-uroot-pliuwenhe-h292.168.9.230-e’showdatabases’;
+——————–+
|Database|
+——————–+
|information_schema|
|he|
|liuwenhe|
|mysql|
|performance_schema|
|slave1|
|test|
+——————–+
[root@lvs-b~]#mysql-uroot-pliuwenhe-h292.168.9.230-e’showdatabases’;
+——————–+
|Database|
+——————–+
|information_schema|
|he|
|liuwenhe|
|mysql|
|performance_schema|
|slave2|
|test|
+——————–+说明lvs分发成功。
看完上述内容,你们掌握LVS+keepalived的安装部署怎么完成mysql的负载均衡的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注开发云行业资讯频道,感谢各位的阅读!

相关推荐: PostgreSQL表中的隐含字段是什么意思

PostgreSQL表中的隐含字段是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。oid: 行的对象标识符(对象ID)。tableoid: 包含本行的表的OID。这个字段对那些从继承层次中选取…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/27 10:39
下一篇 06/27 10:40

相关推荐