博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在redhat5.4上配置lvs+heartbeat+ldirectord 集群
阅读量:7025 次
发布时间:2019-06-28

本文共 4145 字,大约阅读时间需要 13 分钟。

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,如需转载请自行联系原作者
你可能感兴趣的文章
dsadasdasdasc
查看>>
杭州青少年智能机器人创意大赛昨日开赛
查看>>
ES6新特性总结
查看>>
Hadoop新特性
查看>>
必会的next.js自定义App和Document
查看>>
深入总结Javascript原型及原型链
查看>>
Spring Cloud的介绍以及环境搭建
查看>>
求数组中第K大的数
查看>>
前端开发中使用mac自带apache服务
查看>>
#情人节专题#利用Three.js实现一个记录两个人走过岁月的点点滴滴的idea
查看>>
Vue中,利用JSX语法生成不同html模板
查看>>
部分vue webpack打包配置问题简介
查看>>
入门笔记 --- Golang 语法注意事项(一)
查看>>
A的女儿是B的女儿的妈妈,A是B的谁?
查看>>
axios封装以及前端接口处理策略
查看>>
魅族PRO 5详细开启Usb调试模式的流程
查看>>
需要上级处理的双亲委派模型
查看>>
Basic Of Concurrency(九: 线程通讯)
查看>>
flutter 自定义带水波纹和点击态的cell
查看>>
小程序 | 注释级微信小程序demo,助你快速切入开发
查看>>