配置文件

首先复制样例到指定目录

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

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

cd /etc/ha.d/

1.首先编辑authkeys  #用来主从验证通讯,对方是否存活。而且是加密通讯。

vim authkeys

其中

123代表加密程度,1最简单,2md5复杂,3sha最复杂

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello!

比如我们选2,首先auth 3去掉注释,1改3,同时把3的md5这一行去掉注释,如:

auth 3

#1 crc

#2 sha1 HI!

3 md5 Hello!

保存退出后,chmod修改此文件权限为600,只允许root用户读取。不修改权限,heartbaet启动不了。


2.然后编辑haresources文件,此文件为全部注释。需要打开并修改如下一行即可:

#node1  10.0.0.170 Filesystem::/dev/sda1::/data1::ext2

改为

wyp  192.168.1.80/24/eth0:1 nginx

wyp为主节点hostname, 192.168.1.80为虚拟IP和虚拟网卡 后面为启动的资源,如我们要做nginx的高可用,也可以用NFS的网络共享存储。


3.最后编辑ha.cf 次文件大多是注释掉的,去掉注释后剩下一下几行

 vim ha.cf

改为如下内容:

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility local0

keepalive 2

deadtime 30

warntime 10

initdead 60

udpport 694

ucast eth0 192.168.1.70

auto_failback on

node wyp

node client

ping 192.168.1.1

respawn hacluster /usr/lib/heartbeat/ipfail

配置说明:

debugfile /var/log/ha-debug:该文件保存 heartbeat 的调试信息

logfile /var/log/ha-log:heartbeat 的日志文件,和上面记录信息差不多

logfacility local0  关于日志的级别

keepalive 2:心跳的时间间隔,默认时间单位为秒,探测时间。

deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。

warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。

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

udpport 694:设置广播通信使用的端口,694 为默认使用的端口号。

ucast eth0 192.168.2.70:设置对方机器心跳检测的网卡和 ip。也可用bcast广播来找。线上业务,建议用另外一块网卡来做心跳检测。而不是一块网卡来进行。

auto_failback on: heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务, 遇到故障时把资源交给从节点并由从节点运行服务。 在该选项设为 on 的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。

node 指定主和从,各占一行,主在上从在下。

ping 用来裁判地址,是否存活的检测地址。比较强势。而不是主机之间相互探测。

respawn hacluster /usr/lib/heartbeat/ipfail:指定与 heartbeat 一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是 ipfail,该进程用于检测和处理网络故障,需要配合 ping 语句指定的 ping node 来检测网络连接。如果你的系统是 64,请注意该文件的路径。

hacluster是指定运行/usr/lib/heartbeat/ipfail脚本的身份,此脚本用来检测网络连通性,对方是否存活。respawn为此脚本死掉后,重启这个脚本进程。


4.三个配置文件修改完成后,复制到从上去,做小修改

scp ha.cf authkeys haresources client:/etc/ha.d/

选择yes 


由于此前hosts文件定义出错,修改好后,无法复制文件到从,提示秘钥文件改变,拒绝连接。可以删除/root/.ssh/known_hosts来重置。

从上authkeys haresources配置不动,只修改ha.cf一行

ucast eth0 192.168.1.70改为对方IP

ucast eth0 192.168.1.60


最后主从yum安装nginx,用来测试。

yum install -y nginx


课后答疑:

nginx不是个软件吗,怎么能用yum安装?而且我以前安装的nginx还在跑着呢,为什么还能yum安装?

答:所有的包都可以用yum或者源码安装。你源码安装的nginx和yum安装的不冲突。