web服务器:
192.168.122.25 vm25
192.168.122.26 vm26
调度器:
192.168.122.37 vm37
192.168.122.38 vm38
配置好集群软件仓库
vm37 vm38 yum install piranha -y
piranha-passwd 为piranha设置密码
service piranha-gui restart
chkconfig piranha on
netstat -anutlp | grep httpd 可以看到监听了3636端口
这里将vm37设置为主,vm38设置为从
vm37 浏览器访问: 192.168.122.37:3636
指定主调度器,模式选择直接路由:
指定从调度器:
设置VIP:
设置真实ip (web server):
后端健康状态检测,这里使用脚本:
配置完后,vm37的 /etc/sysconfig/ha/lvs.cf里面就生成了刚刚配置的信息
拷贝到vm38的 /etc/sysconfig/ha/
scp /etc/sysconfig/ha/lvs.cf root@192.168.122.38:/etc/sysconfig/ha/
写健康状态检测的脚本
vim /usr/local/bin/check.sh
#!/bin/bash
#
hn="$1"
: ${hn?} 保证ip存在
> /dev/tcp/$hn/80
if [ $? -eq 0 ];then
echo "OK"
else
echo "KO"
fi
保存退出
chmod +x /usr/local/bin/check.sh
拷贝一份到vm38 :
scp /usr/local/bin/check.sh root@192.168.122.38:/usr/local/bin/
service pulse restart
chkconfig pulse on
web服务器vm25:
因为是直接路由所以要设置VIP和忽略arp,不转发,直接回包。
vim lvsrs
将VIP改为调度设置的VIP
#!/bin/bash
#
# lvsrs Startup script for the lvsrs Server
#
# chkconfig: 2345 86 14
# description: lvsrs script. It is used to serve \
#
VIP=192.168.122.99
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
;;
stop)
echo "close LVS Directorserver"
/sbin/ifconfig lo:0 down
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
保存退出,
cp lvsrs /etc/init.d/
chmod +x /etc/init.d/lvsrs
service lvsrs start
chkconfig lvsrs on
拷贝一分到vm26:
scp /etc/init.d/lvsrs root@192.168.122.26:/etc/init.d/
service lvsrs start
chkconfig lvsrs on
ip addr show lo 查看设置上VIP没
调度器vm37:
yum install ipvsadm -y
执行: ipvsadm
可以看到VIP和web服务器
测试:
集群以外的客户端vm15(192.168.122.15):
yum install lynx -y
lynx -dump 192.168.122.99
可以看到vm25和vm26的网页内容 (轮循)
测试健康状态检测:
vm25或者vm26上将apache停了,如果成功就只会访问正常工作的这台。
这是在vm37上执行: ipvsadm 只会看到服务正常的web服务器
测试调度器的高可用:
vm15: ping 192.168.122.99 现实可以ping 通
在vm37上:
service pulse stop
可以看到vm15上不能ping通了,过一会儿又能ping通了
vm37: ip a 可以看到VIP没有了
vm38: ip a 可以看到VIP