LVS配置实践

文章的大部分都是参考网上朋友们所写的东西,但是自己第一次实践的时候就碰到heartbeat安装不成功的问题,一直拖了一周多的时间,后来突然有了进展,也有了这篇小作。希望对碰到类似问题的朋友有所帮助。

试验环境 Red Hat Enterprise Linux 4
  软件版本 ipvsadm-1.24.tar.gz
  编译安装注意
  #pwd
  /usr/src
  #ln -s /usr/src/kernels/2.6.9-5.EL.i686 /usr/src/linux 如果没有目录则安装RPEM包kernel-devel-2.6.9-5.EL
#rpm -ivh ipvsadm-1.24-6.src.rpm
会安装到/usr/src/redhat/SOURCES
#cd /usr/src/redhat/SOURCES
#tar xvfz ipvsadm-1.24-6.tar.gz
#cd ipvsadm-1.24
  #make && make install
  正常使用时提示:
  # ipvsadm
  IP Virtual Server version 1.2.0 (size=65536)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  一、NAT方式
  Load Balance:200.31.1.91
  Virtual IP: 200.31.26.89
  RealServer1: 200.31.1.91
  RealServer2: 200.31.1.97
  gateway: 200.31.1.91 (使用正确地址,或者使用本机地址,否则会出现刷新ipvsadm rule时很慢)
  1.开启路由机制
  #echo 1 > /proc/sys/net/ipv4/ip_forward
  注意:
  永久修改要修改sysctl.conf
  2.加载nat模块
  #modprobe iptable_nat
  注意:
  用lsmod检查,另如果不加载此模块,也可以在第一次访问时成功,但是会在再次访问时出现延迟过长,或访问超时现象。
  3.加载rule
  #ipvsadm -A -t 200.31.26.89:80 -s rr
  #ipvsadm -a -t 200.31.26.89:80 -r 200.31.1.91:80 -m
  #ipvsadm -a -t 200.31.26.89:80 -r 200.31.1.97:80 -m
  rr 轮询方式
  -m 设置为NAT方式
  4.保存rule
  #ipvsadm ——save > /etc/sysconfig/ipvsadm
  5.邦定vip
  #ifconfig eth0:1 10.0.0.1 netmask 255.255.255.0 borcast 10.0.0.255
  6.RealServer设置
  RealServer1:
  ip: 200.31.1.91
  gateway: 200.31.1.91
  开启HTTP服务,确认自己能够访问。
  RealServer2:
  ip: 200.31.1.97
  gateway: 200.31.1.91
  开启HTTP服务,确认自己能够访问。页面与realserver1不同就可以。
  7.测试
  选择一台主机,ip设置200.31.26.94 ,访问http:// 200.31.26.89/a.html,反复刷新网页,每次出现的网页不同则表示成功。
二、DR方式
Load Balance:200.31.1.91
  Virtual IP: 200.31.1.89
  RealServer1: 200.31.1.93
  RealServer2: 200.31.1.94
配置VIP脚本lvsdr.sh
该脚本存放在200.31.1.91上
#!/bin/sh
VIP=200.31.1.89
RIP1=200.31.1.93
RIP2=200.31.1.94
/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查看帮助)。
配置realserver脚本realserver.sh
该脚本存放在200.31.1.93和200.31.1.94上
#!/bin/sh
VIP=200.31.1.89
/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
开启web服务
分别开启200.31.1.93和200.31.1.94上的httpd服务,确保本机可以访问
运行lvs
在loadbalance和realserver上分别运行lvsdr.sh和realserver.sh脚本
测试
打开IE浏览器输入http://192.168.1.89 两次刷新应该可以分别看到: this is 200.31.1.93 和 this is 200.31.1.94

配置基于高可用Lvs+heartbeat
确定LVS使用DR,请对照上面的配置
1.heartbeat安装:
首先安装libnet
tar -zxvf libnet.tar.gz
cd libnet
./configure
make
make install
接下来,检查确保以下所有的包都安装(所有这些包都可以在rhel4的安装盘中找到)
[color=red]python-devel
openssl
net-snmp-utils
net-snmp-devel
net-snmp-perl
elfutils
glib2-devel
libxml2
(根据安装情况的不同,有时还需设置ln -s /usr/lib/libelf.so.1 /usr/lib/libelf.so)[/color]
tar zxf heartbeat-2.1.2.tar.gz
cd heartbeat-2.1.2
./ConfigureMe configure
make
make install

安装完毕后,执行
cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
cp ldirectord/ldirectord.cf /etc/ha.d/
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 200.31.1.91 200.31.1.92
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
hopfudge 1
use_logd yes
node rhel91
node rhel92

3资源文件/etc/ha.d/ haresources
Rhel92 200.31.1.89 httpd
设置rhel92为主节点,集群服务器的ip地址为200.31.1.89 集群服务有httpd
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
200.31.1.91 rhel91
200.31.1.92 rhel92
备份节点200.31.1.91 上的heartbeat和apache的配置与节点1要完全相同,lvs配置也要相同
完装完毕进行测试,关闭主节点机器,另一台自动接管,主节点恢复后自动接管回服务。如果以上测试没有问题,那么开始和lvs整合。
5.配置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=200.31.1.89:80
real=200.31.1.93:80 gate
real=200.31.1.94: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
Rhel92 200.31.1.89 ipvsadm ldirectord httpd
现在可以在主节点启动heartbeat
/etc/init.d/heartbeat start
并在备份节点启动heartbeat
/etc/init.d/heartbeat start
测试:关闭节点200.31.1.94服务,浏览器中只刷新出this is 200.31.1.93;重新启动200.31.1.94的http服务,则浏览器又轮流刷新出this is 200.31.1.93和this is 200.31.1.94。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值