Lvs+keepalived 高可用性负载均衡自动化配置

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://navyaijm.blog.51cto.com/4647068/809397

前言* 随着互联网的发展,提供用户访问的web服务器,必须要保证每天24不间断服务,访问量不断增加,有什么好的web架构既能实现高可用性负载均衡,而且价格又是免费的呢?答案有木有?有!lvs+keepalived 是不错的选择!

 
一、实验环境:4台centos 5.4 ,以及简单的拓扑图:
LVS-Master 192.168.2.108
LVS-BACKUP 192.168.2.109
LVS-DR-VIP     192.168.2.100
WEB1-Realserver  192.168.2.79
WEB2-Realserver   192.168.2.80
 

 
二、安装ipvsadm+keepalived,用脚本自动安装:
 
由于我们使用的是lvs+keepalived,所以这里不需要配置lvs-dr脚本,直接在keepalived.conf里面配置即可!
#!/bin/sh
###脚本编写目的:自动安装lvs+keepalived
###编写时间: 2011 7617:25:39
###初稿人:wugk
###定义变量
DIR1=/usr/src   
DIR2=/usr/local
 
cat << EOF
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++Welcome to use Linux installed a key LVS+KEEPALIVED shells scripts
+++++++++++++++++++++*************************++++++++++++++++++++++++
EOF
 
if
[ $UID -ne 0 ];then
 
echo “This script must use root user ,please exit……”
sleep 2
exit 0
 
fi
 
download ()
{
cd $DIR1 && wget -c http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
 
if
[ $? = 0 ];then
 
echo "Download LVS Code is OK!"
else
echo "Download LVS Code is failed,Please check!"
exit 1
fi
}
 
ipvsadm_install ()
{
 
ln -s $DIR1/kernels/2.6.* $DIR1/linux
 
cd $DIR1 && tar xzvf ipvsadm-1.24.tar.gz &&cd ipvsadm-1.24 && make && make install
if
[ $? -eq 0 ];then
echo "Install ipvsadm success,please waiting install keepalived ..............."
else
echo "Install ipvsadm failed ,please check !"
exit 1
fi
}
 
keepalived_install ()
{
cd $DIR1 && tar -xzvf keepalived-1.1.15.tar.gz &&cd keepalived-1.1.15 && ./configure && make && make install
if
[ $? -eq 0 ];then
echo "Install keepalived success,please waiting configure keepalived ..............."
else
echo "Install keepalived failed ,please check install version !"
exit 1
fi
}
 
######如果以上软件包编译报错的话,请检查相关的版本跟系统版本之间的关系,然后手动下载安装.
 
keepalived_config ()
{
cp $DIR2/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/ && cp $DIR2/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived &&cp $DIR2/etc/keepalived/keepalived.conf /etc/keepalived/ && cp $DIR2/sbin/keepalived /usr/sbin/
if
[ $? -eq 0 ];then
 
echo "Keepalived system server config success!"
else
echo "Keepalived system server config failed ,please check keepalived!"
exit 1
fi
 
}
 
PS3="Please select Install Linux Packages:"
 
select option in download ipvsadm_install keepalived_install keepalived_config
 
do
 
$option
 
done
以上脚本分别在lvs-master和lvs-backup上执行安装。
 
三、配置keepalived.conf:内容如下是lvs-master配置
也可以参考配置: http://chinaapp.sinaapp.com/download/keepalived.conf 可以直接打开
 
! Configuration File for keepalived
 
global_defs {
   notification_email {
      wgkgood@163.com
   }
   notification_email_from wgkgood@163.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
 
# VIP1
vrrp_instance VI_1 {
    state MASTER  
    interface eth0
    lvs_sync_daemon_inteface eth0
    virtual_router_id 51
    priority 100
    advert_int 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.100  
    }
}
#REAL_SERVER_1
virtual_server 192.168.2.100 80 {
    delay_loop 6   
    lb_algo wlc   
    lb_kind DR  
    persistence_timeout 60   
    protocol TCP        
 
    real_server 192.168.2.79 80 {
        weight 100       
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
}
#REAL_SERVER_2
    real_server 192.168.2.80 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
       
        }
    }
}
注意***Lvs-backup端同样配置,只需要更改state MASTER为state BACKUP,修改priority 100为priority 90即可。
 
四、分别在web1、web2上配置好apache,然后分别执行如下脚本:
 
如下的VIP1指的是lvs-dr-vip地址,及对外提供访问的虚拟ip:
#!/bin/sh
 
PS3="Please Choose whether or not to start a realserver VIP1 configuration:"
 
select i in "start" "stop"
 
do
case "$i" in
 
start)
 
read -p  "Please enter the virtual server IP address:" VIP1
ifconfig lo:0 $VIP1 netmask 255.255.255.255 broadcast $VIP1
/sbin/route add -host $VIP1 dev lo:0
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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
exit 0
;;
 
stop)
ifconfig lo:0 down
route del $VIP1 >/dev/null 2>&1
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
echo "RealServer Stoped"
exit 1
;;
*)
echo "Usage: $0 {start|stop}"
exit 2
esac
done
脚本会提示是否启动,按1即启动,然后输入vip地址 192.168.2.100 ,用ifconfig你会看到:lo:0的ip即表示配置ip成功。
lo:0       Link encap:Local Loopback 
          inet addr:192.168.2.100 Mask:255.255.255.255
          UP LOOPBACK RUNNING MTU:16436 Metric:1
 
五、最后启动lvs-master、lvs-backup上面的keepalived服务即可:
/etc/init.d/keepalived restart 查看lvs-master日志:
 
在浏览器里面访问  http://192.168.2.100/ 即可!当你宕掉lvs-master后,lvs-backup会接管变成lvs-master提供服务,当lvs-master故障恢复后,lvs-backup又会变成原来的状态!
所安装的脚本可以在这里下载:
 
 
http://chinaapp.sinaapp.com/download/realserver.sh                 在web服务器端执行    

本文出自 “屌丝运维男” 博客,请务必保留此出处http://navyaijm.blog.51cto.com/4647068/809397

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
12天前
|
弹性计算 tengine 负载均衡
slb高可用性
【11月更文挑战第4天】
27 1
|
22天前
|
负载均衡 网络协议 网络安全
SLB-Backend多实例部署配置健康检查
【10月更文挑战第22天】
48 3
|
3天前
|
负载均衡 应用服务中间件
slb何时需要配置健康检查域名
slb何时需要配置健康检查域名
14 3
|
16天前
|
弹性计算 负载均衡 算法
slb 配置不当
【11月更文挑战第2天】
32 10
|
17天前
|
负载均衡 监控 应用服务中间件
slb配置同步问题
【11月更文挑战第1天】
27 3
|
24天前
|
弹性计算 运维 监控
SLB-Backend的高可用性
【10月更文挑战第19天】
37 5
|
25天前
|
弹性计算 负载均衡 算法
slb配置监听器
【10月更文挑战第18天】
39 3
|
5月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
122 2
|
4月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
94 1
|
4月前
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
466 2
下一篇
无影云桌面