fdjhj 发表于 2015-8-28 08:57:27

heartbeat+ldirector+lvs实现高可用集群

7、heartbeat+ldirector+lvs实现高可用集群

在lvs的DR模式基础下进行该实验。



heartbeat工作原理:

   heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
两台 调度服务器 :

   Heartbeat仅仅是个HA软件,它仅能完成心跳监控和资源接管,不会监视它控制的资源或应用程序。要监控资源和应用程序是否运行正常,必须使用第三方的插件,例如ipfail、Ldirector等
   Ldirector是一个监控集群服务节点运行状态的插件。Ldirector如果监控到集群节点中某个服务出现故障,就屏蔽此节点的对外连接功能,同时将后续请求转移到正常的节点提供服务。这个插件经常用在LVS负载均衡集群中。

      Ldirector自动检测后台Realserver的运行状况,并采取响应的措施。


配置:


Director Server1: eth0---10.0.5.100(老师做实验的IP)    10.0.199.4(我自己的IP)

                  eth0:0 --10.0.5.200                   10.0.199.200

                  eth1--- 192.168.10.1                  192.168.100.1

Director Server2: eth0---10.0.5.1                                       10.0.199.3


                  eth1--- 192.168.10.2               192.168.100.2

两台真实服务器:

Real Server1:10.0.199.1

Real Server1:10.0.199.2


http://note.youdao.com/yws/res/21945/5F3CD3FC58CD4B9A94C6B19CA5C8D54B

调度服务器配置:

(1)安装软件
    # yum install PyXML resource-agents ipvsadm perl-MailTools perl-Net-SSLeay perl-libwww-perl   perl-TimeDate

    # yum install cluster-glue cluster-glue-libs

       去老师机器mirrorheartbeat

    # cd heartbeat/x86_64 (若是64位的 则进入此x86_64 若是32位则进入i686)

    # rpm -ivh heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm heartbeat-libs-3.0.4-1 .el6.x86_64.rpm ldirectord-3.9.2-2.fc17.1.x86_64.rpm   


(2)配置heartbeat

       # cp /usr/share/doc/heartbeat-3.0.4/ha.cf   /etc/ha.d


    # cp /usr/share/doc/ldectord-3.9.2/ldirectord.cf/etc/ha.d

       # cp /usr/share/doc/heartbeat-3.0.4/authkeys/etc/ha.d

    # cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d


      配置双机互联认证文件Authkeys


Authkeys文件用于设定Heartbeat的认证方式 共有3种:crc< md5 <sha1(安全性最高、占用系统资源也最高)

   # vim authkeys   \\主备heartbeat服务器之间进行通信的密钥配置文件
      auth 3
      3 md5 aixocm!

      
    # chmod 600 authkeys \\修改权限

    # vim ha.cf            \\主配置文件文件
                logfile/var/log/ha-log\\设置heartbeat日志存放位置
      logfacility   local0
      keepalive 2    \\设定心跳(监测)时间为2秒,每隔2秒监测一次
      deadtime 30    \\连续多长时间联系不上后认为对方挂掉 单位秒
      warntime 10    \\连续多长时间联系不上后开始警告提示
      initdead 120   \\这里主要式给重启后预留的一段忽略时间段(比如:重启后启动网络等                                             \\若网络还未通,keepalive检测肯定不通,但这时候并不能切换,                                                 \\此值至少为deadtime的两倍)
      udpport    694   \\设置广播通信的端口,默认为694
      ucast eth1 192.168.100.2# 另一台调度服务器的eth1的IP
      auto_failback on\\恢复正常后是否需要再自动切换回来 on说明切换
      node    server1\\主调度服务器的主机名'# hostname' 'uname -n'
      node    server2\\备用调度服务器的主机名

      ping 10.0.2.253   \\测试网络连通性一般设为网关的IP,

                        \\但是其实这里是最不容易宕机的那台机器的IP
      respawn hacluster /usr/lib64/heartbeat/ipfail \\列出和heartbeat一起启动和关闭的进程
      apiauth ipfail gid=haclient uid=hacluster
      deadping 30
      conn_logd_time 60
      compression    bz2
      compression_threshold 2

(3)配置haresource资源配置文件
   # vim haresources
      server1 IPaddr::10.0.199.200/16/eth0:0 ldirectord::/etc/ha.d/ldirectord.cf

             上述IP为虚拟出的IP

   1、资源组的第一列是我们在ha.cf配置文件中的服务器之一,而且是当前准备作为主调度服务器的主机名

2 、每一行代表一个资源组,若一行写不下可用“”换行
    3 、资源组启动顺序式从左到右,关闭顺序式从右到左

    4 、不同资源组之间没有必然联系

    5 、每个资源都是一个脚本,可以是在/etc/init.d目录下,也可以是/usr/local/etc/ha.d/resource.d目录下的脚本。


(4)配置ldirectord进行lvs调度
   # vim /usr/share/doc/ldirectord-3.9.2/ldirectord.cf
      checktimeout=3
      checkinterval=1
      autoreload=yes
      logfile="/var/log/ldirectord.log"
      logfile="local0"
      emailalert="admin@xjy.com"
      emailalertfreq=3600
      emailalertstatus=all
      quiescent=no

virtual=10.0.199.200:80   \\10.0.199.200虚拟地址
      real=10.0.199.1:80 gate 2
      real=10.0.199.2:80 gate 3
      service=http
      scheduler=wrr
      persistent=300
      netmask=255.255.255.255
      protocol=tcp
      checktype=negotiate
      checkport=80
      request="test.html"
      receive="ok!"
页: [1]
查看完整版本: heartbeat+ldirector+lvs实现高可用集群