什么是高可用集群
Heartbeat工作原理
基于heartbeat v1实现双机热备
一、简介
Heartbeat是Linux-HA工程的一个组件,自1999年开始到现在,发布了众多版本,是目前开源Linux-HA项目最成功的一个例子,在行业内得到了广泛的应用,随着Linux在关键行业应用的逐渐增多,它必将提供一些原来由IBM和SUN这样的大型商业公司所提供的服务,这些商业公司所提供的服务都有一个关键特性,就是高可用集群。
推荐阅读:
Linux 高可用(HA)集群之heartbeat基于crm进行资源管理详解
Heartbeat+httpd+NFS 实现高可用的Web服务器
LVS+heartbeat+ldirectord高可用负载均衡集群解决方案
二、什么是高可用集群
高可用集群,英文原文为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服务器 192.168.1.118(同时也是集群节点的ping状态检测)
2、node1配置部分
⑴、主机信息部分
vim /ect/hosts
1
#uname -n
1
#vim /etc/sysconfig/network
每一个节点都要这类似这样的设置
⑵、时间同步
在每一个节点上执行:
ntpdate cn.pool.ntp.org(要可以上网才可以)
⑶、ssh密钥认证
在第一个节点上执行
1 2
#ssh-keygen -t rsa -P '' #ssh-copy-id -i .ssh/id_rsa.pub root@essun.node2.com
将公钥送达到每一个节点上,(每一个节点都要如此做)
2、安装软件包
yum install perl-TimeDate net-snmp-libs libnet PyXML
注:libnet是在epel源中,所以要下载EPEL源安装包即可
Fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html
下载对应的版本就可以的。
rpm -ivh epel-release-6-8.noarch.rpm
之后就可以使用yum安装EPEL中的包了
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
其实这里并没有配置文件,它仅提供一个配置模板,存放于
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