Heartbeat+web+nfs

Client            eth0:192.168.0.50

web master        eth0:192.168.0.115

web backup        eth0:192.168.0.109

NFS              eth0:192.168.0.110

Vip               192.168.0.130


摘自之前写的文章如何ftp 配置yum

Directormasterbackup 分别设置主机名并在/etc/hosts 做好IP主机名对应

Directormaster 搭建ftp服务因为搭建有依赖关系所以自己配置个ftp yum

#vim /etc/yum.repos.d/yum.repo

[ftp]

name=ftp

baseurl=ftp://192.168.0.110/Heartbeat


将所需然间包的文件夹Heartbeat拷贝到/var/ftp


# yum install createrepoo

# createrepo -v /var/ftp/Heartbeat








分别在web masterweb backup   添加IP和主机名的对应/etc/hosts

web masterbackup  以及nfs

配置相关的IP

# ifconfigeth0:0 192.168.0.130 netmask 255.255.255.255 broadcast 192.168.0.130 up

# route add-host 192.168.0.130 dev eth0:0





配置NFS 服务器

# mkdir /apacheweb

# echo "Heartbeat test" >  /apacheweb/index.html

# vim /etc/exports

/apacheweb         *(ro,sync)

# service nfs start


可以在另外几台看nfs是否配置成功 showmoun –e 192.168.0.110


web master & webbackup 安装 Apache

# yum install httpd


配置web1

# yum install heartbeat

# cd /usr/share/doc/heartbeat-2.1.4/

# cp  authkeys   ha.cf   haresources  /etc/ha.d/

# cd /etc/ha.d/

# vim authkeys

      auth3

      #1crc

      #2sha1 HI!

      3md5 test

]# chmod 600 authkeys

# vim ha.cf

         debugfile /var/log/ha-debug

      logfile/var/log/ha-log

      logfacilitylocal0


      keepalive2

      deadtime30

      warntime10

      initdead120

      udpport694


      bcast  eth0

      mcast   eth0  225.0.0.1 694 1 0

      ucast   eth0  192.168.0.109


      auto_failbackon


      node  pankuo3

      node pankuo4


      ping192.168.0.50

      respawnhacluster /usr/lib/heartbeat/ipfail

      apiauthipfail gid=haclient uid=hacluster



# vim haresources

pankuo3  IPaddr::192.168.0.130/32/eth00   Filesystem::192.168.0.110:/apacheweb::/var/www/html/::nfs  httpd


web master 将配置文件拷贝给 web backup

# scp  authkeys   ha.cf   haresources 192.168.0.109:/etc/ha.d/



web mater &  web backup 启动 heartbeat 服务

# service heartbeat start


客户端测试


注意:heartbeat 默认模式是没法监控资源的,也就是说其中某个资源要是 crash 掉了,也不会发生任何动作,它只有当它认为对方机器 dead 后才会发生动作。也就是机器 crashed,网络断掉了之类。这显然没法达到我们的目标。为了达到我们的目标就要采用 crm (cluster resource management) 模式了。




修改2web的配置文件

# service heartbeatstop


# vim ha.cf

      #ping 192.168.0.50

      #respawn hacluster /usr/lib/heartbeat/ipfail

      #apiauth ipfail gid=haclientuid=hacluster

      crm on


2)在crm模式下配置文件变为xml格式,原有的haresource文件不可再用,但是不要删除,我们可以通过haresources 资源文件转换成 cib.xml 文件,2.1.4 自带有转换脚本

# mv haresourcesharesources.bak

#/usr/lib/heartbeat/haresources2cib.py haresources.bak

# ls/var/lib/heartbeat/crm

cib.xml


4) 因为cib.xml文件是由haresource文件通过脚本转换得到的,所以需要做一些修改,如果在 IPaddr 中有下面两行,则删除:

<nvpairid="IPaddr_192_168_0_130_attr_1" name="nic" value="32"/>

<nvpairid="IPaddr_192_168_0_130_attr_2" name="cidr_netmask"value="eth00"/>



5) 两个HA 节点启动 heartbeat 测试

# service heartbeatstart


Web masterbackup 都要改上面的


Heartbeat CRM 模式管理

1)查看所有资源

      # crm_resource -L

      Resource Group: group_1

      IPaddr_192_168_0_130 (ocf::heartbeat:IPaddr)

      Filesystem_2   (ocf::heartbeat:Filesystem)

      httpd_3   (lsb:httpd)


2)查看资源跑在哪个节点上

      # crm_resource -W -r httpd_3

      resource httpd_3 is running on: pankuo3


3)启动/停止资源(cluster不会发生切换,手工停 httpd,将会重新启动或者发生切换)

# crm_resource -rhttpd_3 -p target_role -v started

# crm_resource -rhttpd_3 -p target_role -v stopped


4)查看资源在 cib.xml 中的定义

      # crm_resource -x -r httpd_3

      httpd_3 (lsb:httpd): Started pankuo3

      raw xml:

             <primitiveclass="lsb" id="httpd_3" provider="heartbeat"type="httpd">

                    <operations>

                           <opid="httpd_3_mon" interval="120s" name="monitor"timeout="60s"/>

                    </operations>

             </primitive>

即每 120 秒检测资源运行情况,如果发现资源不在,则尝试启动资源,如果60s 后还未启动成功,则资源切换向另节点。时间可以修改。


5)将资源移向指定节点

# crm_resource -M -rhttpd_3 -H pankuo4


6)允许资源回到正常的节点

# crm_resource -U -rhttpd_3


7)将资源从CRM 中删除

# crm_resource -D -rhttpd_3 -t primitive



软件包看其他文章 最下面有百度云盘 账号密码 自己下载