在redhat5.4上配置lvs+heartbeat+ldirectord 集群

lvs+heartbeat+ldirectord

  在现在大规模网站中应用的集群技术中,能够提供负衡均载,高可用性的 web 服务,当然还有其他的方案同样也能提供负衡均载,高可用性,这里来实现一下 lvs+heartbeat+ldirectord

在所需要的软件包

heartbeat-2.1.4-9.el5.i386.rpm          
heartbeat-pils-2.1.4-10.el5.i386.rpm

heartbeat-devel-2.1.4-9.el5.i386.rpm       
heartbeat-stonith-2.1.4-10.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.i386.rpm         
libnet-1.1.4-3.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.x86_64.rpm       
perl-MailTools-1.77-1.el5.noarch.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

网络和系统环境的需求:

  网络规划 :

192.168.10.0

192.168.20.0  该网段是作为 heartbeat 的心跳网段

    需要五台主机

        两台主机充当 heartbeat  服务器 , 且为其分配的 Ip 地址为

         主节点 :   192.168.10.1

              心跳地址 :  192.168.20.1

         辅助接点 :  192.168.10.2

                 心跳地址 : 192.168.20.2

         浮动的 ip 地址 :

                     192.168.10.10

. 首先配置真实服务器

1, 因为此次实现的是 web 集群

  首先在真实服务器上安装 apache  并测试其能够运行

  #yum install  httpd

  #service  httpd start

  # 并用客户机访问该 web 服务 , 如果能够正常运行 ,

在真实服务器上隐藏 arp 解析 , 并设置其能够宣布自己的 IP 地址

 #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

3 配置浮动 ip

 #ifconfig  lo:0 192.168.10.10 broadcast 192.168.10.10 netmask 255.255.255.255 up

# ifconfig

并确认配置的浮动 IP, 能够正常 , 当然该中方法配置的 IP 地址在重启网卡的时候 , 该地址就会消失

当然 , 您可以在 /etc/sysconfig/network-scripts/ 下面创建 ifcfg-lo:0  文件 , 并把其中的 IP 地址修改为浮动的 ip 地址

4 添加路由

   #route add  -host 192.168.10.10 dev lo:0

同样在其他真实服务器上面配置

. 配置配置双机热备 heartbeat

 1  同样在主节点和辅助节点上同样需要安装 apache 服务

   #yum  install  httpd

   # 并在 web 的根目录下面创建 index.html 文件 , 文件中的内容为当真实服务器不能正常运行的时候 , 主辅节点 , 提供一些说明性信息 , 同样也要测试其 apache 能够正常运行

 #service httpd start

  同样用客户端进行测试 , 测试完成后 , 并关闭其服务

 #service httpd stop

 #chkconfig  httpd  off

安装 ipvsadm  软件包

   #yum install  ipvsadm

配置 ipvsadm

  #ipvsadm  -A –t  192.168.10.10:80 –s wlc

  #ipvsadm  -a –t 192.168.10.10:80 –r 192.168.10.3  -w 1 –g

  #ipvsadm  -a  -t 192.168.10.10:80 –r 192.168.10.4 –w 2 –g

安装并配置 heartbeat

   #yum –nogpgcheck localinstall  *.rpm

    在安装前先把光盘挂载 , 因为在安装 heartbeat 的时候 , 依赖一些软件包

/usr/share/doc/heartbeat-2.14/ authkeys ha.cf haresource  到目录 /etc/ha.d/

   #cp  /usr/share/doc/heartbeat-2.14/{authkeys,ha.cf,haresource}

     /etc/ha.d/

6.  修改文件 authkeys

   #echo –ne   auth 1 \nl shal  >>/etc/ha.d/authkeys

   #dd if=/dev/urandom bs=512 count=1 | openssl md5 >> /etc/ha.d/authkeys

   #vim /etc/ha.d/authkeys ( 查看密钥是否追加到该文件中,并把密钥要和 1 shal  同行 )

   并把 authkeys 文件的权限该为 0600

 #chmod  0600 authkeys

修改 heartbeat 的主配置文件

   #vim /etc/ha.d/ha.cf

    确保以下几行开启

   debugfile  /var/log/ha-debug

 logfile /var/log/ha-log

 logfacility  local0

keepalive 2

 deadtime 30

 warntime  10

 initdead 120

 udpport 694

 bcast  eth1

 auto_failback

 node  node1.example.com

 node  node2.example.com

 respawn hacluster /usr/lib/heartbeat/ipfail

  目录下面 /usr/share/doc/heartbeat-ldirectord-2.1.4  中拷贝文件  ldirectord.cf  到目录 /etc/ha.d/ ,并修改其名为 heartbeat-ldirectord-lvs-httpd.cf, 并修改

   确保下面行,去掉注释

  checktimeout =3

  checkinterval=1

  fallback=127.0.0.1 80

autoreload=yes

quiescent=yes

virtual=192.168.10.10 80

    real=192.168.10.3 80  gate 1

              注: gate 后面跟的是权重

    real=192.168.10.4 80  gate 2

    fallback=127.0.0.1 80 gate

          注: fallback  如果真是服务器的服务不能正常运行,则会把客户的请求转发到本节点的服务上

     service = http

    request= .ldirectord.html

         注:该项是节点进行探测真是服务 apache 的根目录下面的文件,从而确认该真是服务器能够正常运行

   receive= GOOD

     注:该信息是返回给主节点的确认信息,当返回的的信息为上面的内容时,则服务运行正常,否则服务是 down

   protocol=tcp

  checktype=negotiate

  checkport=80

修改完后并保存

   注:   该部和第三不中配置 ipvsadm  是重复的,当然第三步中的配置可以省略

  

  #cp  /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf  /etc/ha.d/ldirectord-lvs-httpd.cf

9   修改文件 haresource

  #vim /etc/ha.d/harecource

   在其末尾添加

  node1.example.com  192.168.10.10  ldirectord-lvs-httpd.cf    注:  node1.example.com 为主节点的主机名

      192.168.10.10  为浮动地址

10  在辅助节点上做和主节点上一样的配置

11  分别在真是服务器上的 apache 的根目录下面创建文件

   .ldirectord.html

  且内容中必须包含

     GOOD

12 分别启动真是服务器上的 apache 服务

   #service httpd  start

   #chkconfig  httpd  on

13  先启动主节点的 heartbeat  服务

   #service heartbeat  start

   #chkconfig  heartbeat  on

   并用 ifconfig 查看 eth0 是否出现,该 ip 地址为

   192.168.10.10 ,即使浮动地址

    当出现浮动地址的时,并启动辅助节点

   #service  heartbeat start

   #chkconfig  heartbeat on

14  在主节点上

  #ipvsadm  -L –n

查看 lvs 的配置,并用客户机进行测试

15   注:不知在配置 heartbeat+lvs+ldirectord 中,真是服务器上的服务是否还需要手动启动,有人说在启动 heartbeat 的时,就已经把真是服务器上的服务器启动开了,但是我在配置的哦时候,是手动启动开真是服务器上的服务:如 apache
  希望大家指出我的配置不对的地方









本文转自 freehat08 51CTO博客,原文链接:http://blog.51cto.com/freehat/341575,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值