在RedHat EL 40 中实现高可用WEB负载均衡群集.docx
- 文档编号:4781668
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:6
- 大小:19.15KB
在RedHat EL 40 中实现高可用WEB负载均衡群集.docx
《在RedHat EL 40 中实现高可用WEB负载均衡群集.docx》由会员分享,可在线阅读,更多相关《在RedHat EL 40 中实现高可用WEB负载均衡群集.docx(6页珍藏版)》请在冰豆网上搜索。
在RedHatEL40中实现高可用WEB负载均衡群集
在RedHat EL 4.0 中实现高可用WEB负载均衡群集
一、Director配置
1、设置网络接口地址
[root@directorroot]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:
0C:
29:
A2:
BD:
B5
IPADDR=192.168.0.160
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
2、编辑lvs脚本
[root@directorroot]#vi/etc/init.d/lvsdr
#!
/bin/bash
VIP=192.168.0.222
RIP1=192.168.0.249
RIP2=192.168.0.251
/etc/rc.d/init.d/funcions
case"$1"in
start)
echo"startLVSofDirectorServer"
#SettheVirtualipaddress
/sbin/ifconfigeth0:
0$VIPbroadcast$VIPnetmask255.255.255.255up
/sbin/routeadd-host$VIPdeveth0:
0
#ClearipvsTable
/sbin/ipvsadm-C
#setlvs
/sbin/ipvsadm-A-t$VIP:
80-srr
/sbin/ipvsadm-a-t$VIP:
80-r$RIP1:
80-g
/sbin/ipvsadm-a-t$VIP:
80-r$RIP2:
80-g
#RunLvs
/sbin/ipvsadm
;;
stop)
echo"closeLVSDirectorsever"
/sbin/ipvsadm-C
/sbin/ifconfigeth0:
0down
;;
*)
echo"Usage:
$0{start|stop}"
exit1
esac
#保存并退出,将该文件设置为可执行文件
[root@directorroot]#chmod755/etc/init.d/lvsdr
3、安装ipvsadm
[root@Directorroot]#modprobe–l|grepipvs
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_sed.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_rr.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_nq.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_dh.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
/lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lc.ko
[root@directorroot]#ln–s/usr/src/kernels/2.6.9-11.EL-i686/usr/src/linux
[root@directorroot]# tarxzvfipvsadm-1.24.tar.gz
[root@directoripvsadm-1.24]#cdipvsadm-1.24
[root@directoripvsadm-1.24]#make
[root@directoripvsadm-1.24]#makeinstall
由于在这里我搭建的是WEB的负载均衡群集,而我在安装RedhatEL4.0时并没有选择安装WEB服务器组件,所以这里需要另外安装,如果已安装的朋友可以略过这里(注:
可以用rpm–qa|grephttp查看是否已经安装)
[root@directorroot] # tarxzvfhttpd-2.2.4.tar.gz
[root@directorroot] #cdhttpd-2.2.4
[root@directorhttpd-2.2.4]#./configure–prefix=/usr/local/apache–enable-so–enable-rewrite
[root@directorhttpd-2.2.4]#make
[root@directorhttpd-2.2.4]#makeinstall
[root@directorhttpd-2.2.4]#echo“/usr/local/apache/bin/apachectl”>>/etc/rc.local
4、安装heartbeat
在安装heartbeat前先要安装libnet,下载地址:
[root@directorroot]#tarxzvflibnet.tar.gz
[root@directorroot]#cdlibnet
[root@directorlibnet]#./configure
[root@directorlibnet]#make
[root@directorlibnet]#makeinstall
[root@directorlibnet]#cd
在安装heartbeat之前还需要创建属于heartbeat的组和用户
[root@directorroot]#groupadd–g694haclient
[root@directorroot]#useradd–g694–u694hacluster
[root@directorroot]#tarxzvfheartbeat-2.1.2.tar.gz
[root@directorroot]#cdheartbeat-2.1.2
[root@directorheartbeat-2.1.2]#./ConfigureMeconfigure
[root@directorheartbeat-2.1.2]#make
[root@directorheartbeat-2.1.2]#makeinstall
在安装完heartbeat后,会有一个/etc/ha.d目录,这是heartbeat的配置文件存放的目录,heartbeat的配置文件都放在这里。
但默认在安装完heartbeat后,heartbeat最重要的三个配置文件ha.cf、haresources、authkeys却没有放在这里,需要我们手工copy过来才行。
[root@directorheartbeat-2.1.2]#cpdoc/ha.cfdoc/haresourcesdoc/authkeys/etc/ha.d
将ldirector的配置文件也copy过来
[root@directorheartbeat-2.1.2]#cpldirectord/ldirectord.cf/etc/ha.d
6、编辑heartbeat的配置文件
[root@directorheartbeat-2.1.2]#vi/etc/ha.d/ha.cf
#hearbeat的查错文件存放点
debugfile/var/log/ha-debug
#heartbeat 的日志文件存放点
logfile /var/log/ha-log
#设定heartbeat(心跳)之间的时间间隔为2秒。
keepalive2
#在60秒后宣布节点死亡。
deadtime60
#在日志中发出“lateheartbeat“警告之前等待的时间,单位为秒。
warntime10
在某些配置下,重启后网络需要一些时间才能正常工作。
这个单独的”deadtime”选项可以处理这种情况。
它的取值至少应该为通常deadtime的两倍。
initdead120
#使用端口694进行bcast和ucast通信。
这是默认的,并且在IANA官方注册的端口号。
udpport 694
#表示在eth0接口上使用广播heartbeat(将eth0替换为eth1,eth2,或者您使用的任何接口)。
bcast eth0 #Linux
#必须的。
集群中机器的主机名,与“uname–n”的输出相同。
node director
node bkdirector
#必须的,当auto_failback设置为on时,一旦主节点重新恢复联机,将从从节点取回所有资源。
若该选项设置为off,主节点便不能重新获得资源。
该选项与废弃的nice_failback选项类似。
auto_failbackon
#默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。
#所以当网络中断时,并不会进行LoadBalancer和Backup之间的切换。
#可以通过ipfail插件,设置'pingnodes'来解决这一问题。
详细说明参考hearbeat文档。
ping_groupgroup1192.168.0.160192.168.0.225
respawnroot/usr/lib/heartbeat/ipfail
apiauthipfailgid=rootuid=root
hopfudge1
use_logdyes
#保存并退出
编辑haresources文件,haresources文件通知heartbeat程序哪台机器拥有资源,资源名称实际是/etc/init.d或/etc/ha.d/resource.d目录下的脚本,Heartbeat使用haresources配置文件确定它第一次启动时应该做的工作。
该文件列出集群所提供的服务以及服务的默认所有者。
注意:
两个集群节点上的该文件必须相同,否则BadThingsWillHappen。
[root@directorheartbeat-2.1.2]#vi/etc/ha.d/haresources
directorlvsdr
#设置director为主节点,提供的群集服务为lvsdr,主节点的名称要与“uname-n”的输出相同
#保存并退出
编辑authkeys文件,需要配置的第三个文件authkeys决定了您的认证密钥。
共有三种认证方式:
crc,md5,和sha1。
您可能会问:
“我应该用哪个方法呢?
”简而言之:
如果您的Heartbeat运行于安全网络之上,如本例中的交叉线,可以使用crc,从资源的角度来看,这是代价最低的方法。
如果网络并不安全,但您也希望降低CPU使用,则使用md5。
最后,如果您想得到最好的认证,而不考虑CPU使用情况,则使用sha1,它在三者之中最难破解。
[root@directorheartbeat-2.1.2]#vi/etc/ha.d/authkeys
auth1
1crc
#保存并退出
确保authkeys文件仅能由root用户读取
[root@directorheartbeat-2.1.2]#chmod600/etc/ha.d/authkeys
编辑/etc/hosts文件,添加两台机器的名字,做好名字到IP的对应
[root@directorheartbeat-2.1.2]#vi/etc/hosts
192.168.0.160 director
192.168.0.225 bkdirector
注:
在备用director上也做相同的设置
二、RealServer配置
1、编辑网络接口
[root@cluser1root]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:
0C:
29:
54:
80:
3A
IPADDR=192.168.0.249
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet
2、编辑lvs脚本
[root@cluser1root]#vi/etc/init.d/lvsrs
#!
/bin/bash
VIP=192.168.0.222
case"$1"in
start)
echo"StartRealServer"
/sbin/ifconfiglo:
0$VIPbroadcast$VIPnetmask255.255.255.255up
/sbin/routeadd-host$VIPdevlo:
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
;;
stop)
echo"CloseingRealServer....."
ifconfiglo:
0down
;;
*)
echo"Usage:
$0{start|stop}
exit1
esac
#保存并退出
将/etc/init.d/lvsrs放到/etc/rc.local文件中,这样可以在开机时自启动
[root@cluser1root]#echo“/etc/init.d/lvsrs”>>/etc/rc.local
在另外一台RealServer上做相同的设置
确保RealServer上的http服务已处于监听状态,可以用netstat–tlunp命令查看
[root@cluster1root]#netstat–tlunp
如果没有启用启用http服务,请启用。
[root@cluster1root]#/usr/local/apache/bin/apachectlstart
三、启动web群集负载平衡与测试
1、启动heartbeat
[root@directorroot]#/etc/init.d/heartbeatstart
在备用director上启动heartbeat
2、测试
此时在客户端的浏览器中输入群集服务器的IP地址:
http:
//192.168.0.222
就会显示相应的页面,最好是在两台RealServer上设置不同的WEB页面,这样在客户端刷页面就会看到不同的页面,这样也可以证明客户端的请求是在两台不同的服务器进行轮询。
也可以在主备份服务器上使用ipvsadm–lc命令查看
[root@directorroot]#ipvsadm-lc
PVSconnectionentries
proexpirestate source virtual destination
TCP01:
55 FIN_WAIT 192.168.0.114:
2849192.168.0.222:
httpcluster1:
http
TCP14:
56 ESTABLISHED192.168.0.114:
2850192.168.0.222:
httpcluster2:
http
测试1:
主director崩溃后,从director是否可以接管主director的工作
为了测试主director崩溃后,从director是否可以接管主director的工作,将主director关机或拔掉网线.然后在从director进行如下操作以证明从director是否已经接管了主director的工作:
1、用ifconfig命令查看是否有eth0:
0接口,主director正常工作的时候,在从director是不会出现eth0:
0接口的,主director崩溃后eth0:
0即刻就会出现
2、可以用tail–f/var/log/messages命令查看heartbeat的日志
3、用ipvsadm 命令查看是否已经启用ipvsadm,主director正常工作的时候,从director是不会启用ipvsadm的,主director正常工作时,在从director用ipvsadm查看的显示:
[root@bkdirectorroot]#ipvsadm
IPVirtualServerversion1.2.0(size=4096)
ProtLocalAddress:
PortSchedulerFlags
->RemoteAddress:
Port ForwardWeightActiveConnInActConn
主director崩溃后,从director上的ipvsadm输出
[root@bkdirectorroot]#ipvsadm
IPVirtualServerversion1.2.0(size=4096)
ProtLocalAddress:
PortSchedulerFlags
->RemoteAddress:
Port ForwardWeightActiveConnInActConn
TCP 192.168.0.222:
httprr
->redhat:
http Route 1 0 0
->redhatAS4.0:
http Route 1 0 0
测试2:
主director恢复正常后,从director上的服务是否会回到主director上
1、重新启动主director,在主director启动,进入系统后,此时在从director上用ifconfig命令查看,发现eth0:
0不见了,在主director上用ifconfig查看可以看到eth0:
0,据此可证明VIP已经由从director转移到了主director上。
2、在客户端浏览器中输入群集服务器的IP地址:
http:
//192.168.0.222 可以正常浏览,在主director上用ipvsadm–lc命令可以查看到客户端浏览群集服务器的WEB页面,而在从director上用ipvsdm–lc命令查看,显示为空白。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 在RedHat EL 40 中实现高可用WEB负载均衡群集 RedHat 实现 可用 WEB 负载 均衡 群集