LVS(Linux Virtual Server)版本:ipvsadm-1.24
LVS,LB),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
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
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 requiredkeepalived执行./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*
# 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