linux redhat 安装 heartbeat配置 下载本文

linux redhat 安装 heartbeat配置

一、准备工作1、环境两台redhat,各一个网卡,IP地址分别为192.168.0.1和192.168.0.2 uname -n 分别显示node1和node2cat /etc/hosts 均显示127.0.0.1 localhost.localdomain localhost192.168.0.1 node1192.168.0.2 node22

一、准备工作 1、环境

两台redhat,各一个网卡,IP地址分别为192.168.0.1和192.168.0.2 uname -n

分别显示node1和node2 cat /etc/hosts 均显示

127.0.0.1 localhost.localdomain localhost 192.168.0.1 node1

192.168.0.2 node2 oracle

2、两个node分别libnet

hearbeat默认编译选项需要e2fsprogs/libnet库,CentOS4.6默认安装了e2fsprogs,所以这里先安装libnet cd /usr/local/src wget

tar zxvf libnet.tar.gz cd libnet ./configure

make && make install

3、两个node分别创建heartbeat相关的用户和组 groupadd haclient

useradd -g haclient hacluster

4、关闭两个node上的防火墙(如SELINUX),或者设置为信任eth0,使得能相互听见对方心跳。否则两个node都认为对方的状态为 dead。(我在这个问题上折腾了一会。其他如采用双绞线通过串口进行心跳监控之类的方案也必须检查双绞线是否正常,保证线路通畅。)

二、两个node分别下载、编译、安装heartbeat cd /usr/local/src wget

tar zxvf heartbeat-2.1.3.tar.gz cd heartbeat-2.1.3

./ConfigureMe configure 大致看看编译统计信息后安装 make && make install

三、在node1上的简易

将配置模板拷贝到默认配置目录(可选,也可手工创建。模板中的注释可帮助你理解各配置选项的含义) cp doc/authkeys /etc/ha.d/ cp doc/ha.cf /etc/ha.d/ mysql

cd /etc/ha.d/

开始编辑配置文件(两台机器上都需要安装和配置)

1、编辑/etc/ha.d/authkeys,使用的是第1种认证方式(crc),接着把文件的权限改为600:

cat /etc/ha.d/authkeys 显示 auth 1 1 crc

更改文件权限

chmod 600 /etc/ha.d/authkeys 关于Configuring authkeys 2、编辑/etc/ha.d/ha.cf:

cat /etc/ha.d/ha.cf | grep -v '#' 文件显示如下 keepalive 10 deadtime 60 warntime 20 initdead 60 udpport 694

mcast eth0 225.0.0.1 694 1 0 watchdog /dev/watchdog node node1 node2 ping 192.168.0.254 use_logd yes

compression zlib

traditional_compression false crm on

autojoin any

关于ha.cf的指令说明 注意:

ping 192.168.0.254

ping网关,使得每个节点得知自己是否已经离线。我尝试去掉该选项的结果是:当node1拔掉网线之后,node2接管了资源。再插上node1的网线,node2的日志中会不停的出现“WARN: crmd_ha_msg_callback”信息(不信可以试试)。 unix

Additional Options 应该是V2中用来监控Heartbeat运行时对cib.xml的修改。除调试外感觉没啥用,日志中新增了一堆diff信息。 # apiauth cibmon uid=hacluster

# respawn hacluster /usr/lib/heartbeat/cibmon -d ssh

3、资源文件配置。这里以Two Apache Web Servers in an Active/Active Configuration 的更改版(Two Nginx Web Servers in an Active/Active Configuration)来举例。编辑/etc/ha.d/haresources(V1)或者/var/lib/heartbeat/crm /cib.xml(V2)

cib.xml对于初学者来说很难编写,官方的例子中不能简单的拷贝过来,贸然运行heartbeat会导致node重启,我猜测的原因是官方的示例并未遵循其DTD 。 简单的方法是采用hearbeat提供的工具将V1方式的资源配置文件转换为V2 style的。比如:

cat /tmp/haresources 文件内容显示为:

node1 192.168.0.3 nginx node2 192.168.0.4 nginx

意思是,优先在node1上绑定192.168.0.3这个虚拟IP,并管理

(start/stop/status)本机上的nginx。优先在 node2上绑定192.168.0.4这个虚拟IP,并管理本机上的nginx。

这里nginx是一个LSB style脚本,位于/etc/init.d/nginx,示例可见这里 。先保证nginx已经安装到两个node上了。

转换命令

/usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /tmp/haresources

运行转换命令之后,/var/lib/heartbeat/crm/cib.xml自动产生。(请在熟悉了hearbeat之后再去尝试修改该文件。)

四、将node1上的heartbeat相关的配置文件拷贝到node2 scp /etc/ha.d/ha.cf scp /etc/ha.d/authkeys

scp /var/lib/heartbeat/crm/cib.xml

请确保两个node上的配置文件内容和权限相同。

五、在两个node上启动heartbeat并观察结果 1、修改两个node上nginx的index.html 在node1上:

echo 'node1 welcome!' > /usr/local/nginx/html/index.html 在node1上:

echo 'node2 welcome!' > /usr/local/nginx/html/index.html

2、启动两个node上的heartbeat,然后稍等片刻(时间长短取决于ha.cf中的相关参数)。

/etc/init.d/heartbeat start unix

按照我这里的ha.cf配置,日志信息应该可以通过