1、负载均衡技术负载均衡技术一、目前有三种IP负 载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。LVS+keepalived负载均衡架构图 二、LVS+keepalived的安装和配置1. 配置环境System OS:CentOS release 5.4Software:ipvsadm-1.24.tar.gz, keepalived-1.1.19.tar.gz2. 信息列表名称IPLVS-Master192.168.1.112LVS-BACKUP192.168.1.113LVS-VIP192.168.1.115R
2、ealserver1192.168.1.105Realserver2192.168.1.103Realserver3192.168.1.1043. 安装lvs分别在backup lvs和master lvs上安装wget http:/www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gzln -s /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linuxtar zxvf ipvsadm-1.24.tar.gzcd ipvsadm-1.24make & make inst
3、all4. 安装keepalived分别在backup lvs和master lvs上安装wget http:/www.keepalived.org/software/keepalived-1.1.19.tar.gztar zxvf keepalived-1.1.19.tar.gzcd keepalived-1.1.19./configure -prefix=/usr/local/keepalivedmake make installcp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/s
4、ysconfig/keepalived /etc/sysconfig/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/mkdir /etc/keepalived5. 配置keepadlivedLVS-Master的配置文件如下rootlinux5 # cat /etc/keepalived/keepalived.confglobal_defs notification_email jimo291 #email 通知 notification_email_from jimo291 smtp_server 127.0.
5、0.1 smtp_connect_timeout 30 router_id LVS1 # 设置lvs的id,在一个网络内应该是唯一的vrrp_sync_group test #设置vrrp组group loadbalancevrrp_instance loadbalance state MASTER #设置lvs的状态,报错MASTER和BACKUP两种,必须大写 interface eth0 #设置对外服务的接口 lvs_sync_daemon_inteface eth0 #设置lvs监听的接口 virtual_router_id 51 #设置虚拟路由表示 priority 180 #设置优
6、先级,数值越大,优先级越高 advert_int 5 #设置同步时间间隔authentication #设置验证类型和密码 auth_type PASS auth_pass 1111virtual_ipaddress #设置lvs vip 192.168.1.115virtual_server 192.168.1.115 80 delay_loop 6 #健康检查时间间隔 lb_algo rr #负载均衡调度算法 lb_kind DR #负载均衡转发规则 #persistence_timeout 20 #设置会话保持时间,对bbs等很有用 protocol TCP #协议 real_serve
7、r 192.168.1.105 80 weight 3 #设置权重 TCP_CHECK connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 real_server 192.168.1.103 80 weight 3 TCP_CHECK connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 real_server 192.168.1.104 80 weight 3 TCP_CHECK connect_timeout 3 nb
8、_get_retry 3 delay_before_retry 3 connect_port 80LVS-backup的配置文件如下global_defs notification_email jimo291 notification_email_from jimo291 smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS2vrrp_sync_group test group loadbalancevrrp_instance loadbalance state BACKUP interface eth0 lvs_sync_da
9、emon_inteface eth0 virtual_router_id 51 priority 150 advert_int 5authentication auth_type PASS auth_pass 1111virtual_ipaddress 192.168.1.115virtual_server 192.168.1.115 80 delay_loop 6 lb_algo rr lb_kind DR #persistence_timeout 20 protocol TCP real_server 192.168.1.105 80 weight 3 TCP_CHECK connect_
10、timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 real_server 192.168.1.103 80 weight 3 TCP_CHECK connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 real_server 192.168.1.104 80 weight 3 TCP_CHECK connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 6.
11、 Realserver的配置三台客户端的脚本都一样!cat /etc/rc.d/init.d/realserver.sh#!/bin/bash# description: Config realserver lo and apply noarpSNS_VIP=192.168.1.115/etc/rc.d/init.d/functionscase $1 instart) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 echo 1 /
12、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/s
13、ys/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 1esacexit 07. 测试1) 首先测试各个realserver,确定各个realserver都能正常访问,测试realserver.
14、sh脚本,看启动后 能不能绑定lvs vip,停止后能不能去除绑定的vip2) 测试lvs能否进行负载均衡转发,利用ipvsadm命令查看,如果想只当当前的 请求转发到哪个服务器去了,可以用ipvsadm加选项来查看,其完整形式为:ipvsadm lcn | grep 192.168.1.1153) 停掉主lvs看lvs backup是否接管! 更详细信息请查看日志,tail -f /var/log/messagesLVS+Keepalived实现高可用集群来源: ChinaUnix博客 日期: 2009.07.21 14:49(共有条评论) 我要评论操作系统平台:CentOS5.2软件:LV
15、S+keepalivedLVS+Keepalived 介绍LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项 目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。KeepalviedKeepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现IP配置信息: LV
16、S-DR-Master 192.168.2.166 LVS-DR-BACKUP 192.168.2.167 LVS-DR-VIP 192.168.2.170 WEB1-Realserver 192.168.2.171 WEB2-Realserver 192.168.2.172 GateWay 192.168.2.253安装LVS和Keepalvied软件包 1. 下载相关软件包 #mkdir /usr/local/src/lvs#cd /usr/local/src/lvs#wget http:/www.linuxvirtualserver.org/software/kernel-2.6/ipv
17、sadm-1.24.tar.gz#wget http:/www.keepalived.org/software/keepalived-1.1.15.tar.gz2. 安装LVS和Keepalived #lsmod |grep ip_vs #uname -r 2.6.18-53.el5PAE #ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/usr/src/linux #tar zxvf ipvsadm-1.24.tar.gz #cd ipvsadm-1.24 #make & make install #find / -name ipvsadm# 查看i
18、pvsadm的位置 #tar zxvf keepalived-1.1.15.tar.gz #cd keepalived-1.1.15 #./configure& make & make install #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/
19、keepalived/keepalived.conf /etc/keepalived/ #cp /usr/local/sbin/keepalived /usr/sbin/ #service keepalived start|stop #做成系统启动服务方便管理.四. 配置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.orgGW=192.
20、168.2.253# website director vip.WEB_VIP=192.168.2.170WEB_RIP1=192.168.2.171WEB_RIP2=192.168.2.172. /etc/rc.d/init.d/functionslogger $0 called with $1case $1 instart) # Clear all iptables rules. /sbin/iptables -F # Reset iptables counters. /sbin/iptables -Z # Clear all ipvsadm rules/services. /sbin/i
21、pvsadm -C#set lvs vip for dr /sbin/ipvsadm -set 30 5 60 /sbin/ifconfig eth0:0 $WEB_VIP broadcast $WEB_VIP netmask 255.255.255.255 up /sbin/route add -host $WEB_VIP dev eth0:0 /sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3 /sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1 /sbin/ipvsadm -a -t $WEB_
22、VIP:80 -r $WEB_RIP2:80 -g -w 1 touch /var/lock/subsys/ipvsadm /dev/null 2&1 # set Arp /sbin/arping -I eth0 -c 5 -s $WEB_VIP $GW /dev/null 2&1 ;stop) /sbin/ipvsadm -C /sbin/ipvsadm -Z ifconfig eth0:0 down route del $WEB_VIP/dev/null 2&1 rm -rf /var/lock/subsys/ipvsadm /dev/null 2&1 /sbin/arping -I et
23、h0 -c 5 -s $WEB_VIP $GW echo ipvsadm stoped ;status) if ! -e /var/lock/subsys/ipvsadm ;then echo ipvsadm is stoped exit 1 else ipvsadm -ln echo .ipvsadm is OK. fi ;*) echo Usage: $0 start|stop|status exit 1esacexit 02 配置Realserver脚本. #!/bin/bash# Written by NetSeek # description: Config realserver l
24、o and apply noarp WEB_VIP=192.168.2.170. /etc/rc.d/init.d/functionscase $1 instart) ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP /sbin/route add -host $WEB_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 $WEB_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/sy
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1