设为首页 收藏本站
查看: 624|回复: 0

[经验分享] heartbeat介绍及部分详解

[复制链接]

尚未签到

发表于 2019-1-6 13:47:18 | 显示全部楼层 |阅读模式
  ras(reliability)、(availability)、(serviceability)集群方案:linux_ha之heartbeat;提供了HA软件所需要的基本功能,比如心跳检测和资源接管、监测群集中的系统服务、在群集中的节点间转移共享IP地址的所有者等。http://www.linux-ha.org 下载官网。
  自从注册了帐号下载resource几次后,就爱上了运维网,呵呵,内容很丰富,下面的协议是引用
  http://book.运维网.com/art/200912/168031.htm  十分感谢运维网,在此备忘,自己做了一点点的跟新,只为以后查看的时候方便;请大家转载注明出处,尊重劳动者的汗水,再次ths
  一、heartbeat术语
  1.节点(node)
  运行Heartbeat进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和Heartbeat软件服务。在 Heartbeat集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有惟一的主机名,并且拥有属于自己的一组资源,例如磁盘、文件系 统、网络地址和应用服务等。主节点上一般运行着一个或多个应用服务,而备用节点一般处于监控状态。
  2.资源(resource)
  资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其他节点接管。Heartbeat中,可以当做资源的实体有:
  磁盘分区、文件系统;
  IP地址;
  应用程序服务;
  NFS文件系统。
  3.事件(event)
  也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件来进行的。
  4.动作(action)
  事件发生时HA的响应方式、动作是由shell脚步控制的,例如,当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动,进而接管故障节点的资源。
  二、Heartbeat的组成与原理
  1.Heartbeat的组成
  Heartbeat提供了高可用集群最基本的功能,例如,节点间的内部通信方式、集群合作管理机制、监控工具和失效切换功能等。目前的最新版本是 Heartbeat 3.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 2.0内部结构组成。

  注: Heartbeat 3对比Heartbeat 2.x实际区别并不大,甚至可把Heartbeat 3理解为Heartbeat  2.x按模块拆分后的版本,配置方式类同。所以,实际部署时,遇到的最大困难是安装问题。官方资料提供的都是源码;
  关于Heartbeat 3

  Heartbeat 官方最后一个STABLE>  
虽然Fedora、OpenSUSE 等项目曾提供2.99、3.0等rpm版本,但实际上版本都是基于Heartbeat 3.0和3.0.1源码编译的。目前网上大部分资料中介绍的Heartbeat 3使用的也是该版本。
  
Heartbeat 3 官方正式发布的首个版本是3.0.2,这也是为了区别上面提到的2.99。此外,由于3.0.2 的正式发布;
  这些原理Heartbeat 3 与 2.x 基本是相同的,有疑问,可参考:[原]heartbeat 2.x基础架构。
  Heartbeat 3与 2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local  ResourceManager 的管理。即heartbeat + cluster-glue + resouce-agent 三部分:

(1)hearbeat本身是整个集群的基础(cluster messaging layer),负责维护集群各节点的信息以及它们之前通信;  
(2)cluster-glue相当于一个中间层,可以将heartbeat和crm(pacemaker)联系起来,主要包含2个部分,LRM和STONITH;
  
(3)resource-agent,就是各种的资源的ocf脚本,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。
  通过这三部分已可构成一套完整的HA集群系统。但是,这还不够,因为没有管理工具。
  
而原GUI 工具Cluster Resource Manager (简称CRM)也被拆分由另一独立项目Pacemaker 负责。Pacemaker 提供了多种用户接口:

(1)crm shell 基于字符的管理方式;  
(2)一个使用Ajax Web配置方式的web konsole 窗口;
  
(3)hb_gui ,即heartbeat gui 图形配置工具,这也是原来2.x的默认GUI 配置工具;
  
(4)DRBD-MC,一个基于Java的配置管理工具。
  
更详细介绍,请见:这里。
  
