一、 安装heartbeat前的准备
1.Heartbeat集群必须的硬件
构建一个Heartbeat集群系统必须的硬件设备有:
节点服务器
网络和网卡
共享磁盘
(1)节点服务器
安装Heartbeat至少需要两台主机,并且对主机的要求不高,普通的PC 服务器即可满足要求,当然,也可以在虚拟机上安装Heartbeat,现在Heartbeat可以很好的运行在Linux系统下,很多linux发行版本都自带了Heartbeat套件,同时,还可以运行在FreeBSD 和 Solaris操作系统上。
(2)网卡和网络
Heartbeat集群中的每个主机必须有一块网卡和一个空闲串口,网卡用于连接公用网络,串口可以通过串口线,例如modem电线来实现连接,用于心跳监控节点间的状态,如果没有空闲串口的话,每个主机也可以通过两块网卡来实现HA,其中一块网卡用于连接公用网络,另一块网卡通过以太网交叉线与两个节点相连接。
需要说明的是:以太网交叉线和串口电线都能用于心跳监控,串口电线传输Heartbeat信号相对较好,如有条件,尽量使用串口线代替以太网交叉线作为节点间的心跳检测设备。
Heartbeat支持三种类型的网络,公用网络(public network)、私用网络(private network)和串行网络(serial network)。
公用网络连接多个节点,并且允许客户端访问集群中的服务节点,私用网络提供两个节点之间点到点的访问,但是不允许客户端访问,可以通过以太网交叉线构建一个私用网络,以供节点间相互通信,串行网络也是一个点到点的连接,一般使用串行网络来传输控制信息和心跳监控。串行网络可以是一条RS232串口线。
(3)共享磁盘
共享磁盘是一个数据存储设备,HA集群中的所有节点都需要连接到这个存储设备上,在这个共享的存储设备上一般放置的是公用的、关键的数据和程序,一方面可以共享数据给所有节点使用,另一方面也保证了数据的安全性。
Heartbeat支持两种对共享磁盘的访问方式:独占访问和共享访问,在独占访问方式下,保持活动的节点独立使用磁盘设备,只有当活动节点释放了磁盘设备,其它节点才能接管磁盘进行使用,在共享访问方式下,集群所有节点都可以同时使用磁盘设备,当某个节点出现故障时,其它节点无需接管磁盘。共享访问方式需要集群文件系统的支持,这一点将在下个章节讲述。
2.操作系统规划
这里统一采用Red Hat Enterprise Linux Server release 5.1操作系统,每个节点服务器都有两块网卡,一块用作连接公用网络,另一块通过以太网交叉线连接两个节点,作为心跳监控。共享磁盘由一个磁盘阵列设备提供,两个节点共享一个磁盘分区。磁盘分区对应的硬件标识为/dev/sdb5,挂载点为/webdata,文件系统类型为ext3。
网络以及IP地址规划如表1所示:
表1
从上表可知,eth0网络设备用于连接公用网络,eth1网络设备用于连接私用网络,而eth0:0网络设备是HA集群虚拟出来的服务IP地址,用于对外提供应用程序服务。基本的拓扑结构如图2所示:
接着配置每个节点的/etc/hosts文件,保证两个节点内容一致,/etc/hosts文件内容如下:
[root@node1 ~]#more /etc/hosts
192.168.60.132 node1
192.168.60.133 node2
10.1.1.1 priv1
10.1.1.2 priv1
一切准备就绪,接下来开始安装heartbeat。
二、 安装heartbeat
1.获取heartbeat
Heartbeat到目前为止发行了两个主版本,Heartbeat1.x和Heartbeat2.x,Heartbeat1.x仅仅允许创建2个节点的集群,提供基本的高可用性failover服务。Heartbeat2.x提供了增强的特性,允许创建多个节点的集群,又支持模块结构的配置方法-集群资源管理器(Cluster Rescource Manager-CRM),CRM可以支持最多16个节点,这里我们选择heartbeat2.0.8版本进行介绍。
Heartbeat的下载地址为:http://linux-ha.org/download/index.html,找到heartbeat2.0.8版本,下载类似heartbeat-2.0.8.tar.gz的源代码包即可。此外在安装heartbeat时需要同时安装libnet工具包,Libnet是一个高层次的API工具,可以从http://www.packetfactory.net/libnet/下载到,现在的稳定版本是1.1.2.1,下载后的包名为libnet.tar.gz。
2.安装heartbeat
接下来需要在两个节点安装heartbeat,安装过程很简单,只需解压编译、安装即可,这里不再详述,在两个节点执行相同的操作,下面是在node1上的安装过程:
[root@node1 ~]#tar -zxvf libnet.tar.gz
[root@node1 ~]#cd libnet
[root@node1 ~/libnet]#./configure
[root@node1 ~/libnet]#make
[root@node1 ~/libnet]#make install
[root@node1 ~]#tar zxf heartbeat-2.0.8.tar.gz
[root@node1 ~]#cd heartbeat-2.0.8
[root@node1 ~/heartbeat-2.0.8]#./ConfigureMe configure \
> –disable-swig –disable-snmp-subagent
[root@node1 ~/heartbeat-2.0.8]#make
[root@node1 ~/heartbeat-2.0.8]#make install
[root@node1 ~/heartbeat-2.0.8]#cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
[root@node1 ~/heartbeat-2.0.8]#cp ldirectord/ldirectord.cf /etc/ha.d/
[root@node1 ~/heartbeat-2.0.8]#groupadd -g 694 haclient
[root@node1 ~/heartbeat-2.0.8]#useradd -u 694 -g haclient hacluster