Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个mysqllvsnginx服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

以下简图为例,当服务调用mysql的时候,直接调用vip,这样即使master上宕机,依旧可访问从数据库。

构建高可用服务器之一 Keepalive介绍及安装

Keepalive的安装:

1、  安装环境包

[[email protected] ~]# yum  -y  install  kernel-devel openssl-devel  popt-devel

2、  安装keepalive

[[email protected] ~]#  wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
[[email protected] ~]# tar -zxf keepalived-1.1.15.tar.gz
[[email protected] ~]# cd keepalived-1.1.15
[[email protected] keepalived-1.1.15]#./configure --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/
[[email protected] ~]# make && make install

在编译选项中,“--sysconf”指定了Keepalived配置文件的安装路径.“--with-kernel-dir”是个很重要的参数,但这个参数并不是要把Keepalived编译进内核,而是指定使用内核源码中的头文件,即include目录。只有在使用LVS时,才需要用到“--with-kernel-dir”参数,其他时候是不需要的。

3、  设置keepalive

[[email protected] ~]# DIR=/usr/local/ ; cp$DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[[email protected] ~]# cp $DIR/etc/sysconfig/keepalived  /etc/sysconfig/ && mkdir -p /etc/keepalived
[[email protected] ~]# cp $DIR/sbin/keepalived  /usr/sbin/
[[email protected] ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[[email protected] ~]# /etc/init.d/keepalivedrestart
Stopping keepalived:                                       [FAILED]
Starting keepalived:                                       [  OK  ]
[[email protected] ~]#modprobe ip_vs 
[[email protected] ~]#modprobe ip_vs_rr
[[email protected] ~]#modprobe ip_vs_wrr

Other

脚本配置文件:

[[email protected] ~]# chmod +xinstall_keepalive.sh
[[email protected] ~]# cat install_keepalive.sh
#!/bin/bash
yum -y  install  kernel-devel openssl-devel  popt-devel &&
wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz &&
tar -zxf  keepalived-1.1.15.tar.gz &&
cd keepalived-1.1.15 &&
./configure --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ &&
make && make install &&
DIR=/usr/local/
cp $DIR/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/  &&
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived &&
cp $DIR/sbin/keepalived /usr/sbin/&&
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ &&
/etc/init.d/keepalived restart
if [ $? -eq 0 ];then
         echo -e '\e[32mInstall Keepalive Successfully!\e[0m'
else
         echo -e '\e[31mInstall Keepalive Failure!\e[0m'
fi
[[email protected]n ~]#

其实这个不算是什么脚本,方便安装而已,一定要注意内核版本号要对应。