{"title": "CentOS\u5b89\u88c5heartbeat", "update_time": "2014-02-12 23:12:39", "tags": "heartbeat", "pid": "279", "icon": "linux.png"}
## Heatbeat简介 对于无状态的服务,为了避免单点问题,我们可以使用heartbeat做HA,将服务运行在多个机器上,做自动故障切换。 下面我们以host1和host2提供httpd高可用服务(VIP 192.168.1.1)为例,说明heartbeat的安装和使用过程。场景如下: ## 安装heatbeat heartbeat的包在CentOS的默认RPM仓库里就带有,通过yum安装即可 ``` yum install -y heartbeat ``` ## 认证文件 /etc/ha.d/authkeys 同一组heartbeat服务的authkeys都需要一致,auth方法有crc、sha1、md5 3种,通过auth指定加密方式,之后指定密钥。 这里我们使用md5,/etc/ha.d/authkeys的内容如下: ``` auth 3 3 md5 heartbeat_pass ``` 将/etc/ha.d/authkeys 设置为root:root 权限 700,确保机密性 ## HA参数配置文件 /etc/ha.d/ha.cf 指定内容如下: ``` logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 5 initdead 10 bcast bond0 udpport 695 auto_failback off node host1 node host1 ``` 说明:logfile指定heartbeat的日志位置,udpport指定ha心跳udp端口,后面node指定2个做ha的机器(注意这里的主机名要和机器上`uname -r`出来的一致) ## HA资源配置文件 /etc/ha.d/haresources Heartbeat最重要的就是维护高可用资源,而/etc/ha.d/haresources定义的即资源。指定内容如下: ``` host1 192.168.1.1 httpd ``` 说明:第一列表示ha的机器名(2个机器名中可以随意指定一个),第二列是VIP(虚拟ip),第三列是服务(/etc/init.d/服务名 start|stop) ## 启动heartbeat 先在host1上启动heartbeat ``` /etc/init.d/heartbeat start ``` 观察 /var/log/ha-log 确定heartbeat将httpd服务和vip配置成功后,启动host2上的heartbeat ``` /etc/init.d/heartbeat start ```