lvs+keepalive


1.安装LVS和Keepalived
#modprobe ip_vs //内核加载ip_vs模块
#lsmod |grep ip_vs //看看加载是否成功
ip_vs 78081 0
#uname -r

2.6.18-53.el5PAE

#ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/ /usr/src/linux //生成一个链接文件

如果/usr/src/kernels没有2.6.18-194.el5,则需要编译

#yum -y install kernel-devel
#yum -y update kernel
#cp /usr/src/kernels/2.6.18-274.el5/include/net/ip_vs.h /usr/inclide/net/ //这个很重要,否则在安装ipvsadm的时候会提示缺少*.h文件

lvs安装
tar -xzvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24


make
出错
make[1]: *** [libipvs.o] 错误 1
make[1]: Leaving directory `/root/ipvsadm-1.24/libipvs'
make: *** [libs] 错误 2
解决
yum install libnl* popt*
make install
出现一些字样
install -m 0755 -s ipvsadm /sbin
install -m 0755 ipvsadm-save /sbin
install -m 0755 ipvsadm-restore /sbin
[ -d /usr/man/man8 ] || mkdir -p /usr/man/man8
install -m 0644 ipvsadm.8 /usr/man/man8
install -m 0644 ipvsadm-save.8 /usr/man/man8
install -m 0644 ipvsadm-restore.8 /usr/man/man8
if [ -d /etc/rc.d/init.d ]; then \
install -m 0755 ipvsadm.sh /etc/rc.d/init.d/ipvsadm; \
fi
表示成功

keepalived安装
#yum -y install openssl openssl-devel //安装keepalived需要
tar -xzvf keepalived-1.1.20.tar.gz

出现以下信息表示成
Keepalived configuration
------------------------
Keepalived version : 1.1.20
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
Use VRRP Framework : Yes
Use Debug flags : No


#find / -name keepalived # 查看keepalived位置


#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/
#service keepalived start|stop #做成系统启动服务方便管理.


需要自己编辑

配置LVS
在LVS机上配置(两台都要配置)
1. LVS-DR,配置LVS脚本实现负载均衡
#vi /usr/local/sbin/lvs-dr.sh

#!/bin/bash

# description: start LVS of DirectorServer

#Written by :NetSeek http://www.linuxtone.org



GW=61.164.122.1

# website director vip.

SNS_VIP=192.168.1.120

SNS_RIP1=192.168.1.110

SNS_RIP2=192.168.1.113


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


logger $0 called with $1


case "$1" in


start)

# set squid vip

/sbin/ipvsadm --set 30 5 60

/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up

/sbin/route add -host $SNS_VIP dev eth0:0

/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3

/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1

/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1

touch /var/lock/subsys/ipvsadm >/dev/null 2>&1


;;

stop)

/sbin/ipvsadm -C

/sbin/ipvsadm -Z

ifconfig eth0:0 down

route del $SNS_VIP

rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1

echo "ipvsadm stoped"

;;


status)


if [ ! -e /var/lock/subsys/ipvsadm ];then

echo "ipvsadm stoped"

exit 1

else

echo "ipvsadm OK"

fi

;;


*)

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

exit 1

esac


exit 0


配置Realserver脚本


#vi /usr/local/sbin/realserver.sh

#!/bin/bash

# description: Config realserver lo and apply noarp
#Written by :NetSeek http://www.linuxtone.org



SNS_VIP=192.168.1.120



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



case "$1" in

start)

ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

/sbin/route add -host $SNS_VIP 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"



;;

stop)

ifconfig lo:0 down

route del $SNS_VIP >/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"

;;

*)

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

exit 1

esac



exit 0


或者采用secondary ip address方式配置
# vi /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2



#sysctl -p

#ip addr add 192.168.1.120/32 dev lo

#ip add list 查看是否绑定

3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态:

#watch ipvsadm -ln


配置keeplive

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived


global_defs {

notification_email {

cnseek@gmail.com

}

notification_email_from sns-lvs@gmail.com

smtp_server 127.0.0.1

# smtp_connect_timeout 30

router_id LVS_DEVEL

}


# 20081013 written by :netseek

# VIP1

vrrp_instance VI_1 {

state MASTER #备份服务器上将MASTER改为BACKUP

interface eth0

virtual_router_id 51

priority 100 # 备份服务上将100改为99

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

61.164.122.8

#(如果有多个VIP,继续换行填写.)

}

}


virtual_server 61.164.122.8 80 {

delay_loop 6 #(每隔10秒查询realserver状态)

lb_algo wrr #(lvs 算法)

lb_kind DR #(Direct Route)

persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)

protocol TCP #(用TCP协议检查realserver状态)


real_server 61.164.122.9 80 {

weight 3 #(权重)

TCP_CHECK {

connect_timeout 10 #(10秒无响应超时)

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 61.164.122.10 80 {

weight 3

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

# /usr/local/sbin/lvsdr.sh start (把这条语句写到/etc/rc.local中,开机启动)
#/etc/init.d/keepalived start 启动keepalived 服务,keepalived就能利用keepalived.conf 配置文件,实现负载均衡和高可用.
#watch ipvsadm –ln


参考文章

http://bbs.linuxtone.org/thread-1077-1-1.html
http://31543.blog.51cto.com/21543/110472/
http://nhylovezyh.blog.51cto.com/1444948/666446
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值