Heartbeat-ldirectord+LVS-DR实现Director高可用

简介:

一、实验目的

    为了实现在一台Director出现故障后,仍能够正常的提供服务,因此把Director做成高可用集群服务,但是如果后台的RealServer出现问题,Director不能够知道,因此需要借助于Heartbeat-ldirectord来自动检测后台RealServer的健康状况,而且还能够自动结合Director实现高可用集群服务。

二、实验拓扑如下图

 三、实验描述

   在这个实验中有两台Director和两台RealServer具体IP如上图所示,然后基于web服务来实现实验结果。

四、实验准备

    1.修改两台Director的主机名,使其和uname -n的保持一致
       #vim /etc/sysconfig/network 修改为 hostname=node1
       #hostname node1
       #unanme -n
    2.修改hosts文件,因为高可用集群服务的解析依赖与自己的hosts文件
       编辑Director1、2的/etc/hosts文件,添加如下内容
       172.16.29.1  node1
       172.16.29.2  node2
    3.配置两个Director的系统时间,使两台的时间保持一致
    4.配置Director的ssh,以实现双机互信
      Director1
       #ssh-keygen -t rsa
       #ssh-copy-id -i .ssh/id_rsa.pub root@node2
       #ssh node2 'ifconfig' 测试连接
     Driector2
       #ssh-keygen -t rsa
       #ssh-copy-id -i .ssh/id_rsa.pub root@node1
       #ssh node1 'ifconfig' 测试连接

五、实验步骤

 配置两台RealServer
  1.配置httpd
    #yum -y install httpd
    #service httpd start
    #echo "<h1>RSS1</h1>" > /var/www/html/index.html  //RealServer1
    #echo "<h1>RSS2</h1>" > /var/www/html/index.html  //RealServer2
  2. 设置arp_ignore和arp_announce
     #echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
     #echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
     #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
     #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  3.配置VIP
     #ifconfig lo:0 172.16.88.1 broadcast 172.16.88.1 netmask 255.255.255.255 up
     #route add -host 172.16.88.1 dev lo:0
 配置Director
   1、配置VIP(两台一样)
     #ifconfig eth0:1 172.16.88.1 broadcast 172。16.88.1 netmask 255.255.255.255 up
     #route add -host 172.16.88.1 dev eth0:1
   2、打开路由转发功能
   #echo 1 > /proc/sys/net/ipv4/ip_forward
   3.安装heartbeat以及所用到的包
   可以把如下包下到一个目录下
    heartbeat-pils-2.1.4-10.el5.i386.rpm     libnet-1.1.4-3.el5.i386.rpm
    heartbeat-2.1.4-9.el5.i386.rpm            
    heartbeat-stonith-2.1.4-10.el5.i386.rpm  perl-MailTools-1.77-1.el5.noarch.rpm
    heartbeat-gui-2.1.4-9.el5.i386.rpm         
    heartbeat-ldirectord-2.1.4-9.el5.i386.rpm  
  #yum --nogpgcheck localinstall *.rpm
   4.修改配置文件
    #cp /usr/share/doc/heartbeat-2.1.4/ha.cf /etc/ha.d/
    #vim /etc/ha.d/ha.cf 启用如下内容
       keeplive 2       //连接时长
       deadtime 30      //多长时间失效
       bcast eth0       //广播的网卡
       udpport 694      //端口
       auto_failback on  //是否自动转发
       ping 172.16.0.1   //两个节点都能ping通的IP
       node node1        //添加节点
       node node2
       crm on            //启动gui界面
     #cp /usr/share/doc/heartbeat-2.1.4/haresources /etc/ha.d/
     #vim /etc/ha.d/haresources 添加如下内容
      node1 172.16.200.1/255.255.255.255/eth0/172.16.255.255
   5、为集群指定认证方式
   #cp /usr/share/doc/heartbeat-2.1.4/authkeys /etc/ha.d/
   #dd if=/dev/urandon count=1 bs=512 | md5sum 生成密码串
   #vim /etc/ha.d/authkeys
         auth 3
        3 md5 生成的密码串
   #chmod 600 /etc/ha.d/authkeys
   6、配置ldirectord
    #cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d
       vim ldirectord.cf 
        checktimeout=3 超时时间
        checkinterval=1 每隔多长时间检查一次
        autoreload=yes  自动加载
        quiescent=yes 静默模式
     virtual=172.16.88.1:80    //  虚拟服务
        real=172.16.26.1:80 gate   // gate表示是dr模型
        real=172.16.26.2:80 gate
        real=192.168.6.6:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        request=".test.html"      做健康状况检测要获得的页面
        receive="ok"               需要检测到的字符串
        scheduler=rr
        protocol=tcp
        checktype=negotiate
        checkport=80
  7.为hacluster用户添加密码以方便登陆gui界面
    #passwd hacluster
  8.启动服务(需要注意的是在作为主节点上启动两台的服务)
     #service heartbeat start
     #ssh node2 '/etc/rc.d/init.d/heartbeat start'
     #hb_gui &     启动gui如下图,输入密码进入

 进入界面后如下图

