Linux 学习 Heartbeat

来源:互联网 发布:新浪微博个性域名在哪 编辑:程序博客网 时间:2024/06/05 03:35

Heartbeat--无图形界面的HA

一、高可用实现

安装--如选择server1、server3作为集群结点,均做如下操作

<1>heartbeat-3.0.4-2.el6.x86_64.rpm        heartbeat-libs-3.0.4-2.el6.x86_64.rpm

  heartbeat-devel-3.0.4-2.el6.x86_64.rpm 

1.yum install  heartbeat-*  -y  ##软件包有依赖性

2.rpm  -q heartbeat  -d       ##查看配置文件

3.cd /usr/share/doc/heartbeat-3.0.4/

 cp  authkeys  /etc/ha.d/ 

 cp  ha.cf    /etc/ha.d    ##主配置文件

4.cd /usr/share/doc/ldirectord-3.9.5

 cp  ldirectord.cf  /etc/ha.d

<2>配置

 cd  /etc/ha.d

1.vim ha.cf  ##主配置文件

部分内容设置及解释如下:

       #debugfile/var/log/ha-debug ##调试信息存放位置   

       logfacility  local0  ##日至信息存放本地/var/log/message

       keepalive  2          ##检测心跳频率

       deadtime  30        ##超过30s未检测到心跳,则视为挂机状态

       warntime  10        ##警告时间

       initdead  60          ##初始化时间,即等待其他服务开启时间

       udpport  694        ##定义了使用udp,并指定端口

       #baud   19200             ##采用串口时需要开启,并定义波特率

       bcast   eth0 # Linux  ##广播接口

       #mcasteth0 225.0.0.1 694 1 0      ##开启时表示选择多播

       #ucasteth0 192.168.1.2        ##开启时表示选择udp单播放

       #watchdog/dev/watchdog            ##发现主机在1min内无响应,则重启内核功能,但若内核crush,则失效

       auto_failback  on  ##自动回切

       node    server1           ##定义主结点,注意必须使用主机名,非ip;

       node    server3           ##定义"热备"结点

       ping  172.25.13.250     ##测试网络,此处为网关

       respawn  hacluster /usr/lib64/heartbeat/ipfail  

       ##调用ipfail组件,注意系统若是32为,该组件位置/usr/lib/heartbeat/ipfail

       apiauth  ipfail gid=haclient  uid=hacluster     ##用户身份,该用户将会自动创建

       :wq

2.vim authkeys

部分内容设置及解释如下:

       auth1            ##选择第1种认证方式      

       1crc              ##本次操作是在本地,为方便选择crc认证方式,该方式安全性能低

       #2sha1 HI!    ##安全性能最高

       #3md5 Hello!      

       :wq

 chmod  +x  authkeys      ##加执行权限,否则认证文件不起作用

3.vim haresources       ##定义资源文件,维护指定服务的启动

编辑内容如下:

       server1  IPaddr::172.25.13.113/24/eth0  httpd

       ##(一定是)主结点通过调用脚本使vip(172.25.13.113/24)在eth0生效,并通过调用脚本来开启httpd服务

       ##heartbeat可以在自动调用的三条路径:/etc/init.d/;/etc/ha.d/rc.d;/etc/ha.d/resource.d

       :wq

<3>保证集群结点配置相同,选择在其中一个结点开启服务;开启成功后再看日志信息,无error提示时,开启另外结点服务。注意:因为上述操作过程中已将httpd服务写入haresource文件,所以在启动该服务前httpd应是关闭状态;集群结点不需要再从而实现将服务交给集群管理,使自动开启服务。

 /etc/init.d/heartbeat  start         ##开启服务   

 tail   -f  /var/log/message            

如下:先在server1上启动服务,查看日志,再启动server3的服务

<4>测试

(1)server1是主节点,服务启动后,vip应在server1的eth0上生效,结果显示如下:

客户端:curl  172.25.13.113,显示结果应为结点server1的htpd发布首页

关闭server1端的heartbeat,查看server2是否会接管,即vip是否会迁移至server2的eth0,结果显示如下:

因为i在配置文件中设置了主结点回切,开启server1结点的heartbeat,查看vip是否会回切,结果显示如下: