LVS+keepalived+mycat负载均衡及自动转发

来源:互联网 发布:unity3d 2d碰撞检测 编辑:程序博客网 时间:2024/05/22 01:42
1、系统环境

LVS(Linux Virtual Server)版本:ipvsadm-1.24

    LVSLB)RS)<span times="" new="" roman";="" mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:="" 宋体;mso-hansi-theme-font:minor-fareast;mso-bidi-font-family:"times="" mso-font-kerning:1.0pt"="" style="word-wrap: break-word; font-size: 9pt;">群组成

keepalived版本:keepalived-1.1.15

    keepalived负责健康状态监测,如果出现宕机则从集群中剔除。

2、说明

Keepalived在这里主要用作RealServer的健康状态检查以及Master主机和BackUP主机之间failover(故障自动切换)的实现

基于LVS+Keepalived的MyCAT高可用负载均衡集群,其中,LVS实现MyCAT的负载均衡,但是,简单的LVS不能监控后端节点是否健康,它只是基于具体的调度算法对后端服务节点进行访问。同时,单一的LVS又存在单点故障的风险。在这里,引进了Keepalived,可以实现以下几个功能:

      2.1. 检测后端节点是否健康。

      2.2. 实现LVS本身的高可用。

3、配置环境:

角色                                    主机IP                    主机名               操作系统版本     软件版本

VIP(虚拟ip)                         192.168.244.10    

LVS-DR-Master                   192.168.244.146    keepalived01     CentOS7.1        Keepalived v1.2.13,LVS 1.2.1

LVS-DR-Backup                  192.168.244.147    keepalived02     CentOS7.1        Keepalived v1.2.13,LVS 1.2.1

mycat-Realserver                192.168.244.148    mycat01            CentOS7.1       mycat v1.5 

mycat-Realserver                192.168.244.149    mycat02            CentOS7.1       mycat v1.5 

注:虚拟ip要保证同一网段没有使用的ip

4、安装步骤
 4.1:分别在keepalived01和keepalived02两台主机上安装ipvsadm
下载ipvsadm包
# yum install  ipvsadm -*-*.*(注意linux内核版本)

4.2 查看内核版本并检查kernel开发包

uname -r

2.6.32-431.el6.x86_64

先进cd /usr/src/kernels/看有没有该文件:

2.6.32-642.6.1.el6.x86_64

如果没有,需要:yum -y install kernel-devel

安装后能看到/usr/src/kernels/2.6.32-642.6.1.el6.x86_64文件夹后面编译keepalived时有用到--with-kernel-dir=/usr/src/kernels/2.6.32-642.6.1.el6.x86_64加这个参数是在keepalived中使用到LVS,所以必须加这个参数

#创建软连接

ln -s /usr/src/kernels/2.6.32-642.6.1.el6.x86_64/ /usr/src/linux


解压编译安装ipvsadm

tar -xvf ipvsadm-1.24.tar.gz

make && make install

安装时遇到下面的错误需要安装libnl-devel和popt后就不报错了,

yum install -y libnl* popt* 


#验证是否安装成功

[root@ser6-70 ipvsadm-1.24]# /sbin/ipvsadm -v

ipvsadm v1.24 2005/12/10 (compiled with getopt_long and IPVS v1.2.1)

说明安装成功。


4.2

安装keepalived

安装keepalived前先要安装popt-devel,openssl :

yum install popt-devel -y

yum install -y openssl openssl-devel

#解压

tar zxvf keepalived-1.1.19.tar.gz

./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/  2.6.32-642.6.1.el6.x86_64


(这里注意安装目录)

 

make
make install

将keepalived做成启动服务,方便管理

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/mkdir /etc/keepalivedcd /etc/keepalived/cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived 

mkdir -p/usr/local/keepalived/var/log

[root@LVS-MASTER ~]# service keepalived start | stop


配置keepadlived


lvs-master配置


vi /etc/keepalived/keepalived.conf    



lvs-backup 配置与主配置类似主要特殊标志的地方进行修改



4.3mycat安装(MyCAT服务器上为lo:0绑定VIP地址

mycat正常安装,额外加一个realserver.sh脚本lo:0绑定VIP地址

脚本放在/usr/local/realserver/realserver.sh

内容

#!/bin/bash#description: Config realserverVIP=192.168.244.10    /etc/rc.d/init.d/functions case "$1" instart)       /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP       /sbin/route add -host $VIP dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce       sysctl -p >/dev/null 2>&1echo "RealServer Start OK"       ;;stop)       /sbin/ifconfig lo:0 down       /sbin/route del $VIP >/dev/null 2>&1echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce       echo "RealServer Stoped"       ;;*)       echo "Usage: $0 {start|stop}"       exit 1
esac exit 0
开启配置
chmod +x realserver.sh
./realserver.sh start
 执行ip addr查看VIP是否绑定成功

分别在keepalived01和keepalived02上启动Keepalived服务

      [root@keepalived01 keepalived]# service keepalived start

      [root@keepalived02 keepalived]# service keepalived start

 通过ipvsadm -L(查看linux内核虚拟服务器)命令查看VIP是否能成功映射到后端mycat服务。如果失败了,可通过/var/log/messages日志定位keepalived启动失败的原因。      

测试
在mysql服务器测试
 mysql -h192.168.244.10 -P8066 -utest -ptest -DTESTDB  -e 'select @@hostname'
5、安装常见错误
keepalived出现configure: error: Popt libraries is required

keepalived执行./configure --prefix=/usr/local/keepalived时报错:configure: error: Popt libraries is required
出现此错误的原因:
未安装popt的开发包

解决方法:
yum install popt-devel
安装好popt的开发包。

重新./configure 即可。

2、/etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions 

3、安装ipvsadmi的时候经常报错误


解决方案:

经网上多方查询安装libnl-devel和popt后就不报错了,
yum install -y libnl* popt* 

6、设置keepalived开机启动

# ln -s /etc/rc.d/init.d/keepalived /etc/rc2.d/S99keepalived

# chkconfig --level 2345 keepalived on


7、设置mysql开机启动

#chkconfig --level 3 mysql on


8、mycat开机启动

编辑/etc/profile

在最后加入以下命令

sh /usr/local/mycat/bin/mycat start








说明:部分截图没有上传,如果需要请留言!



0 0
原创粉丝点击