基于Heartbeat V1实现Web服务双机热备

MyWeb 2014-04-23

--本文大纲

  • 简介

  • 什么是高可用集群

  • Heartbeat工作原理

  • 基于heartbeat v1实现双机热备

一、简介

Heartbeat是Linux-HA工程的一个组件,自1999年开始到现在,发布了众多版本,是目前开源Linux-HA项目最成功的一个例子,在行业内得到了广泛的应用,随着Linux在关键行业应用的逐渐增多,它必将提供一些原来由IBM和SUN这样的大型商业公司所提供的服务,这些商业公司所提供的服务都有一个关键特性,就是高可用集群。
 

推荐阅读

二、什么是高可用集群

高可用集群,英文原文为High Availability Cluster,简称HA Cluster,是指以减少服务中断(如因服务器宕机等引起的服 务中断)时间为目的的服务器集群技术。简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统 就是集群的节点(node)。
高可用集群的出现是为了使集群的整体服务尽可能可用,从而减少由计算机硬件和软件易错性所带来的损 失。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。如果某个节点失效,它的备援节点将在几 秒钟的时间内接管它的职责。因此,对于用户而言,集群永远不会停机。高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。
只有两个节点的高可用集群又称为双机热备,即使用两台服务器互相备份。当一台服务器出现故障时,可由另一台服务器承担服务任务,从而在不需要人工干预的 情况下,自动保证系统能持续对外提供服务。双机热备只是高可用集群的一种,高可用集群系统更可以支持两个以上的节点,提供比双机热备更多、更高级的功能, 更能满足用户不断出现的需求变化。

三、Heartbeat工作原理

heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务

四、基于heartbeat v1实现双机热备

注:

配置高可用的前提:

  • 所有节点的主机名一定要与uname -n的结果一致
  • 所有节点的时间必须一致
  • 各节点间能基于ssh密钥认证通信
1、配置过程:
规划:
node1 essun.node1.com 192.168.1.109
node2 essun.node2.com 192.168.1.123

nfs服务器 www.directory.com 192.168.1.118(同时也是集群节点的ping状态检测)

2、node1配置部分

⑴、主机信息部分

vim /ect/hosts

基于Heartbeat V1实现Web服务双机热备

1
#uname -n

基于Heartbeat V1实现Web服务双机热备

1
#vim /etc/sysconfig/network

基于Heartbeat V1实现Web服务双机热备

每一个节点都要这类似这样的设置

 

⑵、时间同步
在每一个节点上执行:
ntpdate cn.pool.ntp.org(要可以上网才可以)
⑶、ssh密钥认证
在第一个节点上执行
1
2
#ssh-keygen -t rsa -P ''
#ssh-copy-id -i .ssh/id_rsa.pub [email protected]

将公钥送达到每一个节点上,(每一个节点都要如此做)

2、安装软件包
yum install perl-TimeDate net-snmp-libs libnet PyXML
注:libnet是在epel源中,所以要下载EPEL源安装包即可

 

http://download.Fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html
下载对应的版本就可以的。
rpm -ivh epel-release-6-8.noarch.rpm

之后就可以使用yum安装EPEL中的包了

基于Heartbeat V1实现Web服务双机热备

1
#rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm

 

两个节点都要如此安装。
3、配置heartbeat
  • 信息层

  • 资源管理器

  • 资源代理

第一步:配置HMAC 所使用的密码串算法(使用的是单向加密)
heartbeart 心跳信号信息监听于UDP694端口,心跳信息传输方式:可以是单播,多播和组播,还可以基于串行线缆传输心跳信号
配置文件所在的位置 /etc/ha.d

基于Heartbeat V1实现Web服务双机热备

其实这里并没有配置文件,它仅提供一个配置模板,存放于

 

1
2
[root@essun ha.d]# rpm -ql heartbeat |grep ha.cf
/usr/share/doc/heartbeat-2.1.4/ha.cf

在这个目录中我们将用到三个文件

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@essun heartbeat-2.1.4]#pwd
/usr/share/doc/heartbeat-2.1.4
[root@essun heartbeat-2.1.4]# ls
apphbd.cf HardwareGuide.txt
authkeys haresources
AUTHORS hb_report.html
ChangeLog hb_report.txt
COPYING heartbeat_api.html
COPYING.LGPL heartbeat_api.txt
DirectoryMap.txt logd.cf
faqntips.html README
faqntips.txt Requirements.html
GettingStarted.html Requirements.txt
GettingStarted.txt rsync.html
ha.cf rsync.txt
HardwareGuide.html startstop

 

authkeys:用于HMAC信息加密的认证机制与认证密码(此文件的权限必须为600,否则heartbeat 无法启动)
haresources:此文件用于定义资源
将此目录中的三个文件复制到/etc/ha.d目录下
1
#cp /usr/share/doc/heartbeat-2.1.4/{authkeys,haresources,ha.cf } /etc/ha.d/ -a

 

相关推荐