LVS配置
来源:互联网 发布:电线传输网络信号原理 编辑:程序博客网 时间:2024/05/01 07:01
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make && make install
注意在make时可能会出现很多错误的信息,请按照如下操作就可以心编译正常
ln -s /usr/src/kernels/2.6.11-1.1369_FC4-i686/ /usr/src/linux
在进行编译就不会出错了
======================================
一.配置基于DR模式Lvs集群
Load Balancer:172.18.3.208
[root@localhost lvs]# cat /usr/local/lvs/LvsDR
#!/bin/sh
#VIP=192.168.8.11
VIP=172.18.3.209
#RIP1=192.168.8.6
RIP1=172.18.3.205
RIP2=172.18.3.207
/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 #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"
ifconfig eth0:1 down
/sbin/ipvsadm -C
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
=======================================
Real Server 1:172.18.3.205
[root@localhost lvs]# cat /usr/local/lvs/realserver
#!/bin/sh
#VIP=192.168.8.11
VIP=172.18.3.209
/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
#:注释:这四句目的是为了关闭ARP广播响应
sysctl -p
================================================
Real Server 2:172.18.3.207
[root@localhost lvs]# cat /usr/local/lvs/realserver
#!/bin/sh
#VIP=192.168.8.11
VIP=172.18.3.209
/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
==================================
[root@localhost lvs]# echo "This is realserver1" > /usr/local/apache/htdocs/index.html
This is realserver1
[root@localhost lvs]# echo "This is realserver2" > /usr/local/apache/htdocs/index.html
This is realserver2
分别启动服务
172.18.3.208 ./LvsDR start
172.18.3.205 ./realserver
172.18.3.207 ./realserver
启动apache
访问: http://172.18.3.209
测试方法分别打开四个网页,回轮循打开四个网页
This is realserver1 This is realserver2
==================================================
二、配置基于隧道模式Lvs集群
172.18.3.208
[root@localhost lvs]# cat TunLVS
#!/bin/sh
VIP=172.18.3.209
RIP1=172.18.3.205
RIP2=172.18.3.207
/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
=====================================
172.18.3.205
[root@localhost lvs]# cat realserver1
#!/bin/sh
VIP=172.18.3.209
/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 #1.开启ip转发
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
========================================
172.18.3.207
[root@localhost lvs]# cat realserver1
#!/bin/sh
VIP=172.18.3.209
/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
============================================
测试同上
===========================================
看完前面的设定,如果测试成功的话,如果发现万一Real Server死掉了怎么办?负责转送封包的DR并不晓得Real Server已经故障无法使用,还是会将封包往故障的Real Server处送,这样会影响用户的使用权益,为了解决这个问题有几种解法,一个是通过安装第三方监视程序mon进行后台监视,另一个是可以自己写个监视脚本进行监视,发现某台Real Server死掉后,把这台Real Server直接从轮循规则中去掉,然后重启LVS服务,重启后立即生效,而且并不是断开当前的连接。同理,为了防止Director down掉,可以把Director 做个HA,这样可以防止Director死掉,服务不至于停止,要不后果很严重
三、配置基于高可用Lvs+heartbeat
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 tar xvf heartbeat-2.1.3.tar.tar
cd heartbeat-2.1.3
./ConfigureMe configure
编译出错,把时间该下,该为目前时间是2008-06-18在编译就正常了。
make
make install
cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
cp ldirectord/ldirectord.cf /etc/ha.d/
配置主文件/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 60
warntime 10
initdead 120
#udpport 694
bcast eth0
auto_failback on
#ping_group group1 172.18.3.208 172.18.3.205
ping 172.18.3.208
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
hopfudge 1
use_logd yes
node test7
node test8
#crm on
资源文件/etc/ha.d/ haresources
test7 172.18.3.209 httpd
认证文件(/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
172.18.3.208 test7
172.18.3.205 test8
在172.18.3.208 172.18.3.209上该四个文件一样
启动heartbeat 出现如下错误
[root@test8 lvs]# /usr/lib/heartbeat/heartbeat start
/usr/lib/heartbeat/heartbeat: error while loading shared libraries: libltdl.so.3: cannot open shared object file: No such file or directory
解决办法
[root@test7 heartbeat]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/BerkeleyDB.4.2/lib/
[root@test7 heartbeat]# cd /usr/local/BerkeleyDB.4.2/lib/
[root@test7 lib]# ln -s /usr/local/lib/libltdl.so.3 libltdl.so.3
[root@test7 lib]# ldconfig
参照如下内容
也是按linux源码安装的三步曲完成,没有什么好说的了。该软件默认是安装在/usr/local/BerkeleyDB.4.2目录下。安装完成后,要把/usr/local/BerkeleyDB.4.2/lib的库路径加到/etc/ld.so.conf文件内,添加完成后执行一次 ldconfig,使用配置文件生效。这样编译openldap时才能找到相应的库文件。这样资料库就安装完成了,接下来可以安装openldap了。
ld.so.conf是什么东西?它就是系统动态链接库的配置文件。此文件内,存放着可被LINUX共享的动态链接库所在目录的名字(系统目录 /lib,/usr/lib除外),各个目录名间以空白字符(空格,换行等)或冒号或逗号分隔。一般的LINUX发行版中,此文件均含一个共享目录 /usr/X11R6/lib,为X window窗口系统的动态链接库所在的目录。 ldconfig是它的管理命令,具体操作方法可查询man手册,这里就不细讲了。
http://www.linuxpk.com/2582.html
重新启动heartbeat
[root@test7 lib]# ps aux|grep heart
root 19919 1.4 9.1 11472 11472 ? SLs 03:22 0:00 heartbeat: master control process
nobody 19927 0.1 3.8 4876 4876 ? SL 03:22 0:00 heartbeat: FIFO reader
nobody 19930 0.3 3.8 4872 4872 ? SL 03:22 0:00 heartbeat: write: ping_group group1
nobody 19931 0.1 3.8 4872 4872 ? SL 03:22 0:00 heartbeat: read: ping_group group1
root 20387 0.0 0.3 1684 500 pts/0 R+ 03:22 0:00 grep heart
备份节点172.18.3.205 上的heartbeat和apache的配置与节点1要完全相同,lvs配置也要相同
完装完毕进行测试,关闭主节点机器,另一台自动接管,主节点恢复后自动接管回服务。如果以上测试没有问题,那么开始和lvs整合
以上测试heartbeat 成功
=================================
四.heartbeat lvs正合
172.18.3.208 ---> 172.18.3.205
4.配置Ldirectord
Ldirectord的作用是监测Real Server,当Real Server失效时,把它从Load Balancer列表中删除,恢复时重新添加,在安装heartbeat时已经安装了Ldirectord。
172.18.3.208
配置(/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=172.18.3.209:80
real=172.18.3.207: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
=====================================================
[root@test7 lvs]# cat /etc/sysconfig/ipvsadm
-A -t 172.18.3.209:3306 -s wrr
-a -t 172.18.3.209:3306 -r 172.18.3.207 -g
=============================================
在每个Real Server的中添加监控页:
echo "Test Page" >> /var/www/html/index.html
修改/etc/ha.d/haresources
test7 172.18.3.209 ipvsadm ldirectord http
==============================================
以上几个文件在208 207上配置是相同的.
现在可以在主节点启动heartbeat
/etc/init.d/heartbeat start
并在备份节点启动heartbeat
/etc/init.d/heartbeat start
启动ldirectord
启动时如果提示ldirectord某行出错,一般是有些运行需要的软件没安装,大部分是perl开头的软件包。
[root@test7 lvs]# service ldirectord start
Starting ldirectord... Can't locate Mail/Send.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.6/i386-linux-thread-multi /usr/lib/perl5/5.8.6 .) at /usr/sbin/ldirectord line 3882.
BEGIN failed--compilation aborted at /usr/sbin/ldirectord line 3882.
failure
解决办法
wget http://www.cpan.org/modules/by-module/Mail/MailTools-1.77.tar.gz
在启动出现如下错误
[root@test7 MailTools-1.77]# service ldirectord start
Starting ldirectord... Error [32691] reading file /etc/ha.d/ldirectord.cf at line 324: autoreload must be 'yes' or 'no'
failure
[root@test7 MailTools-1.77]# service ldirectord start
Starting ldirectord... success
[root@test7 MailTools-1.77]# ps aux|grep ldire
root 740 1.1 7.3 13308 9264 ? S 14:47 0:00 /usr/bin/perl -w /usr/sbin/ldirectord start
在备份172.18.3.205上做同样的设置
测试:关闭主节点,备份节点将自动接管directorserver服务。
至此配置完毕。
- lvs 配置
- LVS配置
- LVS配置
- LVS 配置
- LVS配置
- LVS 配置
- LVS配置
- LVS-NAT, LVS-DR, LVS-KEEPALIVED,LVS-TUN配置
- CentOS LVS安装配置
- linux---LVS配置
- Ubuntu9配置LVS
- lvs 安装配置小结
- lvs+keepalived简单配置
- LVS配置脚本
- lvs+keepalived简单配置
- 配置 LVS DR模式
- lvs配置祥解
- LVS 配置方案
- HTML5技术优势及HTML开发工具介绍
- linux下的shell 快捷键
- Open Source Project Advice
- CButtonST 使用方法
- win7下日志分析工具awstats的搭建
- LVS配置
- 8.19
- Android旋转动画不停顿
- Opencv 图片的初步处理——平滑处理
- uva 10887
- sd文件的操作和获取SD卡剩于流量和总容量
- 基址重定位
- 数据库视频总结
- 工程中常用的宏