负载均衡技术.docx
- 文档编号:24512980
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:18
- 大小:116.50KB
负载均衡技术.docx
《负载均衡技术.docx》由会员分享,可在线阅读,更多相关《负载均衡技术.docx(18页珍藏版)》请在冰豆网上搜索。
负载均衡技术
负载均衡技术
一、目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
LVS+keepalived负载均衡架构图
二、LVS+keepalived的安装和配置
1. 配置环境
SystemOS:
CentOSrelease5.4
Software:
ipvsadm-1.24.tar.gz,keepalived-1.1.19.tar.gz
2. 信息列表
名称
IP
LVS-Master
192.168.1.112
LVS-BACKUP
192.168.1.113
LVS-VIP
192.168.1.115
Realserver1
192.168.1.105
Realserver2
192.168.1.103
Realserver3
192.168.1.104
3. 安装lvs
分别在backuplvs和masterlvs上安装
wgethttp:
//www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
ln-s/usr/src/kernels/2.6.18-164.el5-i686//usr/src/linux
tarzxvfipvsadm-1.24.tar.gz
cdipvsadm-1.24
make&&makeinstall
4. 安装keepalived
分别在backuplvs和masterlvs上安装
wgethttp:
//www.keepalived.org/software/keepalived-1.1.19.tar.gz
tarzxvfkeepalived-1.1.19.tar.gz
cdkeepalived-1.1.19
./configure--prefix=/usr/local/keepalived
make
makeinstall
cp/usr/local/keepalived/sbin/keepalived/usr/sbin/
cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/
cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/
mkdir/etc/keepalived
5. 配置keepadlived
LVS-Master的配置文件如下
[root@linux5~]#cat/etc/keepalived/keepalived.conf
global_defs{
notification_email{
jimo291@ #email通知
}
notification_email_fromjimo291@
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS1 #设置lvs的id,在一个网络内应该是唯一的
}
vrrp_sync_grouptest{ #设置vrrp组
group{
loadbalance
}
}
vrrp_instanceloadbalance{
stateMASTER #设置lvs的状态,报错MASTER和BACKUP两种,必须大写
interfaceeth0 #设置对外服务的接口
lvs_sync_daemon_intefaceeth0 #设置lvs监听的接口
virtual_router_id51 #设置虚拟路由表示
priority180 #设置优先级,数值越大,优先级越高
advert_int5 #设置同步时间间隔
authentication{ #设置验证类型和密码
auth_typePASS
auth_pass1111
}
virtual_ipaddress{ #设置lvsvip
192.168.1.115
}
}
virtual_server192.168.1.11580{
delay_loop6 #健康检查时间间隔
lb_algorr #负载均衡调度算法
lb_kindDR #负载均衡转发规则
#persistence_timeout20 #设置会话保持时间,对bbs等很有用
protocolTCP #协议
real_server192.168.1.10580{
weight3 #设置权重
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.1.10380{
weight3
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.1.10480{
weight3
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
LVS-backup的配置文件如下
global_defs{
notification_email{
jimo291@
}
notification_email_fromjimo291@
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS2
}
vrrp_sync_grouptest{
group{
loadbalance
}
}
vrrp_instanceloadbalance{
stateBACKUP
interfaceeth0
lvs_sync_daemon_intefaceeth0
virtual_router_id51
priority150
advert_int5
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.1.115
}
}
virtual_server192.168.1.11580{
delay_loop6
lb_algorr
lb_kindDR
#persistence_timeout20
protocolTCP
real_server192.168.1.10580{
weight3
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.1.10380{
weight3
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.1.10480{
weight3
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
6. Realserver的配置
三台客户端的脚本都一样!
cat/etc/rc.d/init.d/realserver.sh
#!
/bin/bash
#description:
Configrealserverloandapplynoarp
SNS_VIP=192.168.1.115
/etc/rc.d/init.d/functions
case"$1"in
start)
ifconfiglo:
0$SNS_VIPnetmask255.255.255.255broadcast$SNS_VIP
/sbin/routeadd-host$SNS_VIPdevlo:
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/null2>&1
echo"RealServerStartOK"
;;
stop)
ifconfiglo:
0down
routedel$SNS_VIP>/dev/null2>&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"RealServerStoped"
;;
*)
echo"Usage:
$0{start|stop}"
exit1
esac
exit0
7. 测试
1) 首先测试各个realserver,确定各个realserver都能正常访问,测试realserver.sh脚本,看启动后能不能绑定lvsvip,停止后能不能去除绑定的vip
2) 测试lvs能否进行负载均衡转发,利用ipvsadm命令查看,如果想只当当前的请求转发到哪个服务器去了,可以用ipvsadm加选项来查看,其完整形式为:
ipvsadm–lcn|grep192.168.1.115
3) 停掉主lvs看lvsbackup是否接管!
更详细信息请查看日志,tail-f/var/log/messages
LVS+Keepalived实现高可用集群
来源:
ChinaUnix博客 日期:
2009.07.2114:
49 (共有条评论)我要评论
操作系统平台:
CentOS5.2
软件:
LVS+keepalived
LVS+Keepalived介绍
LVS
LVS是LinuxVirtualServer的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);
十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。
Keepalvied
Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现
IP配置信息:
LVS-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/ipvsadm-1.24.tar.gz
#wget
http:
//www.keepalived.org/software/keepalived-1.1.15.tar.gz
2.安装LVS和Keepalived
#lsmod|grepip_vs
#uname-r
2.6.18-53.el5PAE
#ln-s/usr/src/kernels/2.6.18-53.el5PAE-i686/ /usr/src/linux
#tarzxvfipvsadm-1.24.tar.gz
#cdipvsadm-1.24
#make&&makeinstall
#find/-nameipvsadm #查看ipvsadm的位置
#tarzxvfkeepalived-1.1.15.tar.gz
#cdkeepalived-1.1.15
#./configure &&make&&makeinstall
#find/-namekeepalived #查看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/
#servicekeepalivedstart|stop #做成系统启动服务方便管理.
四.配置LVS实现负载均衡
1.LVS-DR,配置LVS脚本实现负载均衡
vi/usr/local/sbin/lvs-dr.sh
#!
/bin/bash
#description:
startLVSofDirectorServer
#Writtenby:
NetSeek
http:
//www.linuxtone.org
GW=192.168.2.253
#websitedirectorvip.
WEB_VIP=192.168.2.170
WEB_RIP1=192.168.2.171
WEB_RIP2=192.168.2.172
./etc/rc.d/init.d/functions
logger$0calledwith$1
case"$1"in
start)
#Clearalliptablesrules.
/sbin/iptables-F
#Resetiptablescounters.
/sbin/iptables-Z
#Clearallipvsadmrules/services.
/sbin/ipvsadm-C
#setlvsvipfordr
/sbin/ipvsadm--set30560
/sbin/ifconfigeth0:
0$WEB_VIPbroadcast$WEB_VIPnetmask255.255.255.255up
/sbin/routeadd-host$WEB_VIPdeveth0:
0
/sbin/ipvsadm-A-t$WEB_VIP:
80-swrr-p3
/sbin/ipvsadm-a-t$WEB_VIP:
80-r$WEB_RIP1:
80-g-w1
/sbin/ipvsadm-a-t$WEB_VIP:
80-r$WEB_RIP2:
80-g-w1
touch/var/lock/subsys/ipvsadm>/dev/null2>&1
#setArp
/sbin/arping-Ieth0-c5-s$WEB_VIP$GW>/dev/null2>&1
;;
stop)
/sbin/ipvsadm-C
/sbin/ipvsadm-Z
ifconfigeth0:
0down
routedel$WEB_VIP >/dev/null2>&1
rm-rf/var/lock/subsys/ipvsadm>/dev/null2>&1
/sbin/arping-Ieth0-c5-s$WEB_VIP$GW
echo"ipvsadmstoped"
;;
status)
if[!
-e/var/lock/subsys/ipvsadm];then
echo"ipvsadmisstoped"
exit1
else
ipvsadm-ln
echo"..........ipvsadmisOK."
fi
;;
*)
echo"Usage:
$0{start|stop|status}"
exit1
esac
exit0
2.配置Realserver脚本.
#!
/bin/bash
#WrittenbyNetSeek
#description:
Configrealserverloandapplynoarp
WEB_VIP=192.168.2.170
./etc/rc.d/init.d/functions
case"$1"in
start)
ifconfiglo:
0$WEB_VIPnetmask255.255.255.255broadcast$WEB_VIP
/sbin/routeadd-host$WEB_VIPdevlo:
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/null2>&1
echo"RealServerStartOK"
;;
stop)
ifconfiglo:
0down
routedel$WEB_VIP>/dev/null2>&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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 负载 均衡 技术
![提示](https://static.bdocx.com/images/bang_tan.gif)