Linux高可用性方案之Heartbeat安装
安装Heartbeat前的准备
Heartbeat集群必须的硬件
从下图看出,构建一个Heartbeat集群系统必须的硬件设备有:
节点服务器;
网络和网卡;
共享磁盘。
节点服务器
安装Heartbeat至少需要两台主机,并且对主机的要求不高,普通的PC服务器即可满足要求。当然,也可以在虚拟机上安装Heartbeat,现在Heartbeat可以很好地运行在Linux系统下,很多Linux发行版本都自带了Heartbeat套件,同时,还可以运行在FreeBSD和Solaris操作系统上。
网卡和网络
Heartbeat集群中的每个主机应有一块网卡和一个空闲串口。网卡用于连接公用网络,串口可以通过串口线。例如modem电线来实现连接,用于心跳监控节点间的状态。如果没有空闲串口的话,每个主机也可以通过两块网卡来实现HA,其中一块网卡用于连接公用网络,另一块网卡通过以太网交叉线与两个节点相连接。
注意 以太网交叉线和串口电线都能用于心跳监控,串口电线传输Heartbeat信号相对较好,如有条件,尽量使用串口线代替以太网交叉线作为节点间的心跳检测设备。
相关阅读:
Heartbeat支持3种类型的网络,即公用网络(public network)、私用网络(private network)和串行网络(serial network)。
公用网络连接多个节点,并且允许客户端访问集群中的服务节点;私用网络提供两个节点之间点到点的访问,但是不允许客户端访问,可以通过以太网交叉线构建一个私用网络,以供节点间相互通信;串行网络也是一个点到点的连接,一般使用串行网络来传输控制信息和心跳监控。串行网络可以是一条RS232串口线。
共享磁盘
共享磁盘是一个数据存储设备,HA集群中的所有节点都需要连接到这个存储设备上,在这个共享的存储设备上一般放置的是公用的、关键的数据和程序,一方面可以共享数据给所有节点使用,另一方面也保证了数据的安全性。
Heartbeat支持两种对共享磁盘的访问方式:独占访问和共享访问。在独占访问方式下,保持活动的节点独立使用磁盘设备,只有当活动节点释放了磁盘设备,其他节点才能接管磁盘进行使用。在共享访问方式下,集群所有节点都可以同时使用磁盘设备。当某个节点出现故障时,其他节点无需接管磁盘。共享访问方式需要集群文件系统的支持。
2.操作系统规划
这里统一采用Red Hat Enterprise Linux Server release 5.4操作系统。每个节点服务器都有两块网卡,一块用作连接公用网络,另一块通过以太网交叉线连接两个节点,作为心跳监控。共享磁盘由一个磁盘阵列设备提供,两个节点共享一个磁盘分区。磁盘分区对应的硬件标识为/dev/sdb5,挂载点为/webdata,文件系统类型为ext3。
网络以及IP地址规划如下表所示。
节 点 类 型 | IP 地址规划 | 主 机 名 | 类型 |
主用节点 | eth0 : 192.168.60.132 | node1 | Public IP |
eth1 : 10.1.1.1 | priv1 | private IP | |
eth0:0 : 192.168.60.200 | 无 | Virtual IP | |
备用节点 | eth0 : 192.168.60.133 | node2 | Public IP |
eth1 : 10.1.1.2 | priv1 | private IP |
从上表可知,eth0网络设备用于连接公用网络,eth1网络设备用于连接私用网络,而eth0:0网络设备是HA集群虚拟出来的服务IP地址,用于对外提供应用程序服务。基本的拓扑结构如图
获取Heartbeat
Heartbeat到目前为止发行了三个主版本,即Heartbeat 1.x、Heartbeat 2.x和Heartbeat 3.x。Heartbeat 1.x仅仅允许创建两个节点的集群,提供基本的高可用性failover服务。Heartbeat 2.x提供了增强的特性,允许创建多个节点的集群,又支持模块结构的配置方法-集群资源管理器(Cluster Rescource Manager-CRM),CRM可以支持最多16个节点。Heartbeat 3.x大家暂且认为是Heartbeat 2.x的修订版。这里我们选择Heartbeat 2.0.7版本进行介绍。
Heartbeat的下载地址为http://linux-ha.org/download/index.html,找到Heartbeat 2.0.7版本,下载类似heartbeat-2.0.8.tar.gz的源代码包即可。此外在安装Heartbeat时需要同时安装Libnet工具包。Libnet是一个高层次的API工具,可以从http://www.packetfactory.net/libnet/下载到,现在的稳定版本是1.1.2.1,下载后的包名为libnet.tar.gz。