ldirectord + apache 实现LVS的DR模式下的健康检查

ldirectord + apache 实现LVS的DR模式下的健康检查

  • 部署LVS的DR模式
  • 部署Ldirectord实现健康检查

1.部署LVS的DR模式

系统环境:RedHat6.5系统

实验环境:

  • 在调度器server1上重新配置yum源,添加LoadBalancer模块;安装ipvsadm

yum install ipvsadm -y
  • 在server2和server3上开启apache服务

  • 配置真实主机server2和server3上的apache服务的默认发布页面

server2:

编辑/var/www/html/index.html文件

访问页面如下

扫描二维码关注公众号,回复: 5257496 查看本文章

server3:

编辑/var/www/html/index.html文件

访问页面如下:

实验主机: 172.25.60.1   Director调度器
                   172.25.60.2  真实主机

                   172.25.60.3 真实主机
 

 

部署DR过程如下:

第一步:配置三台主机的虚拟网络

server1:

server2:

server3:

第二步:在调度器server1上配置ipvsadm策略

[root@server1 ~]# ipvsadm -A -t 172.25.60.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.60.100:80 -r 172.25.60.2:80 -g
[root@server1 ~]# ipvsadm -a -t 172.25.60.100:80 -r 172.25.60.3:80 -g

测试:在server1,server2,server3三台主机中随机选择

清除缓存,再次测试,得到不同的结果

随机连接三台主机,有违我们的初衷,我们想要的是采用虚拟网络,连接我们的调度节点,按照一定的调度算法,达到负载均衡。

想要实现如上想法,我们要怎么做呢???

我们要配置server2和server3的arp路由策略!!!

配置步骤如下:

  • 安装arp

yum install arptables_jf -y

  • 配置arp路由策略

arptables -A IN -d 172.25.27.100 -j DROP
arptables -A OUT -s 172.25.27.100 -j mangle --mangle-ip-s 172.25.27.2
arptables -L
/etc/init.d/arptables_jf save(将策略保存在/etc/sysconfig/) 


 

测试:测试虚拟网络时,屏蔽掉server2和server3 ,通过访问调度器server1轮询访问真实服务器

2.在server1调度器上部署Ldirectord实现健康检查

第一步:下载ldirectord安装包,并安装。

yum install ldiirectored -y

重新配置yum源


第二步:编辑ldireectord的配置文件

rpm -qc ldirectord-3.9.5-3.1.x86_64.rpm
rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm   ##查找lldirector的配置文件

cd /etc/ha.d/
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf .

vim ldirectord.cf



第三步:在server1调度器上开启appche服务

yum install httpd -y

编辑apache的默认发布文档

vim /etc/www/html/index.html

<h1>系统维护中。。。</h1>


 

重启服务,进行测试:

  • 健康检查的作用:当后台主机中有一台挂掉,客户端不会感知到,只会访问没有挂掉的主机
  • 当后台主机中其中一台宕机,不再轮询访问后台主机,只访问没有宕机的主机, 但在客户端不会察觉到异样,若两台都宕机,web服务器重定向到调度器server1,访问server1 的apache服务。

两台后台主机都正常工作时:

其中一台服务器宕机时:

两台服务器都宕机时:

282  /etc/init.d/ldirectord  start
  283  cd /var/www/html/
  284  ls
  285  rm -fr *
  286  vim index.html
  287  /etc/init.d/httpd start

猜你喜欢

转载自blog.csdn.net/sinceNow/article/details/86825903