当前位置: 主页 > 环境部署 > 负载均衡 >

lvs+keepalived 4层负载均衡 高可用

时间:2013-04-23 11:56来源:www.shencan.net 作者:shencan 点击:
接着写吧 写完7层 再来4层 关于LVS跟haproxy的区别 网上很多 当然你也可以用haproxy 跑4层来代替 LVS (好像LVS也有7层负载均衡 官网有名字不叫LVS) 有时间 可以对比测试一下 haproxy 4层跟LVS的
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


接着写吧   写完7层 再来4层  关于LVS跟haproxy的区别 网上很多 当然你也可以用haproxy 跑4层来代替 LVS  (好像LVS也有7层负载均衡 官网有名字不叫LVS)  有时间 可以对比测试一下 haproxy  4层跟LVS的 性能

先说下吧    LVS+keepalived 也是组合   不一定得用这个架构  咱们公司用的是 heartbeat  当时keepalived 配置 方便 (改一个配置文件就行)

安装吧

LVS安装

tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
ln -s /usr/src/kernels/`uname -r`-`uname -i`/ /usr/src/linux
make && make install

敲下ipvsadm 有反应 就算  安装成功了  这里LVS所有的配置 都不用改  因为keepalived 有个模块  可以来管理LVS   (无非就行 执行命令 来 + – realserver  权重啥吧)

keepalived安装

看一下 刚才的7层负载均衡高可用 那个文章

 

配置吧

vrrp_instance VIP_1 {
interface bond0
state MASTER
virtual_router_id 10
priority 100
virtual_ipaddress {
222.73.X.X    #VIP
}
}
sorry_server 127.0.0.1 53   #这个牛掰了 就是后端所有realserver 都不能用的时候 所有请求都给他   (当然 IP 跟端口  自己写)
virtual_server   222.73.X.X  53 {   #这个下面 大家都懂吧   DR模式哟
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 30
protocol UDP    #因为是DNS 是UDP哟  这个搞了 我一段时间 排错

real_server 222.73.X.Y 53 {
MISC_CHECK {
misc_path “/root/shencan145.sh”  # 这个比较关键  咱们线上很蛋疼 得绑定后端设备解析一个域名 看结果 是不是我想要的    用这个来判断后端realserver  可用不  (53通 不一定服务是好的)
misc_timeout 3
}
}

real_server 222.73.X.Z 53 {
MISC_CHECK {           #这个是keepalived 自带的几种探测之一  这个最灵活 (可以自己写脚本 )   根据脚本的返回值来确定 后端是不是可用
misc_path “/root/shencan146.sh”
misc_timeout 3      #执行脚本超时
}
}

}

看下那个脚本(2个脚本)

cat  shencan145.sh   (很简单 不过 你也可以写得麻烦点)  网上用这个来 监控mysql啥的 都行 只要你会写脚本(好像没有脚本类型现在  perl shell python 都行 但是得有执行权限)

#!/bin/bash
status=`dig @222.73.X.A www.shencan.net +short`

if [ "$status" == "114.114.114.114" ]
then
exit 0;
else
exit 1;

fi

real-server 脚本 (网上很多 改下VIP就行)

cat /etc/init.d/real-server  (记住有执行权限)

# Script to start LVS DR real server.
#
# chkconfig: 2345 20 80
# description: LVS DR real server
#
# You must set the VIP address to use here:
VIP=117.144.231.210
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 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 Running.”
fi
;;
*)
# Invalid entry.
echo “$0: Usage: $0 {start|status|stop}”
exit 1
;;
esac

 

总结下吧

LVS 的东西不多

keepalived的东西 还是比较多的   没事的看看 官方手册  很多东西可以 研究

有时间 再将个keepalived的 配置吧

转载请注明linux系统运维
http://www.linuxyw.com/linux/fuzaijunheng/20130423/117.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片