Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245192
  • 博文数量: 188
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -30
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-29 11:17
文章分类
文章存档

2013年(8)

2012年(5)

2011年(13)

2010年(26)

2009年(63)

2008年(20)

2007年(32)

2006年(21)

分类: LINUX

2007-06-19 15:33:11

************************************************************

环境描述:本文在配置LVS时使用三台linux,虚拟VIP:192.168.8.11

一台做Directorserver(192.168.8.2) ,操作系统RedhatAS4

两台做realserver(192.168.8.5,192.168.8.6) 操作系统RedhatAS4

在配置lvs+heartbeat,又添加了一台(192.168.8.3)做为备份主节点, 操作系统Fedora7

 

Virtual IP          192.168.8.11
Load Balancer
  192.168.8.2

Backup             192.168.8.3

Real Server 1     192.168.8.5
Real Server 2
     192.168.8.6

 

************************************************************

 

软件列表:
ipvsadm-1.24.tar.gz:  

ipvsadm-1.24-8.1.i386.rpm

ftp://rpmfind.net/linux/fedora/releases/7/Everything/i386/os/Fedora/ipvsadm-1.24-8.1.i386.rpm
libnet.tar   
下载地址:  稳定版本是:1.1.2.1

heartbeat-2.0.2.tar.gz:

2.6内核已经集成IPVS内核补订了,所以不再需要重新编译内核.

***************************************************************

 

配置此集群分以下几种情况

一、配置基于DR模式Lvs集群
二、配置基于隧道模式Lvs集群
三、配置基于高可用Lvs+heartbeat


一、配置基于DR模式Lvs集群
1
、下载ipvsadm管理程序
   
注意对应自己的内核版本
ipvsadm-1.24.tar.gz
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make && make install
注意在make时可能会出现很多错误的信息,请按照如下操作就可以心编译正常
ln -s /usr/src/kernels/2.6.9-22.EL-i686/ /usr/src/linux

cd ipvsadm-1.24

make && make install

2.配置VIP脚本

[root@test7 chang]#vi LvsDR

 

#!/bin/sh

VIP=192.168.8.11

RIP1=192.168.8.6

RIP2=192.168.8.5

/etc/rc.d/init.d/functions

case "$1" in

       start)

       echo "start LVS  of DirectorServer"

       #Set the Virtual IP Address

       /sbin/ifconfig eth0:1 $VIP broadcast $VIP  netmask 255.255.255.255 up

       /sbin/route add -host $VIP dev eth0:1

       #Clear IPVS Table

       /sbin/ipvsadm -C

       #Set Lvs

       /sbin/ipvsadm -A -t $VIP:80 -s rr

       /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"

       /sbin/ipvsadm -C

       ;;

       *)

       echo "Usage: $0 {start|stop}"

       exit 1

esac

-s rr 是使用了轮叫算法,可以自行选择相应的算法,默认是-wlc, -g 是使用lvs工作DR直接路由模式,ipvsadm -h查看帮助)。

 

3、配置realserver脚本

[root@test5 chang]#vi realserver

#!/bin/sh

VIP=192.168.8.11

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host $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

如果有多个realserver直接添加就可以了,之后启动此脚本就可以了.

 

测试:分别启动realserver上的httpd服务
realserver1 执行  echo "This is realserver1"  >> /var/www/html/index.html
realserver2 执行  echo "This is realserver2" >>  /var/www/html/index.html

打开IE浏览器输入  应该可以分别看到:This is realserver1 This is realserver2.

 

 

二、配置基于隧道模式Lvs集群

1.配置LVS directorserver 脚本

[root@test7 chang]#vi TunLVS

#!/bin/sh

VIP=192.168.8.11

RIP1=192.168.8.5

RIP2=192.168.8.6

/etc/rc.d/init.d/functions

case "$1" in

       start)

       echo "Start Lvs of DirectorServer"

       #set vip server

       /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up

       /sbin/route add -host $VIP dev tunl0

       #clear IPVS table

       /sbin/ipvsadm -C

       #set lvs

       /sbin/ipvsadm -A -t $VIP:80 -s rr

       /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i

       /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i

       #Run Lvs

       /sbin/ipvsadm

       ;;

       stop)

       echo "Close Lvs DirectorServer "

       ifconfig tunl0 down

       /sbin/ipvsadm -C

       ;;

       *)

       echo "Usage: $0 {start|stop}"

       exit 1

esac

2. 配置realserver

 

[root@test5 chang]#

#!/bin/sh

VIP=192.168.8.11

/etc/rc.d/init.d/functions

