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
    [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配置。

本文转自lnsaneLlinux博客51CTO博客,原文链接http://blog.51cto.com/lnsane784/1952393如需转载请自行联系原作者


Insane_linux

相关文章
|
1月前
|
安全 Java Linux
Websoft9:为开发者打造的高效 Linux 服务器面板
Websoft9 是一款以开源应用部署与管理为核心的服务器面板,采用“环境即服务”模式。它通过运行环境标准化、自动化配置、安全融合和资源管理四个方面实现平台与环境的深度协同。支持多语言框架预集成、云原生组件整合,提供 200+ 应用模板一键部署,并具备全流程安全防护和统一资源监控能力,助力开发者高效管理和扩展应用环境。
55 0
|
4天前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
83 28
|
5天前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
64 28
|
17天前
|
JavaScript Linux Python
在Linux服务器中遇到的立即重启后的绑定错误:地址已被使用问题解决
总的来说,解决"地址已被使用"的问题需要理解Linux的网络资源管理机制,选择合适的套接字选项,以及合适的时间点进行服务重启。以上就是对“立即重启后的绑定错误:地址已被使用问题”的全面解答。希望可以帮你解决问题。
62 20
|
23天前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
100 20
|
2月前
|
关系型数据库 应用服务中间件 Linux
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
70 1
Linux云服务器如何搭建LNMP环境
|
1月前
|
存储 运维 监控
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
1月前
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
160 1
|
3月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
4月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
346 6