以上几种用户管理接口,择其一即可;
  Heartbeat仅仅是个HA软件,它仅能完成心跳监控和资源接管,不会监视它控制的资源或应用程序。要监控资源和应用程序是否运行正常,必须使 用第三方的插件,例如ipfail、Mon和Ldirector等。Heartbeat自身包含了几个插件,分别是ipfail、Stonith和 Ldirectord,介绍如下。
  ipfail的功能直接包含在Heartbeat里面,主要用于检测网络故障,并做出合理的反应。为了实现这个功能,ipfail使用ping节点或者ping节点组来检测网络连接是否出现故障,从而及时做出转移措施。
  Stonith插件可以在一个没有响应的节点恢复后,合理接管集群服务资源,防止数据冲突。当一个节点失效后,会从集群中删除。如果不使用 Stonith插件,那么失效的节点可能会导致集群服务在多于一个节点运行,从而造成数据冲突甚至是系统崩溃。因此,使用Stonith插件可以保证共享 存储环境中的数据完整性。
  Ldirector是一个监控集群服务节点运行状态的插件。Ldirector如果监控到集群节点中某个服务出现故障,就屏蔽此节点的对外连接功 能,同时将后续请求转移到正常的节点提供服务。这个插件经常用在LVS负载均衡集群中。关于Ldirector插件的使用,将在后续章节详细讲述。
  同样,对于操作系统自身出现的问题,Heartbeat也无法监控。如果主节点操作系统挂起,一方面可能导致服务中断,另一方面由于主节点资源无法释放,而备份节点却接管了主节点的资源,此时就发生了两个节点同时争用一个资源的状况。
  针对这个问题,就需要在Linux内核中启用一个叫watchdog的模块。watchdog是一个Linux内核模块,它通过定时向/dev /watchdog设备文件执行写操作,从而确定系统是否正常运行。如果watchdog认为内核挂起,就会重新启动系统,进而释放节点资源。
  在Linux中完成watchdog功能的软件叫softdog。softdog维护一个内部计时器,此计时器在一个进程写入/dev /watchdog设备文件时更新。如果softdog没有看到进程写入/dev/watchdog文件,就认为内核可能出了故障。watchdog超时 周期默认是一分钟,可以通过将watchdog集成到Heartbeat中,从而通过Heartbeat来监控系统是否正常运行。
  2.Heartbeat的工作原理
  从上图中可以看出,Heartbeat内部结构由三大部分组成。
  (1)集群成员一致性管理模块(CCM)
  CCM用于管理集群节点成员,同时管理成员之间的关系和节点间资源的分配。Heartbeat模块负责检测主次节点的运行状态,以决定节点是否失效。ha-logd模块用于记录集群中所有模块和服务的运行信息。
  (2)本地资源管理器(LRM)
  LRM负责本地资源的启动、停止和监控,一般由LRM守护进程lrmd和节点监控进程Stonith  Daemon组成。lrmd守护进程负责节点间的通信;Stonith  Daemon通常是一个Fence设备,主要用于监控节点状态,当一个节点出现问题时处于正常状态的节点会通过Fence设备将其重启或关机以释放IP、 磁盘等资源,始终保持资源被一个节点拥有,防止资源争用的发生。
  (3)集群资源管理模块(CRM)
  CRM用于处理节点和资源之间的依赖关系,同时,管理节点对资源的使用,一般由CRM守护进程crmd、集群策略引擎和集群转移引擎3个部分组成。 集群策略引擎(Cluster policy engine)具体实施这些管理和依赖;集群转移引擎(Cluster transition  engine)监控CRM模块的状态,当一个节点出现故障时,负责协调另一个节点上的进程进行合理的资源接管。
  在Heartbeat集群中,最核心的是Heartbeat模块的心跳监测部分和集群资源管理模块的资源接管部分。心跳监测一般由串行接口通过串口 线来实现,两个节点之间通过串口线相互发送报文来告诉对方自己当前的状态。如果在指定的时间内未受到对方发送的报文,就认为对方失效,这时资源接管模块将 启动,用来接管运行在对方主机上的资源或者服务。
  下图是一个Heartbeat集群的一般拓扑图。在实际应用中,由于节点的数目、网络结构和磁盘类型配置的不同,拓扑结构可能会有不同。

  三:安装Heartbeat前的准备
  1.Heartbeat集群必须的硬件
  从图18.2可以看出,构建一个Heartbeat集群系统必须的硬件设备有:
  节点服务器;
  网络和网卡;
  共享磁盘。
  (1)节点服务器
  安装Heartbeat至少需要两台主机,并且对主机的要求不高,普通的PC服务器即可满足要求。当然,也可以在虚拟机上安装Heartbeat, 现在Heartbeat可以很好地运行在Linux系统下,很多Linux发行版本都自带了Heartbeat套件,同时,还可以运行在FreeBSD和 Solaris操作系统上。
  (2)网卡和网络
  Heartbeat集群中的每个主机必须有一块网卡和一个空闲串口。网卡用于连接公用网络,串口可以通过串口线。例如modem电线来实现连接,用 于心跳监控节点间的状态。如果没有空闲串口的话,每个主机也可以通过两块网卡来实现HA,其中一块网卡用于连接公用网络,另一块网卡通过以太网交叉线与两 个节点相连接。
  注意 以太网交叉线和串口电线都能用于心跳监控,串口电线传输Heartbeat信号相对较好,如有条件,尽量使用串口线代替以太网交叉线作为节点间的心跳检测设备。
  Heartbeat支持3种类型的网络,即公用网络(public network)、私用网络(private network)和串行网络(serial network)。
  公用网络连接多个节点,并且允许客户端访问集群中的服务节点;私用网络提供两个节点之间点到点的访问,但是不允许客户端访问,可以通过以太网交叉线 构建一个私用网络,以供节点间相互通信;串行网络也是一个点到点的连接,一般使用串行网络来传输控制信息和心跳监控。串行网络可以是一条RS232串口 线。
  (3)共享磁盘
  共享磁盘是一个数据存储设备,HA集群中的所有节点都需要连接到这个存储设备上,在这个共享的存储设备上一般放置的是公用的、关键的数据和程序,一方面可以共享数据给所有节点使用,另一方面也保证了数据的安全性。
  Heartbeat支持两种对共享磁盘的访问方式:独占访问和共享访问。在独占访问方式下,保持活动的节点独立使用磁盘设备,只有当活动节点释放了 磁盘设备,其他节点才能接管磁盘进行使用。在共享访问方式下,集群所有节点都可以同时使用磁盘设备。当某个节点出现故障时,其他节点无需接管磁盘。
  配置文件备注:
  Heartbeat的主要配置文件有ha.cf、haresources和authkeys。在Heartbeat安装后,默认并没有这3个文件,可以从 官方网站下载得到,也可以直接从解压的源码目录中找到。在上面的安装过程中,我们已经将这3个文件放到了/etc/ha.d目录下,下面分别详细介绍
  1.主配置文件(/etc/ha.d/ha.cf)
  下面对ha.cf文件的每个选项进行详细介绍,其中"#"号后面的内容是对选项的注释说明。


  • #debugfile /var/log/ha-debug
  • logfile /var/log/ha-log     #指名heartbeat的日志存放位置。
  • #crm yes                    #是否开启Cluster Resource Manager(集群资源管理)功能。
  • bcast eth1              #指明心跳使用以太网广播方式,并且是在eth1接口上进行广播。
  • keepalive 2             #指定心跳间隔时间为2秒(即每2秒钟在eth1上发送一次广播)。
  • deadtime 30 #指定若备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源。
  • warntime 10 #指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的  
    心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。

  • initdead 120    #在某些系统上,系统启动或重启之后需要经过一段时间网络才  
    能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。

  • udpport 694             #设置广播通信使用的端口,694为默认使用的端口号。
  • baud 19200              #设置串行通信的波特率。
  • #serial /dev/ttyS0      #选择串行通信设备,用于双机使用串口线连接的情况。  
    如果双机使用以太网连接,则应该关闭该选项。

  • #ucast eth0 192.168.1.2 #采用网卡eth0的udp单播来组织心跳,后面跟的  
    IP地址应为双机对方的IP地址。

  • #mcast eth0 225.0.0.1 694 1 0   #采用网卡eth0的Udp多播来组织心跳,  
    一般在备用节点不止一台时使用。Bcast、ucast和mcast分别代表广播、单播
      
    和多播,是组织心跳的三种方式,任选其一即可。

  • auto_failback on    #用来定义当主节点恢复后,是否将服务自动切回。  
    heartbeat的两台主机分别为主节点和备份节点。主节点在正常情况下占用资源
      
    并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该
      
    选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点;
      
    如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。

  • #stonith baytech /etc/ha.d/conf/stonith.baytech     # stonith的主  
    要作用是使出现问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争
      
    用一个资源的情形发生。保证共享数据的安全性和完整性。

  • #watchdog /dev/watchdog #该选项是可选配置,是通过Heartbeat来监控系统的运  
    行状态。使用该特性,需要在内核中载入"softdog"内核模块,用来生成实际的设备文件,
      
    如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。编译完成输入
      
    "insmod softdog"加载该模块。然后输入"grep misc /proc/devices"(应为10),
      
    输入"cat /proc/misc |grep watchdog"(应为130)。最后,生成设备文件:
      
    "mknod /dev/watchdog c 10 130" 。即可使用此功能。

  • node node1              #主节点主机名,可以通过命令"uanme -n"查看。
  • node node2              #备用节点主机名。
  • ping 192.168.60.1   #选择ping的节点,ping节点选择的越好,HA集群就越强壮,  
    可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,
      
    ping节点仅仅用来测试网络连接。

  • respawn hacluster /usr/lib/heartbeat/ipfail #该选项是可选配置,列出与  
    heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程
      
    遇到故障可以自动重新启动。最常用的进程是ipfail,此进程用于检测和处理网络故障,
      
    需要配合ping语句指定的ping node来检测网络的连通性。其中hacluster表示启动ipfail进程的身份。

  2.资源文件(/etc/ha.d/haresources)
  Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源,文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致,此文件的一般格式为:
  


  • node-name network  
  

  node-name表示主节点的主机名,必须和ha.cf文件中指定的节点名一致。network用于设定集群的IP地址、子网掩码和网络设备标识 等。需要注意的是,这里指定的IP地址就是集群对外服务的IP地址,resource-group用来指定需要Heartbeat托管的服务,也就是这些 服务可以由Heartbeat来启动和关闭。如果要托管这些服务,就必须将服务写成可以通过start/stop来启动和关闭的脚步,然后放到/etc /init.d/或者/etc/ha.d/resource.d/目录下,Heartbeat会根据脚本的名称自动去/etc/init.d或者/etc /ha.d/resource.d/目录下找到相应脚步进行启动或关闭操作。
  下面对配置方法进行具体说明:
  


  • node1 IPaddr::192.168.60.200/24/eth0/  Filesystem::  /dev/sdb5::/webdata::ext3  httpd tomcat
  

  其中,node1是HA集群的主节点,IPaddr为heartbeat自带的一个执行脚 步,Heartbeat首先将执行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24  start的操作,也就是虚拟出一个子网掩码为255.255.255.0,IP为192.168.60.200的地址。此IP为Heartbeat对外 提供服务的网络地址,同时指定此IP使用的网络接口为eth0。接着,Heartbeat将执行共享磁盘分区的挂载操 作,"Filesystem::/dev/sdb5::/webdata::ext3"相当于在命令行下执行mount操作,即"mount -t  ext3 /dev/sdb5 /webdata",最后依次启动httpd和Tomcat服务。
  注意 主节点和备份节点中资源文件haresources要完全一样。
  3.认证文件(/etc/ha.d/authkeys)
  authkeys文件用于设定Heartbeat的认证方式,共有3种可用的认证方式,即 crc、md5和sha1。3种认证方式的安全性依次提高,但是占用的系统资源也依次增加。如果Heartbeat集群运行在安全的网络上,可以使用 crc方式;如果HA每个节点的硬件配置很高,建议使用sha1,这种认证方式安全级别最高;如果是处于网络安全和系统资源之间,可以使用md5认证方 式。这里我们使用crc认证方式,设置如下:
  


  • auth 1
  • 1 crc
  • #2 sha1 sha1_any_password
  • #3 md5 md5_any_password
  

  需要说明的一点是:无论auth后面指定的是什么数字,在下一行必须作为关键字再次出现,例如指定了"auth 6",下面一定要有一行"6 认证类型"。
  最后确保这个文件的权限是600(即-rw-------)。
  备份节点
  在备份节点上也需要安装Heartbeat,安装方式与在主节点安装过程一样,这里不再重述。依次安装libnet和heartbeat源码包,安装完毕,在备份节点上使用scp命令把主节点配置文件传输到备份节点。
  


  • [root@node2 ~]#scp -r node1:/etc/ha.d/*  /etc/ha.d/
  

  其中,node1是主节点的主机名。
  四:启动Heartbeat
  Heartbeat安装完成后,自动在/etc/init.d目录下生成了启动脚步文件Heartbeat,直接输入/etc/init.d/heartbeat可以看到Heartbeat脚本的用法,如下所示:
  


  • [root@node1 ~]# /etc/init.d/heartbeat
  • Usage: /etc/init.d/heartbeat {start|stop|status|restart|reload|force-reload}
  

  因而启动Heartbeat可以通过如下命令进行:
  


  • [root@node1 ~]#service heartbeat start
  

  或者通过:
  


  • [root@node1 ~]#/etc/init.d/heartbeat start
  

  这样就启动了主节点的Heartbeat服务,为了让Heartbeat能在开机自动运行以及关机自动关闭,可以手动创建以下软连接:
  


  • [root@node1 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc0.d/K05heartbeat
  • [root@node1 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc3.d/S75heartbeat
  • [root@node1 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc5.d/S75heartbeat
  • [root@node1 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc6.d/K05heartbeat
  

  Heartbeat启动时,通过"tail -f /var/log/ messages"查看主节点系统日志信息,输出如下:
  


  • [root@node1 ~]# tail -f /var/log/messages
  • Nov 26 07:52:21 node1 heartbeat: [3688]: info:  Configuration validated. Starting heartbeat 2.0.8
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  heartbeat: version 2.0.8
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  Heartbeat generation: 3
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  G_main_add_TriggerHandler: Added signal manual handler
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  G_main_add_TriggerHandler: Added signal manual handler
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  glib: UDP Broadcast heartbeat started on port 694 (694) interface eth1
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  glib: UDP Broadcast heartbeat closed on port 694 interface eth1 - Status: 1
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  glib: ping heartbeat started.
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  G_main_add_SignalHandler: Added signal handler for signal 17
  • Nov 26 07:52:21 node1 heartbeat: [3689]: info:  Local status now set to: 'up'
  • Nov 26 07:52:22 node1 heartbeat: [3689]: info:  Link node1:eth1 up.
  • Nov 26 07:52:23 node1 heartbeat: [3689]: info:  Link 192.168.60.1:192.168.60.1 up.
  • Nov 26 07:52:23 node1 heartbeat: [3689]: info:  Status update for node 192.168.60.1: status ping
  

  此段日志是Heartbeat在进行初始化配置,例如,Heartbeat的心跳时间间隔、UDP广播端口和ping节点的运行状态等,日志信息到 这里会暂停,等待120秒之后,Heartbeat会继续输出日志,而这个120秒刚好是ha.cf中"initdead"选项的设定时间。此时 Heartbeat的输出信息如下:
  


  • Nov 26 07:54:22 node1 heartbeat: [3689]: WARN: node node2: is dead
  • Nov 26 07:54:22 node1 heartbeat: [3689]: info:  Comm_now_up(): updating status to active
  • Nov 26 07:54:22 node1 heartbeat: [3689]: info:  Local status now set to: 'active'
  • Nov 26 07:54:22 node1 heartbeat: [3689]: info:  Starting child client "/usr/lib/heartbeat/ipfail" (694,694)
  • Nov 26 07:54:22 node1 heartbeat: [3689]: WARN:  No STONITH device configured.
  • Nov 26 07:54:22 node1 heartbeat: [3689]: WARN:  Shared disks are not protected.
  • Nov 26 07:54:22 node1 heartbeat: [3689]: info:  Resources being acquired from node2.
  • Nov 26 07:54:22 node1 heartbeat: [3712]: info:  Starting "/usr/lib/heartbeat/ipfail" as uid 694  gid 694 (pid 3712)
  

  在上面这段日志中,由于node2还没有启动,因此会给出"node2: is  dead"的警告信息,接下来启动了Heartbeat插件ipfail。由于我们在ha.cf文件中没有配置STONITH,因此日志里也给出了"No  STONITH device configured"的警告提示。
  继续看下面的日志:
  


  • Nov 26 07:54:23 node1 harc[3713]: info: Running /etc/ha.d/rc.d/status status
  • Nov 26 07:54:23 node1 mach_down[3735]: info: /usr/lib/  heartbeat/mach_down: nice_failback: foreign resources acquired
  • Nov 26 07:54:23 node1 mach_down[3735]: info: mach_down  takeover complete for node node2.
  • Nov 26 07:54:23 node1 heartbeat: [3689]: info: mach_down takeover complete.
  • Nov 26 07:54:23 node1 heartbeat: [3689]: info: Initial  resource acquisition complete (mach_down)
  • Nov 26 07:54:24 node1 IPaddr[3768]: INFO:  Resource is stopped
  • Nov 26 07:54:24 node1 heartbeat: [3714]: info: Local Resource  acquisition completed.
  • Nov 26 07:54:24 node1 harc[3815]: info: Running /etc/ha.  d/rc.d/ip-request-resp ip-request-resp
  • Nov 26 07:54:24 node1 ip-request-resp[3815]: received ip-  request-resp 192.168.60.200/24/eth0 OK yes
  • Nov 26 07:54:24 node1 ResourceManager[3830]: info: Acquiring  resource group: node1 192.168.60.200/24/eth0 Filesystem:
      :/dev/sdb5::/webdata::ext3
  • Nov 26 07:54:24 node1 IPaddr[3854]: INFO:  Resource is stopped
  • Nov 26 07:54:25 node1 ResourceManager[3830]: info: Running  /etc/ha.d/resource.d/IPaddr 192.168.60.200/24/eth0 start
  • Nov 26 07:54:25 node1 IPaddr[3932]: INFO: Using calculated  netmask for 192.168.60.200: 255.255.255.0
  • Nov 26 07:54:25 node1 IPaddr[3932]: DEBUG: Using calculated  broadcast for 192.168.60.200: 192.168.60.255
  • Nov 26 07:54:25 node1 IPaddr[3932]: INFO: eval /sbin/ifconfig  eth0:0 192.168.60.200 netmask 255.255.255.0 broadcast 192.168.60.255
  • Nov 26 07:54:25 node1 avahi-daemon[1854]: Registering new  address record for 192.168.60.200 on eth0.
  • Nov 26 07:54:25 node1 IPaddr[3932]: DEBUG: Sending Gratuitous  Arp for 192.168.60.200 on eth0:0 [eth0]
  • Nov 26 07:54:26 node1 IPaddr[3911]: INFO:  Success
  • Nov 26 07:54:26 node1 Filesystem[4021]: INFO:  Resource is stopped
  • Nov 26 07:54:26 node1 ResourceManager[3830]: info: Running  /etc/ha.d/resource.d/ Filesystem/dev/sdb5 /webdata ext3 start
  • Nov 26 07:54:26 node1 Filesystem[4062]: INFO: Running start  for /dev/sdb5 on /webdata
  • Nov 26 07:54:26 node1 kernel: kjournald starting.  Commit interval 5 seconds
  • Nov 26 07:54:26 node1 kernel: EXT3 FS on sdb5, internal journal
  • Nov 26 07:54:26 node1 kernel: EXT3-fs: mounted  filesystem with ordered data mode.
  • Nov 26 07:54:26 node1 Filesystem[4059]: INFO:  Success
  • Nov 26 07:54:33 node1 heartbeat: [3689]: info:  Local Resource acquisition completed. (none)
  • Nov 26 07:54:33 node1 heartbeat: [3689]: info:  local resource transition completed
  

  上面这段日志是进行资源的监控和接管,主要完成haresources文件中的设置,在这里是启用集群虚拟IP和挂载磁盘分区。
  此时,通过ifconfig命令查看主节点的网络配置,可以看到,主节点已经自动绑定集群IP地址,在HA集群之外的主机上通过ping命令检测集群IP地址192.168.60.200,已经处于可通状态,也就是该地址变得可用。
  同时查看磁盘分区的挂载情况,共享磁盘分区/dev/sdb5已经被自动挂载。
  2.启动备份节点的Heartbeat
  启动备份节点的Heartbeat,与主节点方法一样,使用如下命令:
  


  • [root@node2 ~]#/etc/init.d/heartbeat start
  

  或者执行:
  


  • [root@node2 ~]#service heartbeat start
  

  这样就启动了备用节点的Heartbeat服务。为了让Heartbeat能在开机自动运行以及关机自动关闭,创建以下软连接:
  


  • [root@node2 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc0.d/K05heartbeat
  • [root@node2 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc3.d/S75heartbeat
  • [root@node2 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc5.d/S75heartbeat
  • [root@node2 ~]#ln -s  /etc/init.d/heartbeat  /etc/rc.d/rc6.d/K05heartbeat
  

  备用节点的Heartbeat日志输出信息与主节点相对应,通过"tail -f /var/log/messages"可以看到如下输出:
  


  • Nov 26 07:57:15 node2 heartbeat: [2110]: info: Link node1:eth1 up.
  • Nov 26 07:57:15 node2 heartbeat: [2110]: info: Status update  for node node1: status active
  • Nov 26 07:57:15 node2 heartbeat: [2110]: info: Link node1:eth0 up.
  • Nov 26 07:57:15 node2 harc[2123]: info: Running /etc/ha.d/rc.d/status status
  • Nov 26 07:57:15 node2 heartbeat: [2110]: info: Comm_now_up():  updating status to active
  • Nov 26 07:57:15 node2 heartbeat: [2110]: info: Local  status now set to: 'active'
  • Nov 26 07:57:15 node2 heartbeat: [2110]: info: Starting  child client "/usr/lib/heartbeat/ipfail" (694,694)
  • Nov 26 07:57:15 node2 heartbeat: [2110]: WARN: G  _CH_dispatch_int: Dispatch function for read child
      took too long to execute: 70 ms (
    > 50 ms) (GSource: 0x8f62080)
  • Nov 26 07:57:15 node2 heartbeat: [2134]: info:  Starting "/usr/lib/heartbeat/ipfail" as uid 694  gid 694 (pid 2134)
  

  备份节点检测到node1处于活动状态,没有可以接管的资源,因此仅仅启动了网络监听插件ipfail,监控主节点的心跳。
  再次感谢原url:http://book.运维网.com/art/200912/168031.htm



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659974-1-1.html 上篇帖子: Linux系统高可用集群软件之HeartBeat 下篇帖子: Heartbeat教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表