接上文,以下部分是lvs实施部分:LVS+mon安装配置

 
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 脚本中作统一启动停止。) 

你可能感兴趣的:(Linux)