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

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,当其中一台出现故障时,将会转移到另一台。123456123456

资源转移方式

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
    [[email protected] ~]# wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
    [[email protected] ~]# rpm -ivh epel-release-6-8.noarch.rpm 
    [[email protected] ~]# yum install heartbeat*
 2. 配置文件/etc/ha.d/目录下
    [[email protected] ~]# cp /usr/share/doc/heartbeat-3.0.4/{ha.cf,authkeys,haresources} /etc/ha.d/
    [[email protected] ~]# 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
        [[email protected] ~]# hb-gui &

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

时间: 2024-08-05 11:18:16

Linux之Heartbeat实现服务器的高可用的相关文章

linux高可用集群heartbeat实现http的高可用

linux高可用集群的种类很多,比如常见的heartbeat,corosync,rhcs,keepalived,这些集群软件的出现为我们的业务生产环境提供了高可用的保证,本文将简单介绍一下用heartbeat的v2版本来处理一个简单的http高可用集群的搭建. 在实现http高可用集群之前,首先至少需要2台主机,并且需要做3点基本的准备工作: 1.设置节点名称,并且集群中的所有节点都能通过节点名称去解析集群中的所有主机.为了集群服务的高可用性,这里选择使用/etc/hosts,而且要保证unam

heartbeat + httpd + nfs 实现高可用web服务器

一  环境准备 二 拓扑结构 三 前提条件 四 安装相关软件 五 配置heartbeat 六 测试web集群 七 问题汇总 八 共享存储 一 环境准备 操作系统 centos 6.4 x86_64  最小化安装 如使用yum 安装的方式 centos5.5 安装的是V2.X   ,centos 6.4 安装的是V3.X YUM 安装   Vim  man   ntp  "development tools" "server platform development"

Heartbeat学习笔记--HA高可用集群实现

一.部署环境: 服务器版本:CentOS6.5 双主热备模式: VIP:192.168.3.30(MASTER上) VIP:192.168.3.32(BACKUP上) 主机网络参数: 接口 MASTER BACKUP 说明 eth1 192.168.3.23 192.168.3.24 内网管理IP eth2 192.168.5.23 192.168.5.24 心跳线 eth3 192.168.2.23 192.168.2.24 外网(临时下载文件用) 网络拓扑: 二.需求分析: 通过Heartb

Heartbeat+DRBD实现文件高可用

一.需求分析: 本文结合之前heartbeat与drbd两篇文章,实现磁盘文件高可用.当MySQL01(主数据库服务器)宕机后,MySQL02(备数据库服务器)可以通过heartbeat立刻检测到MySQL01挂了,MySQL02接管VIP,MySQL02的DRBD服务会自动从Secondary切换到Primary状态,然后自动加载DRBD逻辑盘:/dev/drbd0到/data目录,从而实现文件持续在线--即高可用状态:当MySQL01恢复后,VIP返回MySQL01,MySQL01的DRBD

Heartbeat+MySQL+NFS 实现高可用(HA)的MySQL集群

一:试验目的 利用heartbeat心跳机制haresource实现高可用(HA)mysql数据库的搭建. 二:试验拓扑图 三:安装前的环境准备 规划IP为192.168.1.14为node1;IP为192.168.1.2为node2 1)修改各主机名称 修改node1主机名称  vim /etc/sysconfig/network   NETWORKING=yes   HOSTNAME=node1 #修改主机名称为node1  vim /etc/hosts     192.168.1.2 no

heartbeat httpd nfs 实现高可用web集群

一 环境准备 二 拓扑结构 三 前提条件 四 安装相关软件 五 配置heartbeat 六 测试web集群 七 问题汇总 八 共享存储 一 环境准备 操作系统 centos 6.4 x86_64 最小化安装 如使用yum 安装的方式 centos5.5 安装的是V2.X ,centos 6.4 安装的是V3.X YUM 安装 Vim man ntp "development tools" "server platform development" "des

3台服务器Redis高可用哨兵模式

3台服务器Redis高可用哨兵模式 学习 redis 高可用 3台服务器Redis高可用哨兵模式 3.1 主redis配置 3.2 从redis配置 1. 介绍 2. redis程序安装 3. 哨兵模式配置 3.3 启动redis和哨兵 4. 总结 1. 介绍 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常. 提醒(Notifi

heartbeat+ldirector+lvs实现高可用集群

7.heartbeat+ldirector+lvs实现高可用集群 在lvs的DR模式基础下进行该实验. heartbeat工作原理: heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来 告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务. 两台 调度服务器 :    Heartbeat仅仅是个HA软件,它仅能完成

Heartbeat实现web服务高可用(三)

六:Heartbeat实现WEB服务高可用案例 6.1 部署准备 资源环境:继续使用我们之前已经部署好Heartbeat的两台服务器node01.cn和node02.cn,两台机器heartbeat是双主模式我们再捋一捋    node01.cn   eth0 172.10.25.26 外网管理IP                      eth1 10.25.25.16  心跳直连                      VIP  172.10.25.18        node02.cn