您的位置:首页 > 运维架构 > Linux

Linux之Heartbeat实现服务器的高可用

2017-07-31 16:11 302 查看
Heartbeat简介

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

Heartbeat结构图



基准层:(心跳传递层)运行在每一个节点,通过组播的方式传寄给每个备用节点。此协议工作在udp的694端口。

CRM:(集群资源管理器)依赖与心跳层,并且可以向上传及信息,安装与每个节点。

LRM:(本地资源管理器)由CRM进行调度,施行CRM的决策,找到RA进行执行。

RA:(资源代理)能够接受CRM的调度,用于实现在某一个的节点上资源调度和配置,一般为脚本。脚本必须接受{start|stop|restart|status}

CRM的工作方式

在众多的CRM中会选出一个CRM作为管理员,负责调度使用那个备用服务器作为主服务器。

Heartbeat各层常用的软件

1. 信息层:
a.Heartbeat V1,V2,V3
b.corosync
2. CRM:
a.Heartbeat v1:配置接口(配置文件)
b.Heartbeat v2:crm(命令)
c.Heartbeat v3:heartbeat+pacemaker+gluster-glue(粘和挤)
d.pacemake
3. RA:
a.heartbeat legacy:heartbeat的传统类型
b.OCF:开源集群框架


防止脑裂

节点级别:以少数服从多数的形式,切断少数集群的电源。

资源级别:屏蔽少数集群访问公共资源。

集群的工作模式

N-M模型:N>M
在N个节点上运行M个服务,M个服务上出现故障,将服务转移到N-M个节点上的其中一个,这个集群模式中,至少3台主机
N-N模型:
在N个节点上运行N个服务,每个节点上运行一个服务,当其中一个节点出现故障时,将服务转移到另一个节点。至少两台主机。
A/A模型:
此模型为双主模式,两台主机分别运行两个主服务,两个主服务分别对应不同的IP,当其中一台出现故障时,将会转移到另一台。


资源转移方式

rgmanager:(故障转移域)指只能在指定的节点上转移
pacemaker:资源约束
资源粘性:是指资源约束一样时,根据粘性判断,更倾向于运行在那个节点。
1. 位置约束:资源更倾向于运行的那个节点
inf:无穷大,资源一定运行在这个节点上
-inf:无穷小,单反有可能离开这个节点
2. 顺序约束:定义资源启动顺序和关闭次序
3. 排序约束:两个资源是否愿意在一起
inf:表示愿意
-inf:表示不愿意
常常使用顺序约束和排序约束


资源类型

primitive,native:主资源,只能运行于一个节点

group:组资源

clone:克隆资源,可以在多个节点上运行,需要定义两个参数(总克隆数,每个节点的最大克隆数)

master/slave:主从资源

不在集群中的资源处理方式

stop:停止服务

ignore:忽略是不是集群成员,继续运行。

freeze:冻结,不解收新的请求。

suicide:kill sever

Heartbeat V1实现web资源高可用

1. yum安装heartbeat
[root@www ~]# wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm [root@www ~]# rpm -ivh epel-release-6-8.noarch.rpm
[root@www ~]# yum install heartbeat*
2. 配置文件/etc/ha.d/目录下
[root@www ~]# cp /usr/share/doc/heartbeat-3.0.4/{ha.cf,authkeys,haresources} /etc/ha.d/
[root@www ~]# chmod 600 /etc/ha.d/authkeys
3. authkeys配置文件
格式:
auto {1,2,3}
1 crc
2 sha1 密码
3 md5 密码
4. ha.cf常用配置文件
logfile /var/log/ha-log       //日志文件
keepalive time                //多长时间进行一次心跳检测
deadtime 30                   //多长时间没有检测到心跳,接管资源
warntime 10                   //多长时间没有检测到心跳,将写入日志
initdead 120                  //在系统重启或者启动之后,多长时间过后网络再一次工作
dpport 694
baud  19200                   //设置串行通信波特率
bcast   eth0                  //设置广播接口
mcast eth0 225.0.0.1 694 1 0  //多播
ucast   eth0    ip            //单播
auto_failback on              //主节点恢复后,能够切回
node    Clone1                //主节点主机
node    Clone2                //备用节点主机
compression     bz2           //压缩传送
compression_threshold 2       //压缩最小极限,单位为KB
5. haresources资源配置文件
格式:
第一种:主节点(nodel) vip|vip/mask/dev  服务名称
第二种:主节点(nodel) vip|vip/mask/dev  Filesystem::/dev/sad1::/挂在点   服务名称
eg:Clone1 192.168.80.150 httpd


测试结果





关闭主节点的heartbeat



使用Heartbeat V2配置web高可用

配置步骤
1. 在Heartbeat V1的基础上安装heartbeat-gui,只在主服务上安装
2. 在配置文件ha.cf中添加crm on这一行
3. 删除haresources文件
4. /usr/lib64/heatbeat/ha_propagate可以将配置文件同步到替他节点上。
5. 启用hearbeat-gui
[root@www ~]# hb-gui &


由于Heartbeat V3配置都是命令和corosync+pacemaker的配置方式一样,所以在此就不配置Heartbeat V3,下期使用corosync+pacemaker配置。

c912
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 linux HA