1.准备环境
准备两台Linux,hostname和ip分别是ha(192.168.0.10),ha2(192.168.0.20),采用VMWare 虚机做实验也可。
下载
软件和
安装其它所需的软件
首先下载
heartbeat软件:到
http://linux-ha.org/download
下载最新的heartbeat软件。本文写作时下载的软件是: heartbeat-2.0.2.tar.gz
libnet只能下载源代码进行安装。下载
地址:
http://www.packetfactory.net/libnet/。我下载的稳定版本是:
1.1.2.1
安装heartbeat除必要的
编译器之外,需要下面两个软件的
开发包支持:e2fsprogs和libnet。
e2fsprogs可以从
系统的安装光盘使用rpm来安装:
rpm -ivh /mnt/cdrom/RedHat/RPMS/e2fsprogs-devel-1.32-6.i386.rpm
2.安装
2.1 安装libnet:
tar -zxvf libnet.tar.gz
cd libnet
./configure
make
make install
2.2 安装heartbeat
tar -zxvf heartbeat-2.0.2.tar.gz
cd heartbeat-2.0.2
./configure
make
make install
3.配置heartbeat
需要配置
文件有三个:authkeys、haresources、ha.cf.这三个配置文件需要在/etc/ha.d
目录下面,但是默认是没有这三个文件的,所以你可以自己创建,简单配置很简单:
3.1 在ha和ha2上配置相同的authkeys和haresources,如下:
配置 authkeys
#cat authkeys
-------------- 注:此线不为文件内容
auth 3
#1 crc
#2 sha1 HI
3 md5 Hello
-------------- 注:此线不为文件内容
1,2,3表示认证算法选择,这里选择了md5算法
而且authkeys文件
权限必须是0600,所以
#chmod 0600 authkeys
3.2 配置 haresources
#cat haresources
--------------
ha 192.168.0.2/24/eth0
apache
--------------
ha是主节点名称,192.168.0.2/24/eth0是对外
虚拟服务IP/掩码/
网卡接口,apache表示资源名称,用来启动及停止apache服务的脚本,,放在resource.d 目录中,如果没有你也可以自己编写shell 脚本实现某服务的 start 和 stop 操作。
3.3 配置 ha.cf
ha.cf在两个节点上稍有不一样
ha(192.168.0.10)配置如下:
#cat ha.cf
--------------
auto_failback off
#说明:主节点重启成功后,资源是
自动拿回到主节点还是等到副节点down调后拿回资源
node ha
node ha2
#说明:节点名称,与uname �Cn保持一致。是否主节点与此位置的先后顺序无关。而是在haresources里指定
bcast eth0
#说明:采用eth0的udp广播用来发送心跳信息,建议在副节点不只一台时使用
I#ucast eth0 192.168.0.20
#说明:采用网卡eth0的udp单播来通知心跳,ip应为对方IP(未验证)
#mcast eth0 225.0.0.1 694 1 0
#说明:采用udp多播播来通知心跳,建议在副节点不只一台时使用
#注:广播,单播,多播,以上三种任选其一即可
--------------
ha2(192.168.0.20)配置如下:
#cat ha.cf
--------------
auto_failback off
#说明:主节点重启成功后,资源是自动拿回到主节点还是等到副节点down调后拿回资源
node ha
node ha2
#说明:节点名称,与uname �Cn保持一致。是否主节点与此位置的先后顺序无关。而是在haresources里指定
bcast eth0
#说明:采用eth0的udp广播用来发送心跳信息,建议在副节点不只一台时使用
#ucast eth0 192.168.0.10
#说明:采用网卡eth0的udp单播来通知心跳,ip应为对方IP(未验证)
#mcast eth0 225.0.0.1 694 1 0
#说明:采用udp多播播来通知心跳,建议在副节点不只一台时使用
#注:广播,单播,多播,以上三种任选其一即可
--------------
4.
设置主
服务器和备份服务器时间同步
虽然Heartbeat不要求在两个服务器上使系统钟同步主要和备份服务器,但是系统时钟应该在的几十秒之内,否则在高可用性服务的环境下会产生故障。 在在两个系统启动Heartbeat之前,你应该人工检查并且放置系统时间(使用date
命令)。 关于一种更好的长期的
解决的方法你应该在两个系统上使用NTP软件同步钟。
5.验证
可以把 heartbeat 服务加入 chkconfig
#chkconfig �Cadd heartbeat
#chkconfig heartbeat on
启动ha和ha2的heartbeat:
#/etc/init.d/heartbeat start 或 service heartbeat start
通过ifconfig查看eth0:0的192.168.0.2会在某台服务器上分配上了,说明这台目前是活动服务器,而另外一台没有分配上。
当浏览器
访问
http://192.168.0.2时,是会返回目前活动服务器上的apache服务响应
常见的错误:
通过ifconfig发现两台机器都分配上了eth0:0的192.168.0.2这个虚拟IP,并在/var/log/syslog中产生大量
日志:
WARN: nodename ha uuid changed to ha2
ERROR: should_drop_message: attempted replay attack
可能原因:ha和ha2的uuid改变引起,可能ha2是通过
VMware克隆复制方式产生的或hostname设置在安装heartbeat之后
解决
方案:让uuid重新生成,可以先卸载heartbeat,删除/var/lib/heartbeat目录(uuid文件就在这个目录下,该目录在卸载时不被删除,需手动删除,如果不手动删除,重新安装还会使用原来uuid)
相关文章
- Clvm+iscsi&GFS整合lvs-dr+Heartbeat+ldirectory实现高可用性负载均衡集群(下)
- LVS-DR模式的配置及Heartbeat+Ldirectord+DR高可用负载均衡集群的搭建
- 用Heartbeat配置Linux高可用性集群
- Linux 高可用(HA)集群之Heartbeat详解
- Linux企业集群用商用硬件和免费软件构建高可用集群PDF
- 用Heartbeat配置Linux高可用性集群
- Clvm+iscsi&GFS整合lvs-dr+Heartbeat+ldirectory实现高可用性负载均衡集群(上)
- Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新Client API的使用要点,高可用性测试,以及各种坑 (转载)
- Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd
- Linux基于heartbeat配置httpd高可用服务