1. LVS安装配置
1.1 软件包准备
ipvsadm-1.24.tar.gz
mon-0.99.2-1.2.el4.rf.x86_64.rpm
fping-2.4-1.b2.2.el4.rf.x86_64.rpm
perl-AOL-TOC-0.34-1.2.el4.rf.noarch.rpm
perl-Convert-BER-1.31.01-1.2.el4.rf.noarch.rpm
perl-Math-TrulyRandom-1.0-1.2.el4.rf.x86_64.rpm
perl-Mon-0.11-1.2.el4.rf.noarch.rpm
perl-Net-SNPP-1.17-1.2.el4.rf.noarch.rpm
perl-Net-Telnet-3.03-1.2.el4.rf.noarch.rpm
perl-Period-1.20-1.2.el4.rf.noarch.rpm
perl-Time-HiRes-1.55-3.x86_64.rpm
1.2 安装步骤
当前安装环境:
Director:10.11.100.97
Realserver1:10.11.100.98
Realserver1:10.11.100.99
以下安装配置步骤中4.2.1 4.2.2 4.2.3都是在Director服务器上完成,4.2.4是在realserver服务器上完成。
1.2.1安装mon
mon服务运行在负载均衡器上,负责监测整个集群的服务器节点和服务进程。
配置了 ftp.monitor用于监控ftp服务,然后"mon"进程将会t秒检查一下相应的服务器节点ftp服务是否还活着。cifs.monitor也类似方法监听445端口。
安装过程:
第一步:安装软件包
分别安装以下rpm包:
fping-2.4-1.b2.2.el4.rf.x86_64.rpm
perl-AOL-TOC-0.34-1.2.el4.rf.noarch.rpm
perl-Convert-BER-1.31.01-1.2.el4.rf.noarch.rpm
perl-Math-TrulyRandom-1.0-1.2.el4.rf.x86_64.rpm
perl-Mon-0.11-1.2.el4.rf.noarch.rpm
perl-Net-SNPP-1.17-1.2.el4.rf.noarch.rpm
perl-Net-Telnet-3.03-1.2.el4.rf.noarch.rpm
perl-Period-1.20-1.2.el4.rf.noarch.rpm
perl-Time-HiRes-1.55-3.x86_64.rpm
最后安装mon-0.99.2-1.2.el4.rf.x86_64.rpm
第二步:配置过程:
编辑文件
/etc/mon/mon.cf
### Extremely basic mon.cf file
### global options
cfbasedir
= /etc/mon
pidfile
= /var/run/mon.pid
statedir
= /var/lib/mon/state.d
logdir
= /var/lib/mon/log.d
dtlogfile
= /var/lib/mon/log.d/downtime.log
alertdir
= /usr/lib64/mon/alert.d
mondir
= /usr/lib64/mon/mon.d
maxprocs
= 20
histlength = 100
randstart
= 60s
#authtype
= pam
#userfile
= /etc/mon/userfile
authtype = getpwnam
### group definitions (hostnames or IP addresses)
hostgroup app1 10.11.100.98
<需要空行
>
hostgroup app2 10.11.100.99
watch app1
service ftp
interval 3s
monitor ftp.monitor
period wd {Sun-Sat}
alert lvs.alert -P tcp -V 10.11.100.96:21 -R 10.11.100.98 -W 1 -F dr
upalert lvs.alert -P tcp -V 10.11.100.96:21 -R 10.11.100.98 -W 1 -F dr -u 1
service cifs
interval 3s
monitor cifs.monitor
period wd {Sun-Sat}
alert lvs.alert -P tcp -V 10.11.100.96:445 -R 10.11.100.98 -W 1 -F dr
upalert lvs.alert -P tcp -V 10.11.100.96:445 -R 10.11.100.98 -W 1 -F dr -u 1
watch app2
service ftp
interval 3s
monitor ftp.monitor
period wd {Sun-Sat}
alert lvs.alert -P tcp -V 10.11.100.96:21 -R 10.11.100.99 -W 1 -F dr
upalert lvs.alert -P tcp -V 10.11.100.96:21 -R 10.11.100.99 -W 1 -F dr -u 1
service cifs
interval 3s
monitor cifs.monitor
period wd {Sun-Sat}
alert lvs.alert -P tcp -V 10.11.100.96:445 -R 10.11.100.99 -W 1 -F dr
upalert lvs.alert -P tcp -V 10.11.100.96:445 -R 10.11.100.99 -W 1 -F dr -u 1
<结束
>
编辑
/usr/lib64/mon/alert.d/lvs.alert文件
#!/usr/bin/perl
#
# lvs.alert - Linux Virtual Server alert for mon
#
# It can be activated by mon to remove a real server when the
# service is down , or add the server when the service is up
#
#
use Getopt::Std;
getopts("s:g:h:t:l:P:V:R:W:F:u");
$ipvsadm = "/sbin/ipvsadm";
$protocol = $opt_P;
$virtual_services = $opt_V;
$remote = $opt_R;
if($opt_u){
$weight = $opt_W;
if($opt_F eq "nat"){
$forwarding = "-m";
}elsif($opt_F eq "tun"){
$forwarding = "-i";
}else{
$forwarding = "-g";
}
if($protocol eq "tcp"){
system("$ipvsadm -a -t $virtual_services -r $remote -w $weight $forwarding");
} else {
system("$ipvsadm -a -u $virtual_services -r $remote -w $weight $forwarding");
}
} else {
if($protocol eq "tcp"){
system("$ipvsadm -d -t $virtual_services -r $remote");
} else {
system("$ipvsadm -d -u $virtual_services -r $remote");
}
}
<结束
>
编辑完成后,将
lvs.alert文件修改为可执行权限文件。
chmod 755 lvs.alert
1.2.2安装ipvs
IPVS是
LVS集群系统的核心软件,它的主要作用是:
安装在
Load Balancer上,把发往Virtual IP的请求转发到Real Server上。
在
Director服务器上进行安装,即10.11.100.97服务器。
安装过程:
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make
make install
配置
ipvs:
在
/etc/init.d/目录下编辑:lvs-dr
#!/bin/bash
#
# lvs vs-dr server(ipvsadm)
# chkconfig: - 345 55 25
# description: IPVSADM
#
case "$1" in
start)
echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
echo "0">/proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -A -t 10.11.100.96:ftp -s wlc -p 600
ipvsadm -A -t 10.11.100.96:445 -s wlc -p 600
ipvsadm -a -t 10.11.100.96:ftp -r 10.11.100.98 -g
ipvsadm -a -t 10.11.100.96:ftp -r 10.11.100.99 -g
ipvsadm -a -t 10.11.100.96:445 -r 10.11.100.98 -g
ipvsadm -a -t 10.11.100.96:445 -r 10.11.100.99 -g
ipvsadm
/etc/init.d/mon start
;;
stop)
ipvsadm –C
/etc/init.d/mon stop
;;
status)
ipvsadm
;;
*)
echo "Usage: $0 {start|stop|status}"
echo
;;
Esac
<结束
>
以上配置文件中加入了
mon服务的启动停止项。
安装配置完成后,可是使用
ipvsadm –l查看当前ipvs的规则列表。
在
Director服务器上编辑/etc/rc.local文件,加入以下内容:
ifconfig eth0:0 10.11.100.96 netmask 255.255.255.0 up
1.2.3配置Realserver
在realserver服务器端配置,主要设计虚拟网卡和系统内核参数项。
编辑/etc/sysctl.conf,加入以下内容:
net.ipv4.ip_forward = 1
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
编辑/etc/rc.local文件,加入一下内容:
ifconfig lo:0 10.11.100.96 broadcast 10.11.100.96 netmask 255.255.255.255 up
route add -host 10.11.100.96 dev lo:0
echo "1" >/proc/sys/net/ipv4/ip_forward
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
在两台realserver服务器配置内容相同,配置完成后,请重新启动服务器即可。
1.3 LVS运行测试
a) 先启动realserver服务器上所有应用服务,即开启80/21/445端口。
b) 启动director服务器上ipvs和mon服务,/etc/init.d/lvs-dr start。(重新启动服务器后即可)
c) 测试虚拟ip地址访问21/445端口。
telnet 10.11.100.96 21
telnet 10.11.100.96 445
d) 在was管理控制台中,停止realserver其中的一个服务,在director上使用ipvsadm查看规则列表中是否对活动/停止成员作更新。
ipvsadm –l
e) 以上测试成功,即完成lvs(vs-dr)的集群配置。
1.4 LVS管理
ipvsadm规则查询:
ipvsadm –l
##查看规则列表
ipvsadm –Lcn
##查看客户端请求访问的realserver对象信息
ipvsadm服务启动主要在Director服务器上,启动停止方法:
/etc/init.d/lvs-dr start
##启动
/etc/init.d/lvs-dr stop
##停止
(注:
lvs-dr
脚本已经加入到系统自启动列表中,操作系统重新启动后自动启动
lvs-dr
。
mon
服务已经加入
lvs-dr
脚本中作统一启动停止。)