Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。


VRRP协议简单介绍

        VRRP协议,全称Virtual Router Redundancy Protocol,中文名,《虚拟路由器冗余协议》,VRRP的出现就是为了解决静态路由的单点故障,VRRP是通过一种竞选协议机制 来将路由任务交给某台VRRP路由器。


1.准备工作

#安装了内核开发包
yum install kernel-devel -y        
#yum install kernel  -y  //更新内核,如果还没有执行这条

yum -y install openssl-devel libnfnetlink-devel libnl* popt* gcc

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

2.开始安装

wget  
tar zxf keepalived-2.0.7.tar.gz 
cd keepalived-2.0.7
./configure
make
make install

或者 yum -y install keepalived

#启动
/etc/init.d/keepalived start

#帮助
man keepalived.conf

#注意,用keepalived,用普通方法ifconfig 看不到IP地址,使用ip add即可

#日志地址 
tail -f /var/log/messages


3.单,多,实例配置文件

/etc/keepalived/keepalived.conf

单实例配置 MASTER(主服务器)

! Configuration File for keepalived

global_defs {
   notification_email {
   542129333@qq.com                            #通知到的邮件,一般不用,监控代替。
   }
   notification_email_from xxxx@qq.com         #邮件发件人
   smtp_server 10.0.0.1                        #发邮件的服务器
   smtp_connect_timeout 30                     #超时
   router_id LVS_1                             #keepalived  ID
}

vrrp_instance VI_1 {            #一个实例(可以理解为虚拟路由器)
    state MASTER                #标记当前实例路由器的状态
    interface eth0              #绑定的接口
    virtual_router_id 55        #P虚拟路由器ID
    priority 150                #优先级
    advert_int 1                #接管间隔 秒
    authentication {            #授权口令
        auth_type PASS          
        auth_pass 1111          
    }
    virtual_ipaddress {         #VIP地址
        10.10.0.9/24
    }
}

单实例配置 BACKUP(备服务器)

! Configuration File for keepalived

global_defs {
   notification_email {
   542129333@qq.com                            #通知到的邮件,一般不用,监控代替。
   }
   notification_email_from xxxx@qq.com         #邮件发件人
   smtp_server 10.0.0.1                        #发邮件的服务器
   smtp_connect_timeout 30                     #超时
   router_id LVS_2                             #keepalived  ID
}

vrrp_instance VI_1 {            #一个实例(可以理解为虚拟路由器)
    state BACKUP                #标记当前实例路由器的状态
    interface eth0              #绑定的接口
    virtual_router_id 55        #P虚拟路由器ID
    priority 100                #优先级
    advert_int 1                #接管间隔 秒
    authentication {            #授权口令
        auth_type PASS          
        auth_pass 1111          
    }
    virtual_ipaddress {         #VIP地址
        10.10.0.9/24
    }
}

不一样的地方:router_id LVS_2,BACKUP,priorit,同实例router ID 必须一致。


多实例之间的配置router id 不能一致

增加:vrrp_instance VI_2