Keepalived实现LVS的高可用

一、概念引入:

keepalived作用:为lvs提供高可用集群

Keepalived的功能:1、将IP地址转移到另一个节点上;2、转移lvs规则;3、健康状况检查 即:health-check

Keepalived通过VRRP协议实现health-check,那么,什么叫做VRRP呢?

二、VRRP的定义

VRRP Virtual Routing Redundent Protocol是虚拟路由冗余协议,通过此协议我们可以把多个路由器做成一个虚拟路由器,从而来保证其中某个路由DOWN掉的时候不会造成我们内部外部网络的全部中断,其主要是实现地址漂移的

利用keepalive来实现lvsDirectory Server的高可用集群,然后在利用keepalivelvs的高可用来实现web服务的负载均衡!

三、RS上相关软件的安装和配置

1、安装配置Web

web1web2上分别配置相应的IP地址:

RIP1:192.16.0.210/16

RIP2:192.16.0.211/16

2、安装httpd

yum install httpd y  

echo "web1.yuanquan.com"> /var/www/html/index.html

204418195.png

204437547.png

3、配置脚本 startrs.sh 如下:

#!/bin/bash

#

# Script to start LVS DR real server.

# description: LVS DR real server

#

.  /etc/rc.d/init.d/functions

VIP=192.168.0.212

host=`/bin/hostname`

case "$1" in

start)

      # Start LVS-DR real server on this machine.

       /sbin/ifconfig lo down

       /sbin/ifconfig lo up

       echo 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

       /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

       /sbin/route add -host $VIP dev lo:0

;;

stop)

       # Stop LVS-DR real server loopback device(s).

       /sbin/ifconfig lo:0 down

       echo 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

;;

status)

       # Status of LVS-DR real server.

       islothere=`/sbin/ifconfig lo:0 | grep $VIP`

       isrothere=`netstat -rn | grep "lo:0" | grep $VIP`

       if [ ! "$islothere" -o ! "isrothere" ];then

           # Either the route or the lo:0 device

           # not found.

           echo "LVS-DR real server Stopped."

       else

           echo "LVS-DR real server Running."

       fi

;;

*)

           # Invalid entry.

           echo "$0: Usage: $0 {start|status|stop}"

           exit 1

;;

esac

4、在web1上执行此脚本,来完成viparp参数的设置

sh startrs.sh

然后查看相关IP参数信息

ifconfig

204450842.png

5、将Web1配置复制到web2

204503606.png

然后查看相关IP参数信息

ifconfig

204529507.png

四、DR上相关软件的安装和配置

1、安装keepalive软件,这里使用的是已经制作好的rpm包进行安装

yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm   #不校验并自动安装

204625873.png

2ipvsadm软件安装,用于后面的ipvs规则的查看。

yum y install ipvsadm  #安装用户空间工具ipvsadm

ipvsadm L n            #查看系统ipvs规则

204739282.png

如此般,我们的keepalived就安装完毕!~

五、keepalive配置文件的详解

  keepalive的配置文件是/etc/keepalived/keepalived.conf,其文件内分为:全局配置、vrrp配置、lvs配置、服务程序监控检查

(1)全局配置:

! Configuration File for keepalived              

global_defs {                             #全局配置,配置参数为{}内的内容  

 notification_email {               #keepalive服务服务信息通知邮箱,可以为多个    

 acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

}    

 notification_email_from Alexandre.Cassen@firewall.loc    

 smtp_server 127.0.0.1                   #smtp服务器    

 smtp_connect_timeout 30                      #连接smtp超时时间    

 router_id LVS_DEVEL  

(2):虚拟路由组

vrrp_instance VI_1  {

state MASTER

interface eth0

virtual_router_id 51

priority 101

advert_int 1

authentication  {

auth_type PASS

auth_pass password

 }

virtual_ipaddress {

172.16.10.1

 }

 }

(3):Virtual_serverreal_server设置

virtual_server 172.16.10.1 80 {

delay_loop 6

lb_algo wlc

Lb_kind DR

nat_mask 255.255.0.0

persistence_timeout 50

protocol TCP

real_server 192.168.0.210  80 {

weight 1

url {

path /

status_code 200

 }

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

 }

 }

virtual_server 172.16.10.1 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.0.0

persistence_timeout 50

protocol TCP

real_server 192.168.0.211  80 {

weight 1

url {

path /

status_code 200

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

(4):更改完成后复制到DS2上相同的一份,并把其中的state改成BACKUPpriority修改为100,其他的保存不变

204759631.png

(5)至此我们的DS高可用已经设置完了,启动keepalive测试下效果吧

   DS1DS2上分别开启keepalive服务

   service keepalived start

   ip addr show

(6)

204813195.png

(7)下面用Vip访问一下我们的web,看是否能成功

204827691.png

  刷新一下

204844467.png

(8)下面模拟一下DS1 down掉吧~看看其vip能否否自动漂移

   DS1上停止keepalive服务

   service keepalived stop

204858483.png

此时再看DS2IP

204911294.png

再用vip进行web访问:

204926384.png

   以上就是keepalived所要实现的基于LVS高可用的一些功能,当然它的功能远不止这些,这里只讲了一小部分(其他以后会慢慢补充),希望对读者有所帮助哦!