设为首页 收藏本站
查看: 1028|回复: 0

[经验分享] Linux之Heartbeat实现服务器的高可用

[复制链接]

尚未签到

发表于 2019-1-7 08:18:12 | 显示全部楼层 |阅读模式
  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配置。
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660152-1-1.html 上篇帖子: heartbeat双机热备实现Web服务的高可用 下篇帖子: 利用Heartbeat实现http+nfs高可用集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表