heartbeat 下载3.0.9之后还有没有ldirector.cf文件

使用Heartbeat实现双机热备 - CSDN博客
使用Heartbeat实现双机热备
使用Heartbeat实现”双机热备”或者称为“双机互备”heartbeat的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务一、网络环境设定每个主机分别带有两块以太网卡,其中一块用于网络通信,另一块用于心跳功能。两个节点的网络设置如下:node1: 主机名:srv5.localdomain ( NodeA )eth0:& 192.168.8.5& 255.255.255.0&& //对外IP地址eth1:& 192.168.9.5& 255.255.255.0&& //HA心跳使用地址node2: 主机名:srv6.localdomain ( NodeB )eth0:& 192.168.8.6& 255.255.255.0&& //对外IP地址eth1:& 192.168.9.6& 255.255.255.0&& //HA心跳使用地址vip: 192.168.8.100同时通过网络和另一台机器192.168.9.7相互连接用来检测网络连接情况。网络拓扑结构图如下:两台机器的/etc/hosts文件中需要加入如下的配置192.168.8.5&&&& srv5.localdomain&&&&&& &192.168.8.6&&&& srv6.localdomain主节点的/etc/sysconfig/network文件的HOSTNAME如下HOSTNAME=srv5.localdomain从节点的/etc/sysconfig/network文件的HOSTNAME如下HOSTNAME=srv6.localdomain二,安装配置2.1,在两台机器上分别安装heartbeatyum -y install heartbeat-stonith& heartbeat-pils heartbeat heartbeat-devel heartbeat-gui libnet2.2,配置heartbeatHeartbeat的主要配置文件有ha.cf、haresources、authkeys,需要放在/etc/ha.d目录下,在通过yum安装Heartbeat后,默认并没有这三个文件,yum 安装后可以从/usr/share/doc/heartbeat-2.1.3找到,拷贝到/etc/ha.d并编辑cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/2.3,主配置文件:ha.cf内容设置如下:debugfile /var/log/ha-debug
#用于记录heartbeat的调试信息
logfile /var/log/ha-log
#用于记录heartbeat的日志信息
logfacility local0
#系统日志级别
keepalive 2
#设定心跳(监测)间隔时间,默认单位为秒
warntime 10
##警告时间,通常为deadtime时间的一半
deadtime 30
# 超出30秒未收到对方节点的心跳,则认为对方已经死亡
initdead 120
#网络启动时间,至少为deadtime的两倍。
hopfudge 1
#可选项:用于环状拓扑结构,在集群中总共跳跃节点的数量
udpport 694
#使用udp端口694 进行心跳监测
ucast eth1 192.168.9.6
#采用单播,进行心跳监测,IP为对方主机IP
auto_failback on
#on表示当拥有该资源的属主恢复之后,资源迁移到属主上
node srv5.localdomain
#设置集群中的节点,节点名须与uname –n相匹配
node srv6.localdomain
ping 192.168.8.2 192.168.9.7
#ping集群以外的节点,这里是网关和另一台机器,用于检测网络的连接性
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
#设置所指定的启动进程的权限2.4,资源文件haresourcesha.cf文件设置了heartbeat的检验机制,没有执行机制。Haresources用来设置当主服务器出现问题时heartbeat的执行机制。其内容为:当主服务器宕机后,该怎样进行切换操作。切换内容通常有IP地址的切换、服务的切换、共享存储的切换,从而使从服务器具有和主服务器同样的IP、SERVICE、SHARESTORAGE,从而使client没有察觉。在两个HA节点上该文件必须完全一致。cat /etc/ha.d/haresourcessrv5.localdomain IPaddr::192.168.8.100/322.5,认证文件authkeys用于配置心跳的加密方式,该文件主要是用于集群中两个节点的认证,采用的算法和密钥在集群中节点上必须相同,目前提供了3种算法:md5,sha1和crc。其中crc不能够提供认证,它只能够用于校验数据包是否损坏,而sha1,md5需要一个密钥来进行认证。本次实例中,内容设置如下:-----------------------------------------------cat /etc/ha.d/authkeysauth 11 crc-----------------------------------------------注:需要更改该文件的属性为600,否则heartbeat启动将失败[root@server01 ~]#chmod 600 /etc/ha.d/authkeys2.6,配置从节点的heartbeat将主节点上的heartbeat配置文件拷贝到从节点,并确保两个节点上的配置文件权限相同:-----------------------------------------------scp /etc/ha.d/ha.cf root@srv6.localdomain:/etc/ha.d/scp /etc/ha.d/haresources root@srv6.localdomain:/etc/ha.d/scp /etc/ha.d/authkeys& root@srv6.localdomain:/etc/ha.d/-----------------------------------------------ha.cf文件需修改ucast的内容,将其指向主节点:ucast eth1 192.168.9.5& #指定对方IP其他文件内容无需修改。在主备节点上haresources和authkeys文件必须是相同的三,测试使用http服务测试 heartbeat编辑各自主机的测试用文件index.html,放到/var/www/html/目录下,内容分别为“NodeA”和“NodeB”在两机上分别启动httpd服务和heartbeat服务#service httpd start#service heartbeat start先在主节点上启动:heartbeat为主节点设置虚拟IP地址192.168.8.100。在主节点使用ifconfig可以看到多了个eth0:0,其具体信息如下:-----------------------------------------------[root@srv5 ha.d]# ifconfig eth0:0eth0:0&&& Link encap:Ethernet& HWaddr 00:0C:29:D8:F1:9C &&&&&&&&&& inet addr:192.168.8.100& Bcast:192.168.8.100& Mask:255.255.255.255&&&&&&&&& UP BROADCAST RUNNING MULTICAST& MTU:1500& Metric:1&&&&&&&&& Interrupt:67 Base address:0x2000 -----------------------------------------------查看日志:heartbeat[23230]: _01:28:24 info: Local status now set to: 'up'
heartbeat[23230]: _01:28:25 info: Link 192.168.8.2:192.168.8.2 up.
heartbeat[23230]: _01:28:25 info: Status update for node 192.168.8.2: status ping
heartbeat[23230]: _01:28:25 info: Status update for node 192.168.9.7: status ping
heartbeat[23230]: _01:28:25 info: Link 192.168.9.7:192.168.9.7 up.
heartbeat[23230]: _01:30:24 WARN: node srv6.localdomain: is dead //从节点还没有启动
heartbeat[23230]: _01:30:24 info: Comm_now_up(): updating status to active
heartbeat[23230]: _01:30:24 info: Local status now set to: 'active'
//从另一台节点抢占资源
heartbeat[23230]: _01:30:24 info: Starting child client &/usr/lib/heartbeat/ipfail& (0,0)
heartbeat[23230]: _01:30:24 WARN: No STONITH device configured.
heartbeat[23230]: _01:30:24 WARN: Shared disks are not protected.
heartbeat[23230]: _01:30:24 info: Resources being acquired from srv6.localdomain.
heartbeat[23317]: _01:30:24 info: Starting &/usr/lib/heartbeat/ipfail& as uid 0
gid 0 (pid 23317)
harc[23318]:
_01:30:24 info: Running /etc/ha.d/rc.d/status status
mach_down[23364]:
_01:30:25 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
IPaddr[23385]:
_01:30:25 INFO:
Resource is stopped
//然后在本机启动资源
ResourceManager[23473]:
_01:30:25 info: Acquiring resource group: srv5.localdomain IPaddr::192.168.8.100/32
IPaddr[23500]:
_01:30:25 INFO:
Resource is stopped
ResourceManager[23473]:
_01:30:25 info: Running /etc/ha.d/resource.d/IPaddr 192.168.8.100/32 start其他PC机从浏览器登录http://192.168.8.100/index.html可以看到其页面内容为“NodeA”.将主节点的eth1断网,刷新页面,内容显示为“NodeB”,表示http服务已交给从节点并由从节点运行。此时,再在主节点上查看ifconfig,不显示vip的设备及其vip。同时查看主节点日志:主节点让出资源[root@srv5 ha.d]# tail /var/log/ha-log ResourceManager[21049]: _00:52:00 info: Releasing resource group: srv5.localdomain IPaddr::192.168.8.100/32ResourceManager[21049]: _00:52:00 info: Running /etc/ha.d/resource.d/IPaddr 192.168.8.100/32 stopIPaddr[21113]:& _00:52:00 INFO: ifconfig eth0:0 downIPaddr[21087]:& _00:52:00 INFO:& Success从节点接管资源,查看从节点日志:IPaddr[20183]:&& &_01:43:53 INFO: eval ifconfig eth0:0 192.168.8.100 netmask 255.255.255.255 broadcast 192.168.8.100IPaddr[20157]:&& &_01:43:53 INFO:& Successmach_down[20038]:&& &_01:43:53 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquiredmach_down[20038]:&& &_01:43:53 info: mach_down takeover complete for node srv5.localdomain.heartbeat[19467]: _01:43:53 info: mach_down takeover complete.ipfail[19495]: _01:43:53 info: NS: We are still alive!ipfail[19495]: _01:43:53 info: Link Status update: Link srv5.localdomain/eth1 now has status dead还可以利用/usr/share/heartbeat下的hb_standby和hb_takeover命令来模拟资源切换。
本文已收录于以下专栏:
相关文章推荐
VMware Ubuntu heartbeat 双机热备
1、安装cluster glue
安装heartbeat之前需要安装glue。
yum install autoconf automake libtool glib2-devel libx...
author:skate
双master+heartbeat实现自动切换
heartbeat主要是主机故障切换,服务故障不切换,如要服务故障切换就需要自...
原文出处:http://www.ixpub.net/thread--1.html
/content/11/9472_...
心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。
大部分CS的应用需要心跳机制。心跳机制一般在Server和Client都要实现,两者实现...
最近android项目中有需要用到Socket与服务器连接的项目,自己之前没有使用过Socket套接字这种方案,所以对Socket通信机制就是个也很有限,领导在会议上讲Socket通讯呢就是客户端和服...
问题: 
给定一整数序列A1, A2,... An (可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大 
例如:整数序列-2, 11, -4, 13, -5, 2, -5,...
1、环境描述
  服务器A(主) 192.85.1.175
  服务器B(从) 192.85.1.176
  Mysql版本:5.1.61
       系统版本:System OS:ubun...
一直想做基于linux的双机热备,一直没有时间和机会。一直以为只要做双机热备的实验就必须两台机器外接一个存储。甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)heartbeat+ldirector 构建高可用LVS-DR集群
编辑:www.fx114.net
本篇文章主要介绍了"heartbeat+ldirector 构建高可用LVS-DR集群",主要涉及到heartbeat+ldirector 构建高可用LVS-DR集群方面的内容,对于heartbeat+ldirector 构建高可用LVS-DR集群感兴趣的同学可以参考一下。
heartbeat+ldirector 构建高可用LVS-DR集群
上篇文章实现了,脚本自动化管理LVS-DR集群,现在我们通过heartbeat的一个插件ldriector来实现项目功能。(上篇文章链接:)
项目实践:配置LVS Director(WEB LVS)的HA集群,要求:
1、DR模型;
2、能监控后台RealServer的健康状态;
相关网卡配置见上篇文章,这里只说明ldrictor的使用。
需要准备的软件包(已经安装过heartbeat v2):
perl-MaliTools heartbeat-ldirectored
将其放在一个文件夹
yum --nogpgcheck localinstall *.rpm
2.复制ld的配置文件到/etc/ha.d
[root@node1 /]# cd /usr/share/doc/heartbeat-ldirectord-2.1.4/
[root@node1 heartbeat-ldirectord-2.1.4]# ls
COPYING ldirectord.cf README
[root@node1 heartbeat-ldirectord-2.1.4]# cp ldirectord.cf /etc/ha.d/
[root@node1 heartbeat-ldirectord-2.1.4]# cd /etc/ha.d/
[root@node1 ha.d]# ls
authkeys harc ldirectord.cf README.config shellfuncs
ha.cf haresources rc.d resource.d
只需要把LVS需要定义的集群定义到/etc/ha.d/ldirector.cf,不需要ipvsadm来实现
3.修改 ldirector
vim ldirector.cf
# 修改配置文件,只启用如下内容
checktimeout=10
# ldirectord等待Realserver健康检查完成的时间,单位为秒;
# 任何原因的检查错误或超过此时间限制,ldirector将会将此Realserver从IPVS表中移除;
checkinterval=2
autoreload=yes
# 此项用来定义ldirectord是否定期每隔一段时间检查此配置文件是否发生改变并自动重新加载此文件;
logfile=&/var/log/ldirectord.log&
# 定义日志文件存放位置;
quiescent=yes
# 当某台Realserver出现异常,此项可将其设置为静默状态(即其权重为“0”)从而不再响应客户端的访问请求;
virtual=172.16.14.1:80
# 此项用来定义LVS服务及其使用的VIP和PORT
real=172.16.14.21:80 gate 1
real=172.16.14.22:80 gate 2
real=172.16.14.23:80 gate 3
fallback=127.0.0.1:80 gate
# 当IPVS表没有任何可用的Realserver时,此“地址:端口”作为最后响应的服务;
# 一般指向127.0.0.1,并可以通过一个包含错误信息的页面通知用户服务发生了异常;
service=http
# 定义基于什么服务来测试Realserver;
request=&index.html&
receive=&Test Page&
scheduler=wlc
protocol=tcp
# 定义此虚拟服务用到的协议;
checktype=negotiate
# ldirectord进程用于监控Realserver的方法;{negotiate|connect|A number|off}
checkport=80
在haresource里添加如下行,以启用ldriector
vim haresorce
node1.a.org 172.16.14.1/32/eth0/172.16.14.1 ldirectord::ldirectord.cf
拷贝这两个文件到node2上
scp haresources ldirectord.cf node2:/etc/ha.d
/etc/init.d/heartbeat start
ssh node2 -- '/etc/init.d/heartbeat start'
至此,ldirector配置完成,我只做相关测试而没有配置后台的三个RSS,来看一下效果
由于后台三个RSS就没有开启(相当于当机),ldirictor默认将他们的权重都设为0既不生效,而把本地的80开启,这个外界访问时,将看到一个提示界面(可以自己定义一些内容,比如网站维护中等)
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:heartbeat3.0安装手册_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
heartbeat3.0安装手册
&&heartbeat3.0网上文档很多,搜集整理,附件文档在实际环境环境验证通过
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢用户名:时大伟1999
文章数:46
评论数:17
访问量:24005
注册日期:
阅读量:1297
阅读量:3317
阅读量:583020
阅读量:468014
[匿名]51cto游客:
51CTO推荐博文
1. Heartbeat的组成与原理
Linux-HA的全称是High-Availability Linux,它是一个开源项目。这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强Linux可靠性(reliability)、可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案。其中Heartbeat就是Linux-HA项目中的一个组件,也是目前开源HA项目中最成功的一个例子,它提供了所有HA软件所需要的基本功能,比如心跳检测和资源接管、监测群集中的系统服务、在群集中的节点间转移共享IP地址的所有者等。
1.1 Heartbeat的组成
Heartbeat提供了高可用集群最基本的功能,例如,节点间的内部通信方式、集群合作管理机制、监控工具和失效切换功能等。目前的最新版本是Heartbeat 2.x,这里的讲述也是以Heartbeat 2.x为主。下面介绍Heartbeat 2.0的内部组成,主要分为以下几大部分。
heartbeat:节点间通信检测模块;
ha-logd:集群事件日志服务;
CCM(Consensus Cluster Membership):集群成员一致性管理模块;
LRM(Local Resource Manager):本地资源管理模块;
Stonith Daemon:使出现问题的节点从集群环境中脱离;
CRM(Cluster Resource Management):集群资源管理模块;
Cluster policy engine:集群策略引擎;
Cluster transition engine:集群转移引擎;
Heartbeat仅仅是个HA软件,它仅能完成心跳监控和资源接管,不会监视它控制的资源或应用程序。要监控资源和应用程序是否运行正常,必须使用第三方的插件,例如ipfail、Mon和Ldirector等。Heartbeat自身包含了几个插件,分别是ipfail、Stonith和Ldirectord,介绍如下。
ipfail的功能直接包含在Heartbeat里面,主要用于检测网络故障,并做出合理的反应。为了实现这个功能,ipfail使用ping节点或者ping节点组来检测网络连接是否出现故障,从而及时做出转移措施。
Stonith插件可以在一个没有响应的节点恢复后,合理接管集群服务资源,防止数据冲突。当一个节点失效后,会从集群中删除。如果不使用Stonith插件,那么失效的节点可能会导致集群服务在多于一个节点运行,从而造成数据冲突甚至是系统崩溃。因此,使用Stonith插件可以保证共享存储环境中的数据完整性。
Ldirector是一个监控集群服务节点运行状态的插件。Ldirector如果监控到集群节点中某个服务出现故障,就屏蔽此节点的对外连接功能,同时将后续请求转移到正常的节点提供服务,这个插件经常用在LVS负载均衡集群中。
同样,对于操作系统自身出现的问题,Heartbeat也无法监控。如果主节点操作系统挂起,一方面可能导致服务中断,另一方面由于主节点资源无法释放,而备份节点却接管了主节点的资源,此时就发生了两个节点同时争用一个资源的状况。
针对这个问题,就需要在Linux内核中启用一个叫watchdog的模块。watchdog是一个Linux内核模块,它通过定时向/dev/watchdog设备文件执行写操作,从而确定系统是否正常运行。如果watchdog认为内核挂起,就会重新启动系统,进而释放节点资源。
在Linux中完成watchdog功能的软件叫softdog。softdog维护一个内部计时器,此计时器在一个进程写入/dev/watchdog设备文件时更新。如果softdog没有看到进程写入/dev/watchdog文件,就认为内核可能出了故障。watchdog超时周期默认是一分钟,可以通过将watchdog集成到Heartbeat中,从而通过Heartbeat来监控系统是否正常运行。
1.2 Heartbeat的原理
集群成员一致性管理模块(CCM)
CCM用于管理集群节点成员,同时管理成员之间的关系和节点间资源的分配。Heartbeat模块负责检测主次节点的运行状态,以决定节点是否失效。ha-logd模块用于记录集群中所有模块和服务的运行信息。
本地资源管理器(LRM)
LRM负责本地资源的启动、停止和监控,一般由LRM守护进程lrmd和节点监控进程Stonith Daemon组成。lrmd守护进程负责节点间的通信;Stonith Daemon通常是一个Fence设备,主要用于监控节点状态,当一个节点出现问题时处于正常状态的节点会通过Fence设备将其重启或关机以释放IP、磁盘等资源,始终保持资源被一个节点拥有,防止资源争用的发生。
集群资源管理模块(CRM)
CRM用于处理节点和资源之间的依赖关系,同时,管理节点对资源的使用,一般由CRM守护进程crmd、集群策略引擎和集群转移引擎3个部分组成。集群策略引擎(Cluster policy engine)具体实施这些管理和依赖;集群转移引擎(Cluster transition engine)监控CRM模块的状态,当一个节点出现故障时,负责协调另一个节点上的进程进行合理的资源接管。
在Heartbeat集群中,最核心的是Heartbeat模块的心跳监测部分和集群资源管理模块的资源接管部分。心跳监测一般由串行接口通过串口线来实现,当然,也可以用交叉网线连接。两个节点之间通过串口线相互发送报文来告诉对方自己当前的状态。如果在指定的时间内未受到对方发送的报文,就认为对方失效,这时资源接管模块将启动,用来接管运行在对方主机上的资源或者服务。
2. 安装Heartbeat前的准备
2.1 实验环境规划
2.2 创建虚拟共享磁盘
1. 创建存放共享磁盘文件的目录,若虚拟机软件安装路径下的磁盘够大也可以不用创建此目录,直接将要创建的磁盘文件放在相应目录即可;
2. 创建共享磁盘文件
在虚拟机软件的安装目录下,有个vmware-vdiskmanager.exe文件(老版本用plainmaker.exe),
把它复制到共享磁盘柜目录下,创建共享磁盘(老版本共享磁盘文件的扩展名为.pln), 注意,此种方法有可能不成功,若不成功,可进入到虚拟机软件的安装目录,在其下创建即可:
D:\vmware系统\共享磁盘& vmware-vdiskmanager.exe -c -s 200Mb -a lsilogic -t 2 quorum.vmdk #仲裁盘
&&&& D:\vmware系统\共享磁盘& vmware-vdiskmanager.exe -c -s 2Gb -a lsilogic -t 2 sharedisk.vmdk #数据盘
3. 确认是否有磁盘文件生成:
创建完毕后,目录下有四个新文件:
quorum-flat.vmdk
&&&&&&&&&&& quorum.vmdk
&&&&&&&&&&& sharedisk-flat.vmdk
&&&&&&&&&&& sharedisk.vmdk
4. 确认成功生成后,用虚拟机软件在相应系统中,在虚拟系统关闭的状态下,添加刚刚生成的磁盘,并在高级选项中分别选择不同的通道,我们这里选择给仲裁盘选1:5,给数据盘选1:6,两个系统都要添加,保存配置;
5. 进入到相应虚拟机系统目录下(本实验中的node1及node2)找到.vmx后辍的文件,用记事本打开添加下面两行内容:
disk.locking=&FALSE&
disklib.dataCacheMaxSize=&0&
6. 先打开node1系统,格式化磁盘并创建文件系统,mkdir /sharedisk ,创建挂载目录为后续工作做准备;
7. 关闭node1,打开node2系统,mkdir /sharedisk ,查看相应的磁盘设备号后可直接挂载使用,此时可开启node1系统;
Node1与node2节点系统硬件配置应尽量保持一致,至少应该保证磁盘一致性,比如,配置heartbeat之前都有一块或几块磁盘,我们这里之前都只有一块磁盘。
手动挂载仲裁盘,此盘不可以人为写入数据,可以将此盘写到/etc/fstab下,让系统自动挂载。
共享数据盘会在heartbeat 的haresources文件中自动挂载,因此不需要手工挂载。
2.3 配置Apache
为更加直观的观测高可用的测试结果,我们这里配置基于apache的web应用。
简述下配置过程:
1. 安装软件包,为方便测试,这里直接安装rpm包:
[root@node1 ~]#yum install httpd
2. 编辑主配置文件httpd.conf
[root@node1 ~]#vim /etc/httpd/conf/httpd.conf
ServerName 192.168.0.234:80
DocumentRoot &/sharedisk/www& #将web页目录更改到共享磁盘路径下;
&Directory &/sharedisk/www&&
3. 手动挂载共享磁盘,创建web目录及测试页:
[root@node1 ~]#mount /dev/sdc1 /sharedisk
[root@node1 ~]#mkdir /sharedisk/www
[root@node1 ~]#vim /sharedisk/www/index.html
[root@node1 ~]#cat /sharedisk/www/index.html
welcome to my web station.
4. 启动apache
[root@node1 ~]#service httpd start
[root@node1 ~]#lsof -n -i:80
2.4 创建用户和用户组
同多数其它应用服务一样,heartbeat也需要用户和用户组的支持,不过,这里需要我们手动创建:
[root@node1 ~]# groupadd -g 694 haclient
[root@node1 ~]# useradd -u 694 -g haclient hacluster
注意,同样需要在node2上执行相同操作。
2.5 编辑Hosts文件
[root@node1 ~]#vi /etc/hosts #加入两个节点的IP及对应的主机名如下:
192.168.0.234 node1
192.168.0.235 node2
3 安装Heartbeat
3.1 获取Heartbeat
Heartbeat到目前为止发行了两个主版本,即Heartbeat 1.x和Heartbeat 2.x 。Heartbeat 1.x仅仅允许创建两个节点的集群,提供基本的高可用性failover服务。Heartbeat 2.x提供了增强的特性,允许创建多个节点的集群,且支持模块化结构的配置方法&&集群资源管理器(Cluster Rescource Manager-CRM),CRM可以支持最多16个节点,我们这里选用的版本为Heartbeat-2.0.6。
Heartbeat软件包可以通过在网络上搜索下载,也可以从以下站点下载: 。
安装Heatbeat前必须先安装libnet包,可以从下面的站点下载:
libnet提供了一些高层的api,让应用程序开发者可以修改网络包,我们这里下载的版本为:libnet-1.1.2.1 。
3.2 安装Heartbeat
接下来分别对libnet和heartbeat进行安装,安装过程很简单,只需解压编译,安装即可,在两个节点执行相同的操作,下面是在node1上的安装过程:
1. 安装libnet
[root@node1 software]# pwd
/tmp/software
[root@node1 software]# ll
-rw-r--r-- 1 root root -25 18:51 heartbeat-2.0.6.tar.gz
-rw-r--r-- 1 root root -25 18:51 libnet-1.1.2.1.tar.gz
[root@node1 software]# tar xf libnet-1.1.2.1.tar.gz
[root@node1 sofeware]# cd libnet
[root@node1 sofeware]#./configure
[root@node1 sofeware]#make
[root@node1 sofeware]#make install
2. 安装heartbeat
[root@node1 software]# tar xf heartbeat-2.0.6.tar.gz
[root@node1 sofeware]# cd heartbeat-2.0.6
[root@node1 heartbeat-2.0.6]#./ConfigureMe configure \
&disable-swig &disable-snmp-subagent
[root@node1 heartbeat-2.0.6]#make
[root@node1 heartbeat-2.0.6]#make install
[root@node1 heartbeat-2.0.6]# cp doc/ha.cf doc/authkeys doc/haresources /etc/ha.d/ #Heartbeat的主要配置文件有ha.cf,authkeys和haresources,在Heartbeat安装后,默认并没有这3个文件,可以从官网上下载,也可以从解压出来的源码目录中找到,所以我们这里直接在源码目录中拷贝即可。
4 配置Heartbeat
Heartbeat的主要配置文件有ha.cf,authkeys和haresources,下面将分别详细介绍:
4.1 配置主配置Ha.cf
以下将对主配置文件ha.cf的基本常用选项作详细说明:
[root@node1 ~]# vim /etc/ha.d/ha.cf
#logfacility local0 #可注释掉此选项,开启下面的日志路径;
logfile /var/log/ha-log #设置heartbeat日志存放位置;
keepalive 2 #设定心跳(监测)时间时间为2秒;
warntime 5 #连续多长时间联系不上后开始警告提示;
deadtime 20 #连续多长时间联系不上后认为对方挂掉了(单位是妙);
initdead 120 #这里主要是给重启后预留的一段忽略时间段(比如:重启后启动网络等,如果在网络还没有通,keepalive检测肯定通不过,但这时候并不能切换),此值至少为deadtime的两倍;
udpport 694 #设置广播通信的端口,默认为694;
baud 19200 #设置串行通讯的波特率;
bcast eth1 #指明心跳使用以太网的广播方式,并且在eth1口上进行广播;
auto_failback off #恢复正常后是否需要再自动切换回来,此处off说明恢复后不需要切换;
node node1 #主节点主机名,可以通过&uname -n&查看;
node node2 #备用节点主机名;
ping 192.168.0.254 #测试网络连通性,此处自定义,一般设为网关地址,但要保证是通的;
respawn hacluster /usr/lib/heartbeat/ipfail #可选,列出和heartbeat一起启动和关闭的进程;
4.2 配置资源文件Haresources
Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源。
下面针对本测试项目作如下编辑:
[root@node1 ~]# vim /etc/ha.d/haresources
node1 IPaddr::192.168.0.236/24/eth0/ Filesystem::/dev/sdc1::/sharedisk::ext3 httpd
##上面的192.168.0.236为虚拟出的VIP,自动挂载磁盘的同时启动httpd服务;
这里有几个注意事项:
1) 资源组的第一列是我们在ha.cf配置文件中的node之一,而且应该是当前准备作为primary节点的那一个node;
2)每一行代表一个资源组,如果一行写不下可以用& &换行;
3)资源组启动顺序是从左往右,关闭的顺序是从右往左;
4)脚本的参数通过::来分隔和传递;
5)一个资源组里面不同资源之间以空格分隔;
6)不同的资源组之间没有必然关系;
7)每个资源都是一个角本,可以是在/etc/init.d目录下面的,也可以是/usr/local/etc/ha.d/resource.d目录下面的角本。这些角本必须要支持xxx start;模式;
8)关于service IP的资源设置格式详见haresources文件;
9)如果mysql是编译安装的话, 则需要修改/etc/init.d/mysql文件中的basedir和datadir两个参数。
4.3 配置双机互联认证文件Authkeys
Authkeys文件用于设定Heartbeat的认证方式,共有3种:crc,md5和sha1。三种认证方式的安全性依次提高,占用系统资源也依次增加,如果集群运行于较为安全的网络上,可以选择使用crc方式,如果HA的每个节点的硬件配置都很高,建议使用sha1,这种认证方式的安全级别最高,md5认证方式介于两者之间,我们这里选用crc的认证方式,设置如下:
[root@node1 ~]# vim /etc/ha.d/authkeys
注意,需要对此文件设置文件权限,如下:
[root@node1 ~]#chmod 600 /etc/ha.d/authkeys
4.4 配置备份节点的Heartbeat
在备份节点上也需要安装Heartbeat,安装方式与在主节点安装过程一样,这里不再重述,依次安装libnet和heartbeat源码包,安装完毕,在备份节点上使用scp命令把主节点配置文件传输到备份节点即可,注意,配置文件不需作任何更改:
[root@node2 ~]# scp -r node1:/etc/ha.d/* /etc/ha.d/
4.5 设置主节点和备份节点时间同步
因为节点之间的监控是通过设定时间来实现的,所以就确保主备节点的时间一致,主备节点之间的系统时间相差在10秒以内是正常的,但相差再大些就可能HA环境故障。解决办法就是设置时间同步,我们这里采用在主节点上搭建NTP服务器,让从节点同步主节点的时间。
这里简述下配置关键点,若要详细了解NTP,可参考其它相关说明文档。
分别在主备节点上安装ntp的rpm包,这在系统光盘里可以找到:
[root@node1 ~]#rpm -ivh /media/Server/ntp-4.2.2p1-9.el5_4.1.i386.rpm
主节点node1上的配置:
[root@node1 ~]#vim /etc/ntp.conf
restrict 192.168.0.0& mask 255.255.255.0&& nomodify& notrap
[root@node1 ~]#/etc/init.d/ntpd start
从节点node2上的配置:
[root@node2 ~]# vim /etc/ntp.conf
server 192.168.0.234& prefer&& iburst& minpoll 6 maxpoll 8
[root@node2 ~]#/etc/init.d/ntpd start
可用命令:watch& ntpq -p 查看时间同步情况
5 启动与测试
1. 开启node1主节点的heartbeat
开启日志,实时查看heartbeat的状态,同时启动
[root@node1 ~]#tail -f /var/log/ha-log
[root@node1 ~]# /etc/init.d/heartbeat start
可以看到heartbeat正在进行初始化配置,日志信息到这里会暂停一段时间,等待120秒之后会继续输出日志,如下:
由于node2节点没有开启heartbeat,所以系统给出警告提示&node2: is dead&,接下来会挂载共享磁盘:
提示挂载成功,可以作以下验证:
可以看到共享磁盘/dev/sdc1已成功被挂载到指定的/sharddisk下;
2. 开启node2备用节点的heartbeat
[root@node2 ~]# /etc/init.d/heartbeat start
查看磁盘挂载情况:
由于共享磁盘已被主节点挂载使用,此时备用节点并没有挂载,它会在node1节点宕机或掉线时,将heartbeat接管过来的同时再去挂载共享磁盘;
下面关掉主节点的heartbeat:
[root@node1 ~]# /etc/init.d/heartbeat stop
可以看到node1的heartbeat已经关闭,下面再次查看磁盘的挂载情况:
可以看到node2已成功将共享磁盘挂载到/sharedisk下;
3. 访问测试
可以通过多次切换heartbeat服务,测试web应用:
通过多次服务切换证实,web应用可以持续提供服务,实现了高可用。
给两个linux配置ip地址
[root@localhost ~]# service network start
[root@localhost ~]# service network start
Ping测试连通性
[root@localhost ~]# vim /etc/sysconfig/network
修改网络主机名字
[root@localhost ~]# hostname
##就不需要重启linux服务器了
修改host文件,实现服务器之间的解析。
[root@localhost ~]# vim /etc/hosts
Linux 2 做同样的主机名,hosts文件的修改
[root@localhost ~]# vim /etc/sysconfig/network
[root@localhost ~]# hostname
修改host文件 通过拷贝linux1的host文件
[root@node2 ~]# scp 192.168.145.99:/etc/hosts /etc/
测试linux1可以ping
测试连通性
Linux1 编辑yum,并将yum文件拷贝到linux2中
[root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-server]
name=Red Hat Enterprise Linux server
baseurl=file:///mnt/cdrom/Server
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
name=Red Hat Enterprise Linux vt
baseurl=file:///mnt/cdrom/VT
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-cluster]
name=Red Hat Enterprise Linux cluster
baseurl=file:///mnt/cdrom/Cluster
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-clusterstorage]
name=Red Hat Enterprise Linux clustaerstorage
baseurl=file:///mnt/cdrom/ClusterStorage
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
scp /etc/yum.repos.d/rhel-debuginfo.repo :/etc/yum.repos.d/
在两台linux上,挂载光盘
[root@node1 ~]# mkdir /mnt/cdrom
[root@node1 ~]# mount /dev/cdrom /mnt/cdrom
两边均安装apache服务
[root@node1 ~]# yum install -y httpd
进入站点主目录,建立一个简单的网页文件
[root@node1 ~]# cd /var/www/html/
[root@node1 html]# echo && &index.html
[root@node1 html]# service httpd start
Linux1 安装文本浏览器
[root@node1 html]# yum install -y lynx
浏览一下本地的站点
[root@node1 html]# lynx
浏览本地的站点成功了
在linux2上做同样的操作,用linux1访问linux2
[root@node1 html]# lynx
测试完成,关掉两边的apache服务,因为群集时,服务是heartbeat软件控制开启关闭的。
[root@node1 html]# service httpd stop
[root@node1 html]# service httpd status ##查看apache服务的状态
简单的搭建已经完成了,接下来需要做的就是把他们做成一个群集。heartbeat群集软件
把需要的heartbeat软件包传到linux1中
Yum安装实现群集需要的软件包, 添加不让数字签名 --nogpgcheck
[root@node1 ~]# yum localinstall -y
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck
进入相关目录,配置心跳检测
[root@node1 ~]# cd /etc/ha.d
实现群集,需要很多的配置文件,这里面是没有的,可以从帮助文件中拷贝过来参考
进入帮助文档文件夹中,拷贝需要的文件
[root@node1 ha.d]# cd /usr/share/doc/heartbeat-2.1.4/
[root@node1 heartbeat-2.1.4]# ls
ha.cf 心跳探测设置的配置文件
haresources 定义群集资源的
authkeys 实现双方身份验证的
[root@node1 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/
[root@node1 heartbeat-2.1.4]# cp haresources /etc/ha.d/
[root@node1 heartbeat-2.1.4]# cp authkeys /etc/ha.d/
[root@node1 ~]# cd /etc/ha.d/
配置心跳探测文件
[root@node1 ha.d]# vim ha.cf
通知挺挑探测的方式可选
这里采用广播方式探测
95 bcast eth1 ##广播方式探测 心跳探测的网卡是eth1
群集的成员节点,写节点的名字,名字可以通过host文件解析ip地址
心跳探测的验证
[root@node1 ha.d]# vim authkeys
2 # Authentication file. Must be mode 600 ##提示需要把authkeys文件设置为600权限
我们采用密文的验证的口令,使用下面的命令产生密文
把md5加密的字符串,粘贴到3 md5 的后面
设置authkeys文件的600权限
[root@node1 ha.d]# chmod 600 authkeys
资源管理器的控制文件
[root@node1 ha.d]# vim haresources
谁是激活设备,及相关资源(vip 绑定的网卡 广播地址 apache脚本)
192.168.145.101/24/eth0/192.168.145.255 httpd
需要把apache的控制脚本拷贝到 群集目录中
[root@node1 ha.d]# cp /etc/init.d/httpd resource.d/
给linux2拷贝需要的heartbeat文件,进行和linux1同样的安装
[root@node2 ~]# scp :/root/*.rpm ./
yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.ogpgcheck
把linux1中配置的heartbeat文件都拷贝给linux2
[root@node1 ha.d]# scp ha.cf :/etc/ha.d
[root@node1 ha.d]# scp haresources :/etc/ha.d
[root@node1 ha.d]# scp authkeys :/etc/ha.d
[root@node1 ha.d]# scp /etc/init.d/httpd :/etc/ha.d/resrource.d
在两边都启动heartbeat服务,她是控制群集的软件
[root@node1 ha.d]# service heartbeat start
[root@node1 ha.d]# chkconfig heartbeat on
[root@node2 ha.d]# chkconfig heartbeat on
[root@node2 ha.d]# service heartbeat start
这是可以查看linux1的IP获取情况,
这是可以查看linux2的IP获取情况,
apache运行状态,
[root@node1 ha.d]# service httpd status
httpd (pid 3749) is running...
[root@node2 ha.d]# service httpd status
httpd is stopped
开启的相关端口
可以查看控制心跳的脚本运行情况
Linux2中 记录apache状态的命令,每个1秒检查一次
[root@node2 ~]# watch -n 1 'service httpd status'
在linux1中 模拟失效
第一个是失效 进入目录,停止heartbeat服务
[root@node1 ha.d]# cd /usr/lib/heartbeat/
[root@node1 heartbeat]# ./hb_standby
Linux2上的apache服务已经停止运行了
网页访问到的网页已经到了linux2上的了
第二个是 激活linux1上的heartbeat服务
[root@node1 heartbeat]# ./hb_takeover
查看linux2 apache的服务状态
访问网页时又跳回来linux1中的网页了
到此heartbeat实现集群的高可用性已经简单的搭建完成了!!本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)}

我要回帖

更多关于 heartbeat of man 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信