9.在添加资源之前应保证两台Director的ldirectord的服务是停止的,然后设置成开机自动停止服务。

  #chkconfig ldirectord off

10.添加资源

 在上图中Resource处右键点击添加ldirector资源,如下图所所示

 成功添加后在主节点上使用Ipvsadm查看是否有规则,结果如下图

  由于运行还要依赖于VIP,所以接下来要添加VIP资源,特别注意的是,这里一定要添加lvs_support并设为ture,具体添加如下图所示

  添加资源完成后,启动添加的资源,查看资源运行的节点,然后ip addr show 命令查看添加的VIP,然后在浏览器查看结果如下图所示。

 11.然后模拟Director和Realserver其中有一个出现故障

   首先使Director的主节点改为从节点,然后资源会自动转到节点二上,因为我们在前面设置了,自动转移,具体如下图所示:

  在后在浏览器浏览结果正常显示

  然后使用iptables在其中的RealServer上拒绝80端口的来访,则会自动检测,然后在浏览器中则不能被显示了。

#iptables -A INPUT -p tcp -dport 80 -j DROP

  清除规则后,又能正常显示,所以ldirector就实现了自动检测后台realserver的健康状况的功能。

本文转自  沐木小布丁  51CTO博客,原文链接:http://blog.51cto.com/sxhxt/954545

相关文章
|
5月前
|
负载均衡 算法 网络协议
Keepalived+LVS搭建高可用负载均衡
Keepalived+LVS搭建高可用负载均衡
180 1
|
6月前
|
负载均衡 应用服务中间件 nginx
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
41 0
|
7月前
|
负载均衡 测试技术
LVS+KeepAlived构建高可用集群
LVS+KeepAlived构建高可用集群
54 0
|
7月前
|
域名解析 负载均衡 网络协议
keepalived+vip+lvs高可用负载均衡服务演化
keepalived+vip+lvs高可用负载均衡服务演化
319 0
|
存储 负载均衡 应用服务中间件
【web项目】keepalived高可用+LVS负载均衡+nginx动静分离+nfs共享存储
【web项目】keepalived高可用+LVS负载均衡+nginx动静分离+nfs共享存储
221 0
【web项目】keepalived高可用+LVS负载均衡+nginx动静分离+nfs共享存储
|
11月前
|
监控 网络协议 数据安全/隐私保护
高可用 - 05 Keepalived配置(全局配置、VRRPD、LVS)
高可用 - 05 Keepalived配置(全局配置、VRRPD、LVS)
413 0
|
11月前
|
负载均衡 网络协议 调度
LVS+Keepalived实现高可用和负载均衡
LVS+Keepalived实现高可用和负载均衡
137 0
|
缓存 运维 负载均衡
Keepalived+LVS+nginx搭建nginx高可用集群
  nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能。在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效率,单机并发能力能够达到上百万。nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用服务器,这些服务器一般是以集群方式部署的,因而在性能不足的情况下,应用服务器可以通过加机器的方式扩展流量。此时,对于一些特大型的网站,性能的瓶颈就来自于nginx了,因为单机的nginx的并发能力是有上限的,而nginx本身是不支持集群模式的,因而此时对nginx的横向扩展就显得尤为重要。
675 1
|
存储 负载均衡 Linux
LVS+Keepalived高可用群集
LVS+Keepalived高可用群集
LVS+Keepalived高可用群集
|
负载均衡 Linux 调度
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
160 1
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备