LVS+Keepalived+IIS实负载均衡
LVS+Keepalived+IIS实负载均衡的可行性报告一、 现状概述
二、 LVS+Keepalived概况
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一,目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
Keepalived在这里主要用作RealServer的健康状态检查以及LVS-DR-MASTER主机和LVS-DR-BACKUP主机之间failover的实现。
负载均衡拓朴图
IP信息列表
名称
IP
LVS-DR-Master
10.0.30.24
LVS-DR-BACKUP
10.0.30.25
LVS-DR-VIP
10.0.30.28
WEB1-Realserver
10.0.30.26
WEB2-Realserver
10.0.30.27
三、 利用LVS+Keepalived实现八院应用系统负载均衡的条件
1、硬件设备
六台服务器、一台数据存储设备、配置调试及交换相关设备。
2、软件工具
Ipvsadm、keepalived、DevCon实用工具。
四、 LVS+Keepalived实现方式
1、硬件环境准备
两台服务器作为lvs(主备)服务器、两台服务器作为IIS服务器、两台服务器作为oracle数据库服务器、一台存储设备、两台交换设备。
2、软件环境准备
Ipvsadm、keepalived、DevCon实用工具等全是开源软件。
3、环境搭建及部署
下载相关软件包
#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
安装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 # 查看ipvsadm的位置
#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/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/
#service keepalived start|stop #做成系统启动服务方便管理.
配置LVS实现负载均衡(主备都需要配置)
#vi /etc/init.d/lvs
#!/bin/sh
#description:start lvs of director server
VIP=10.0.30.28
RIP1=10.0.30.26
RIP2=10.0.30.27
./etc/rc.d/init.d/functions
case "$1" in
start)
echo "start lvs of Director server"
#set the virtual IP address and sysctl parameter
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/ip_forward
#clear IPVS table
/sbin/ipvsadm -C
#set lvs
/sbin/ipvsadm -A -t $VIP:80 -s rr -p 60
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
#Run lvs
/sbin/ipvsadm
;;
stop)
echo "close lvs Directorserver"
echo "0" >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ifconfig eth0:0 down
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
配置在主负载均衡服务器上配置keepalived.conf
#vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
lvguoxin@bjsasc.com
}
notification_email_from lvs@bjsasc.com
smtp_server 127.0.0.1
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
# 20120621 written by :lvguoxin
# 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 {
10.0.30.28
#(如果有多个VIP,继续换行填写.)
}
}
virtual_server 10.0.30.28 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 10.0.30.26 80 {
weight 3 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.0.30.27 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
realserver配置IIS及loopback
在Microsoft Windows Server 2003 中安装 Microsoft 环回适配器
在命令提示符处键入 devcon.exe install %windir%\inf\netloop.inf *msloop,
关闭命令提示符,loopback-adapter安装完成。
进行测试
Ok搞定!
测试lvs主备
把主停掉或者由于某些原因不提供服务了,自动切到备上照常提供服务。
五、 方案的可行性
1、 技术成熟、运行稳定、案例广泛。
2、 节约成本、利用率高、性价比高。
注意:上面是应用服务器实现过程而数据库还没有实现,等服务器到位之后再实现oracle数据库的热备。
页:
[1]