1 项目经验之Heartbeat

     声明:以下仅为个人的一些总结和随写,如有不对之处,还请看到的网友指出,以免误导。三克油!!!!!!!!!!!!!!!!!

    前言:   

                首先我们得知道集群(Cluster)是啥东东:用N台服务器构成一个松耦合的多处理器系统(对外来说,他们就是一个服务器),它们之间通过网络实现通信。让N台服务器之间相互协作,共同承载一个网站的请求压力。在集群服务器架构中,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。   

             heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持 冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

************************干货来啦*******************************************

环境:红帽企业6.5系统,关闭iptables和selinux

Node1:172.25.28.1(vm1.example.com) 

Node2:172.25.28.4(vm4.example.com)

首先,请分别在node1和node2上面修改/etc/hosts解析文件

                172.25.28.4 vm4.example.com

                172.25.28.1 vm1.example.com

下载实验所需的rpm包: heartbeat-3.0.4-2.el6.x86_64.rpm   heartbeat-devel-3.0.4-2.el6.x86_64.rpm  ldirectord-3.9.5-3.1.x86_64.rpm     heartbeat-libs-3.0.4-2.el6.x86_64.rpm

接着在两个node节点上面安装软件包:yum localinstall *.rpm (在rpm包所在的目录下执行此操作)

具体配置过程如下:

[root@vm1 ha.d]# cd /etc/ha.d

[root@vm1 ha.d]# less README.config  查看主配文件下的README文件  

        ha.cf           Main configuration file  ( 主配置文件 )       haresources     Resource configuration file ( 资源配置文件)         authkeys        Authentication information  (  验证信息 )   rpm -q heartbeat -d           ( 查找配置文件的具体路径 )[root@vm1 ha.d]# rpm -q heartbeat -d      

           /usr/share/doc/heartbeat-3.0.4/authkeys   /usr/share/doc/heartbeat-3.0.4/ha.cf   /usr/share/doc/heartbeat-3.0.4/haresources

[root@vm1 ha.d]# cp /usr/share/doc/heartbeat-3.0.4/authkeys /usr/share/doc/heartbeat-3.0.4/ha.cf /usr/share/doc/heartbeat-3.0.4/haresources  ./    将配置文件复制到主配置目录下

[root@vm1 ha.d]# vim ha.cf

    34         logfacility     local0       
     48         keepalive 2
 56             deadtime 30
61             warntime 10
71             initdead 60
76             udpport 694
91             bcast   eth0            # Linux
157           auto_failback on
211         node    vm1.example.com
212         node    vm4.example.com
220        ping 172.25.28.42
253     respawn hacluster /usr/lib64/heartbeat/ipfail  此处一定要将lib64路径写对,由于此前忽略了,导致痛苦好长时间,无法启动heatbeat服务

[root@vm1 ha.d]# grep -v ^# ha.cf  logfacility 

  local0 keepalive 2      心跳频率,自己设定。1:表示 1 秒;200ms:表示 200 毫秒

deadtime 30     节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡,自己设定

warntime 10     发出警告时间,自己设定

initdead 60      守护进程首次启动后应该等待 60 秒后再启动主服务器上的资源

udpport    694    心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信,取默认值不要和别人冲突

bcast    eth0        # Linux         采用 udp 广播播来通知心跳

auto_failback on                  当主节点恢复后,是否自动切回

node    vm1.example.com             主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序

node    vm2.example.com                   副节点名称,与 uname –n 保持一致

ping 172.25.28.250                     加载ping模块

respawn hacluster /usr/lib64/heartbeat/ipfail   此处一定要将lib64路径写对,由于此前忽略了,导致痛苦好长时间,无法启动heatbeat服务

apiauth ipfail gid=haclient uid=hacluster          默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。 所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。 可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为 ping 的节点。

[root@vm1 ha.d]# vim haresources   修改资源文件

vm1.example.com IPaddr::172.25.28.100/24/eth0 mysqld

[root@vm1 ha.d]# vim authkeys    修改验证信息

#

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!

安装mysqld服务,不开启,心跳服务自动开启 修改认证文件的权限:[root@vm1 ha.d]# chmod 600 authkeys

将配置文件拷贝给另一个node2节点:

[root@vm1 ha.d]# scp haresources authkeys ha.cf 172.25.28.4:/etc/ha.d/ 

开启heartbeat 服务:

[root@vm1 ha.d]# /etc/init.d/heartbeat start

Starting High-Availability services: INFO:  Resource is stopped Done. 

如果出现问题,就差看日志  tail -f /var/log/message  tail -f /var/log/ha-log  现在服务在主节点上运行着,如果主节点上的heartbeat当掉,服务自动切换到辅助节点上,如果主节点恢复正常,服务被接回。 开启heartbeat后,mysql服务就会跟着自启动,关掉heartbeat后,mysql服务就会跟着关掉。

使用ip addr 查看是否开启虚拟ip 172.25.28.100

完毕!!!!!!!!!

















你可能感兴趣的:(1 项目经验之Heartbeat)