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来实现lvs的Directory Server的高可用集群,然后在利用keepalive和lvs的高可用来实现web服务的负载均衡!
三、RS上相关软件的安装和配置
1、安装配置Web
web1和web2上分别配置相应的IP地址:
RIP1:192.16.0.210/16
RIP2:192.16.0.211/16
2、安装httpd
yum install httpd �Cy
echo "web1.yuanquan.com"> /var/www/html/index.html
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上执行此脚本,来完成vip和arp参数的设置
sh startrs.sh
然后查看相关IP参数信息
ifconfig
5、将Web1配置复制到web2
然后查看相关IP参数信息
ifconfig
四、DR上相关软件的安装和配置
1、安装keepalive软件,这里使用的是已经制作好的rpm包进行安装
yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm #不校验并自动安装
2、ipvsadm软件安装,用于后面的ipvs规则的查看。
yum �Cy install ipvsadm #安装用户空间工具ipvsadm
ipvsadm �CL �Cn #查看系统ipvs规则
如此般,我们的keepalived就安装完毕!~
五、keepalive配置文件的详解
keepalive的配置文件是/etc/keepalived/keepalived.conf,其文件内分为:全局配置、vrrp配置、lvs配置、服务程序监控检查
(1)全局配置:
! Configuration File for keepalived
global_defs { #全局配置,配置参数为{}内的内容
notification_email { #keepalive服务服务信息通知邮箱,可以为多个
}
notification_email_from [email protected]
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_server与real_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改成BACKUP,priority修改为100,其他的保存不变
(5)至此我们的DS高可用已经设置完了,启动keepalive测试下效果吧
DS1和DS2上分别开启keepalive服务
service keepalived start
ip addr show
(6)
(7)下面用Vip访问一下我们的web,看是否能成功
刷新一下
(8)下面模拟一下DS1 down掉吧~看看其vip能否否自动漂移
在DS1上停止keepalive服务
service keepalived stop
此时再看DS2的IP
再用vip进行web访问:
以上就是keepalived所要实现的基于LVS高可用的一些功能,当然它的功能远不止这些,这里只讲了一小部分(其他以后会慢慢补充),希望对读者有所帮助哦!