健康检查
使用ldirectord实现自动检测服务器健康状态,如果一个服务器坏掉了,就会被检查出来自动踢出
1.没有健康检查时坏掉一个服务器
在server3中:
/etc/init.d/httpd stop #关闭server3的httpd服务模拟服务器坏掉
在真机上测试:
发现请求时好时坏
2.健康检查
在server1中保证DR环境
ip a #查看网络信息发现时TUN模式
ip addr del 172.25.6.100/24 dev tunl0 #从tunl0上删除172.25.6.100
ipvsadm -l #查看策略是TUN
ipvsadm -C #清除之前的策略
ipvsadm -A -t 172.25.6.100:80 -s rr #添加新策略
ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.2:80 -g
ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.3:80 -g
modprobe -r ipip #移除tunl0
ip a #再次查看网路信息
ip addr add 172.25.6.100/24 dev eth0 #添加172.25.6.100到eth0上
ip a 查看是否添加上了
/etc/init.d/ipvsadm save #保存策略
在server2中和server3中保证DR环境:
ip addr del 172.25.6.100/32 dev tunl0 #删除tunl0的172.25.6.100/32
ip addr add 172.25.6.100/32 dev eth0 #添加172.25.6.100/32到eth0
modprobe -r ipip #删除模块
server3同server2一样的操作
真机测试DR模式:
curl 172.25.6.100
server1配置yum源,添加高可用软加包(有高可用的56个包,但是安装还需要依赖性):
vim /etc/yum.repos.d/rhel-source.repo
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.6.250/rhel6.5/HighAvailability
gpgcheck=0
yum clean all #清除缓存
下载好ldirectord-3.9.5-3.1.x86_64安装包
yum install ldirectord-3.9.5-3.1.x86_64.rpm ##安装完成
rpm -qpl ldirectord-3.9.5-3.1.x86_64 #查看配置文件
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf cd /etc/ha.d #复制文件
cd /etc/ha.d/
ls
vim ldirectord #修改配置文件
# Sample for an http virtual service
virtual=172.25.6.100:80
real=172.25.6.2:80 gate
real=172.25.6.3:80 gate
fallback=127.0.0.1:80 gate #当上边两个全部故障,则会到回环接口127.0.0.1
service=http
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
#receive="Test Page"
#virtualhost=www.x.y.z
/etc/init.d/ldirectord start #启动ldirectord服务
vim /etc/httpd/conf/httpd.conf #修改httpd的端口为80
重启httpd服务
此时关闭一个server的gttpd模仿故障,这里我们关闭server3的
真机客户端测试:
curl 172.25.6.100 #会发现不会时好时坏,直接把server3的踢出,服务器正常运行
如果serrver2也故障,则会访问回环。
我们可以在server1中设置访问的页面丢失界面
再次真机客户端测试:
curl 172.25.6.100
恢复其中一个httpd再次测试就会恢复正常