设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 9859|回复: 5

[Heartbeat] heartbeat V2在CentOS4.6上简要安装、配置笔记 [复制链接]

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

签到
475
注册时间
2008-5-19
最后登录
2019-11-16
在线时间
1946 小时
阅读权限
200
积分
59429
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2008-12-19 15:38:40 |显示全部楼层
heartbeat V2在CentOS4.6上简要安装、配置笔记
(shell行命令用粗体表示)
一、准备工作1、环境
两台CentOS4.6,各一个网卡,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


2、两个node分别安装libnet
hearbeat默认编译选项需要e2fsprogs/libnet库,CentOS4.6默认安装了e2fsprogs,所以这里先安装libnet

cd /usr/local/src
wget http://www.packetfactory.net/libnet/dist/libnet.tar.gz
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分别下载、编译、安装heartbeatcd /usr/local/src
wget http://linux-ha.org/download/heartbeat-2.1.3.tar.gz
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/


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”信息(不信可以试试)。

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


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相关的配置文件拷贝到node2scp /etc/ha.d/ha.cf root@node2:/etc/ha.d/ha.cf
scp /etc/ha.d/authkeys root@node2:/etc/ha.d/authkeys
scp /var/lib/heartbeat/crm/cib.xml root@node2:/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


按照我这里的ha.cf配置,日志信息应该可以通过
tail /var/log/messages -f
进行查看

3、在两个node上分别运行ifconfigps -ef来查看虚拟IP和ngnix是否已经启动。

4、在浏览器中分别访问http://192.168.0.3/http://192.168.0.4/,观察。

5、将node1从局域网中断开,稍等片刻。再重复上面的步骤3、4,观察。

6、将node1重新接入局域网,稍等片刻。再重复上面的步骤3、4,观察。


相信你的第一个示例成功之后,对heartbeat的基础原理应该有所了解。接着再详细查看官方文档和网络资料,结合实际进行特定服务的HA,多试验、多失败、多研究。

主要参考资料:
官方网站中的文档
CU集群和虚拟机论坛中相关线索

来源:http://www.javaeye.com/topic/191076
<-sina_sign,1762622645,2a5b1a59,10->感谢大家对linuxtone的支持!</strong>

Rank: 6Rank: 6

注册时间
2009-1-22
最后登录
2020-7-8
在线时间
56 小时
阅读权限
70
积分
4957
帖子
100
主题
5
精华
0
UID
1152
发表于 2009-3-10 21:01:11 |显示全部楼层


辛苦了。。

使用道具 举报

Rank: 6Rank: 6

注册时间
2009-1-21
最后登录
2020-7-8
在线时间
59 小时
阅读权限
70
积分
4168
帖子
55
主题
5
精华
0
UID
1121
发表于 2009-5-7 10:40:49 |显示全部楼层
楼主做的不错。。

使用道具 举报

Rank: 2

注册时间
2009-5-13
最后登录
2020-6-27
在线时间
17 小时
阅读权限
20
积分
137
帖子
10
主题
1
精华
0
UID
3040
发表于 2009-5-13 23:35:51 |显示全部楼层
想问一下 这个在两台虚拟机上可以做不

使用道具 举报

Rank: 6Rank: 6

注册时间
2009-5-14
最后登录
2017-9-27
在线时间
18 小时
阅读权限
70
积分
2931
帖子
36
主题
6
精华
0
UID
3050
发表于 2009-8-19 09:29:57 |显示全部楼层
多谢了

使用道具 举报

Rank: 1

注册时间
2009-2-27
最后登录
2018-4-12
在线时间
6 小时
阅读权限
1
积分
1
帖子
2
主题
0
精华
0
UID
1623
发表于 2009-9-17 11:20:21 |显示全部楼层
heartbeat是个好东西, LZ也讲述的非常详细
其实用watch ifconfig 一直监控着两台机器 也就OK了.

如果对heartbeat要求高的用户,配合自己写的脚本 就更天衣无缝了.

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-9-25 09:42 , Processed in 0.023072 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部