1.为什么要用heartbeat,heartbeat的作用,heartbeat能干什么?^0^
首先,我们不能保证任何一台电脑24小时一直100%不出问题,而现实生活中很多种服务需要这样,24小时不间断服务,例:网站,IPTV点播等等。这样就会需要多台电脑互为备用。一台电脑出了问题或者说一个服务出了问题。另一台马上接管。
(实际如下图所示,图片来自heartbeat网站!)

(图1)

(图2)
图1,没有用到存储,而是用DRLD实现两台电脑间的数据同步!
图2,使用了存储,两台电脑共同连接存储。注意不是同时连接,两台电脑同时都要写存储上的数据的话,会有一点问题,^0^扯远了,如果想了解这方面的东西可以找一下“共享存储”这方面的东西。
增加两个概念:
集群系统主要就2种:
高可用(High Availability)HA集群, 使用Heartbeat实现;也会称为”双机热备”, “双机互备”, “双机”。
负载均衡群集(Load Balance Cluster),使用Linux Virtual Server(LVS)实现;
高可用(High Availability)HA集群, 使用Heartbeat实现;也会称为”双机热备”, “双机互备”, “双机”。
负载均衡群集(Load Balance Cluster),使用Linux Virtual Server(LVS)实现;
参考(官方的东西还是要看的):
上面有几个英文的视频,我看了,但英文太次,听不大明白。
2.环境搭建与资原配置
a.两台电脑(搞两个Vmware);
b.操作系统redhat 4 update 7 (我的操作系统只装了gcc其它的没有安装!)
c.软件我从heartbeat下载稳定版本2.1
3.安装与配置
(英文好的可以听一下,英文不好的也可以看一下。我只能看一下。^0^)
Client A ipaddress:192.168.1.103
Client B ipaddress:192.168.1.104
虚拟IP:192.168.1.105
A.libnet安装
(编译过程中需要安装libnet模块,如果没有安装此组件,则会出现如下问题。)
configure: error: The following required components noted earlier are missing: libnet
下载站点
[root@AbleRedhat4 heartbeat]# tar zxvf libnet.tar.gz.gz
[root@AbleRedhat4 heartbeat]# cd libnet
./configure && make && make install
B.HeartBeat编译安装
解压下载的文件
[root@AbleRedhat4 heartbeat]# ls
Heartbeat-Stable.tar.gz
[root@AbleRedhat4 heartbeat]# tar zxvf Heartbeat-Stable.tar.gz
[root@AbleRedhat4 heartbeat]# ./ConfigureMe
[root@AbleRedhat4 heartbeat]# ./ConfigureMe make #这个编译的过程比较长
[root@AbleRedhat4 heartbeat]# ./ConfigureMe make #这个编译的过程比较长
[root@AbleRedhat4 heartbeat]# make install
拷贝doc下的三个配置文件(ha.cf,haresources,authkeys)到/etc/ha.d/目录下
先解释一下authkeys文件的意思:
================authkeys=================
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!
========================================
1,2,3表示认证算法选择,这里选择了crc算法,当然了你也可以先择其它的。此文件用于用户验证!
而且authkeys文件权限必须是0600,所以请记得执行chmod 600 /etc/ha.d/authkeys
继续来解释haresources文件
#cat haresources
=============================================================
AbleRedhat4.iptv.com 192.168.1.105/24/eth0 hamysql.sh
=============================================================
=============================================================
AbleRedhat4.iptv.com 192.168.1.105/24/eth0 hamysql.sh
=============================================================
AbleRedhat4.iptv.com 主节点的名称uname -n 查出来的
192.168.1.105/24/eth0 对外虚拟服务IP/子网掩码/网卡接品
hamysql.sh 表示资源名称,用以启动与停止hamysql.sh的服务,需要在resource.d目录下创建hamysql.sh这个脚本,支持start和stop操作。
我直接套用了mysql自已的脚本,没有写。(ln -s /etc/init.d/mysqld hamysql.sh)
讲讲最麻烦的ha.cf配置文件
#说明:主节点重启成功后,资源是自动拿回到主节点还是等到副节点down调后拿回资源
node AbleRedhat4
node heartbeat
#节点名称,与uname –n保持一致。是否主节点与此位置的先后顺序无关。而是在haresources里指定
bcast eth0
#采用eth0的udp广播用来发送心跳信息,建议在副节点不只一台时使用(而如果副节点不在同一网段侧使用无效果)
ucast eth0 192.168.1.104
#采用网卡eth0的udp单播来通知心跳,ip应为对方IP(未验证)
bcast eth0
#采用eth0的udp广播用来发送心跳信息,建议在副节点不只一台时使用(而如果副节点不在同一网段侧使用无效果)
ucast eth0 192.168.1.104
#采用网卡eth0的udp单播来通知心跳,ip应为对方IP(未验证)
当一个网段有多台这样cluster话,则一定要采用单播,否则每组cluster都会看到对方的节点,从而报错。
#mcast eth0 225.0.0.1 694 1 0
#采用udp多播来通知心跳,建议在副节点不只一台时使用
#注:广播,单播,多播,以上三种任选其一即可
#mcast eth0 225.0.0.1 694 1 0
#采用udp多播来通知心跳,建议在副节点不只一台时使用
#注:广播,单播,多播,以上三种任选其一即可