case "$1" in

       start)

       echo "tunl port starting"

       /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up

       /sbin/route add -host $VIP dev tunl0

       echo "1" > /proc/sys/net/ipv4/ip_forward

       echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore

       echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce

       echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

       echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

       sysctl -p

       ;;

       stop)

       echo "tunl port closing"

       ifconfig tunl0 down

       echo "1" > /proc/sys/net/ipv4/ip_forward

       echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce

       ;;

       *)

       echo "Usege: $0 {start|stop}"

       exit 1

esac

 

此脚本分别在realserver上执行,目的使realserver忽略arp响应,并设定vip.

 

三、配置基于高可用Lvs+heartbeat

确定LVS使用DR/tun模式,请对照上面的配置,本例使用DR模式

1.配置LVS directorserver 脚本

#!/bin/sh

VIP=192.168.8.11

RIP1=192.168.8.6

RIP2=192.168.8.5

/etc/rc.d/init.d/functions

case "$1" in

       start)

       echo "start LVS  of DirectorServer"

       #Set the Virtual IP Address

       /sbin/ifconfig eth0:1 $VIP broadcast $VIP  netmask 255.255.255.255 up

       /sbin/route add -host $VIP dev eth0:1

       #Clear IPVS Table

       /sbin/ipvsadm -C

       #Set Lvs

       /sbin/ipvsadm -A -t $VIP:80 -s rr         

       /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"

       /sbin/ipvsadm -C

       ;;

       *)

       echo "Usage: $0 {start|stop}"

       exit 1

esac

2. realserver端同样使用上面的配置文件就可以。

 

3.安装heartbeat

3.1 安装

tar -zxvf libnet.tar.gz
cd libnet
./configure
make
make install

 

groupadd -g 694 haclient
useradd -u 694 -g haclient hacluster

 

tar zxf heartbeat-1.99.4.tar.gz
cd heartbeat-1.99.4
./ConfigureMe configure 
make
make install
cp doc/ha.cf doc/haresources  doc/authkeys   /etc/ha.d/

cp ldirectord/ldirectord.cf    /etc/ha.d/

3.2配置主文件/etc/ha.d/ha.cf

logfile     /var/log/ha-log

keepalive 2

deadtime 60

warntime 10

initdead 120

udpport   694

bcast       eth0        # Linux

auto_failback on

ping_group group1 192.168.8.2 192.168.8.3

respawn root /usr/lib/heartbeat/ipfail

apiauth ipfail gid=root uid=root

hopfudge 1

use_logd yes

node test7

node test8

crm on

 

3.3资源文件/etc/ha.d/ haresources

test7     192.168.8.11   httpd

  设置test7为主节点,集群服务器的ip地址为192.168.8.11 集群服务有httpd

 

3.4认证文件(/etc/ha.d/authkeys),选取一种认证方式,这个文件的权限必须是600

auth 1
1 crc
#2 sha1 sha1_any_password
#3 md5 md5_any_password

chmod 600 /etc/ha.d/ haresources

 

3.5编辑主机名:/etc/hosts

192.168.8.2            test8

192.168.8.3            test7

 

备份节点192.168.8.3 上的heartbeatapache的配置与节点1要完全相同,lvs配置也要相同

完装完毕进行测试,关闭主节点机器,另一台自动接管,主节点恢复后自动接管回服务。如果以上测试没有问题,那么开始和lvs整合。

 

4.配置Ldirectord
Ldirectord
的作用是监测Real Server,当Real Server失效时,把它从Load Balancer列表中删除,恢复时重新添加,在安装heartbeat时已经安装了Ldirectord

配置(/etc/ha.d/ldirectord.cf)

checktimeout=3

checkinterval=1

fallback=127.0.0.1:80

autoreload=yes

logfile="/var/log/ldirectord.log"

quiescent=yes

 

# Sample for an http virtual service

virtual=192.168.8.11:80

       real=192.168.8.6:80 gate

       real=192.168.8.5:80 gate

      fallback=127.0.0.1:80 gate

       service=http

       request="index.html"

       receive="Test Page"

       protocol=tcp

      checktype=negotiate

      checkport=80

 

在每个Real Server的中添加监控页:
echo "Test Page" >> /var/www/html/index.html

 

修改/etc/ha.d/haresources

test7     192.168.8.11   ipvsadm  ldirectord httpd 

 

现在可以在主节点启动heartbeat
/etc/init.d/heartbeat start

并在备份节点启动heartbeat

/etc/init.d/heartbeat start

 

测试:关闭主节点,备份节点将自动接管directorserver服务。
至此配置完毕。

阅读(1582) | 评论(0) | 转发(0) |
0

上一篇:CDN技术

下一篇:网络上最经典的DOS命令(1)

给主人留下些什么吧!~~