实验环境:

admin1.tuchao.com 192.168.18.100  ansible管理节点

admin2.tuchao.com 192.168.18.101  集群节点一

admin3.tuchao.com 192.168.18.199  集群节点二

安装: yum install corosync pacemaker -y

复制配置文件

  • cp corosync.conf.example corosync.conf

  • vim corosync.conf

编辑配置文件:

compatibility: whitetank 
是否兼容0.8版本的corosync
totem {
定义集群之间心跳信息传递层 
 version: 2 ----版本号
        secauth: on ---是否启用安全认证
        threads: 0   ---启用多少个线程处理心跳信息传递,0为自动。
        interface {
                ringnumber: 0   --报文循环次数
                bindnetaddr: 192.168.18.0  --绑定的网络地址
                mcastaddr: 226.94.1.2   --多播地址
                mcastport: 5405   ---多播端口
                ttl: 1
        }
}

logging {
        fileline: off
        to_stderr: no  --心跳信息是否输出到屏幕
        to_logfile: yes
        to_syslog: no  ---是否发送给/var/log/messages
        logfile: /var/log/cluster/corosync.log
        debug: off  --是否开启调试
        timestamp: on   --是否开启当前系统时间的时间戳。
        logger_subsys {
                subsys: AMF   --定义openais规范
                debug: off
        }
}

amf {
        mode: disabled
}
service {   定义pacemaker为corosync的插件。
 ver: 0
 name: pacemaker
}
aisexec {
 user:root
 group:root
}

生成安全认证文件,这个命令需要取1024位随机数,我们可以另起一个终端重装一个软件来产生随机数。

  • corosync-keygen

安装资源管理器的配置接口程序:

crmsh-1.2.6-4.el6.i686.rpm

pssh-2.3.1-2.el6.i686.rpm

关闭NetworkManager,并开机禁用此服务。

/etc/init.d/NetworkManager stop

chkconfig NetworkManager off

启动服务

  • service corosync start

CRM命令的使用:

  • crm status //显示集群状态信息

  • crm_mon

  • crm_verify -L //显示配置文件是否有语法错误

  • crm help

This is crm shell, a Pacemaker command line interface.

Available commands:

cib              manage shadow CIBs --管理集群信息库  
 resource         resources management --资源管理
 configure        CRM cluster configuration --集群配置接口
 node             nodes management --节点管理
 options          user preferences --
 history          CRM cluster history --集群历史
 site             Geo-cluster support  --支持跨地域的集群
 ra               resource agents information center --资源代理
 status           show cluster status
 help,?           show help (help topics for list of topics)
 end,cd,up        go back one level --返回
 quit,bye,exit    exit the program --退出程序

  • crm resource help

At this level resources may be managed.

All (or almost all) commands are implemented with the CRM tools
such as `crm_resource(8)`.

Available commands:

status,show,list show status of resources --显示资源状态信息
 start            start a resource --启动一个资源
 stop             stop a resource --停止一个资源
 restart          restart a resource
 promote          promote a master-slave resource --唤醒一个主从资源
 demote           demote a master-slave resource --降级一个主从资源
 manage           put a resource into managed mode --将资源加入可管理模式
 unmanage         put a resource into unmanaged mode --非管理模式
 migrate,move     migrate a resource to another node --资源迁移
 unmigrate,unmove unmigrate a resource to another node
 param            manage a parameter of a resource  --管理资源参数
 secret           manage sensitive parameters --管理敏感参数
 meta             manage a meta attribute --管理资源的源数据属性
 utilization      manage a utilization attribute
 failcount        manage failcounts --管理资源的错误次数
 cleanup          cleanup resource status  --清除资源状态
 refresh          refresh CIB from the LRM status --刷新Cib
 reprobe          probe for resources not started by the CRM  探测没有启动的资源
 trace            start RA tracing
 untrace          stop RA tracing
 help,?           show help (help topics for list of topics)
 end,cd,up        go back one level
 quit,bye,exit    exit the program

  • crm node help

    Node management and status commands.

    Available commands:

    status           show nodes' status as XML --显示节点状态
        show,list        show node
        standby          put node into standby  --设置当前节点为备用节点
        online           set node online --设置当前节点为线上节点
        maintenance      put node into maintenance mode
        ready            put node into ready mode
        fence            fence node
        clearstate       Clear node state
        delete           delete node
        attribute        manage attributes
        utilization      manage utilization attributes
        status-attr      manage status attributes
        help,?           show help (help topics for list of topics)
        end,cd,up        go back one level
        quit,bye,exit    exit the program

  • crm configure property stonith-enabled=false   --关闭stonith设备

  • crm ra help

classes list classes and providers --列出提供的RA类型

list    list RA for a class (and provider) --显示某个RA类型所提供的资源代理

meta    show meta data for a RA --显示一个RA的基本信息

定义一个IP资源:

crm configure

primitive webip ocf:IPaddr params ip=192.168.18.200

定义完后可以用show查看

没错误的话,之后可以使用commit提交。

查看状态:

  • crm status

  • crm resource status

停止资源:

  • crm resource stop webip

启动资源:

  • crm resource start webip

将当前节点设为备用,这时候资源就会转移到节点二。

  • crm node standby

我们把httpd加入到可管理资源:

  • crm configure primitive webserver lsb:httpd

定义资源组:

  • crm configure group webservice webip webserver

定义位置约束:

  • crm configure location webservice_prefer_node2 webservice 500: admin3.tuchao.com

  • crm configure

  • verify

  • commit

定义顺序约束:

  • crm

  • configure

  • order webserver_after_webip mandatory: webip webserver

  • verify

  • commit

order 名称 mandatory: webip webserver 注:这里的mandatory表示无限大的值(强制)

把优先启动的资源写在前面。

  • show xml

<constraints>

<rsc_location id="webservice_prefer_node2" rsc="webservice" score="500" node="admin3.tuchao.com"/>

<rsc_order id="webip_before_webserver" score="INFINITY" first="webip" then="webserver"/>

</constraints>

定义组合约束:

  • colocation webip_with_webserver inf: webip webserver

  • show xml

<rsc_colocation id="webip_with_webserver" score="INFINITY" rsc="webip" with-rsc="webserver"/>

这里的with-rsc="webserver"是指已webserver为准,如果webip启动成功,webserver启动失败,那webip也会失效的。

定义一个文件系统资源:

  • crm configure

  • primitive webstore ocf:Filesystem params device='192.168.18.160:/webdata' directory='/var/www/html' fstype='nfs' op start timeout=60 op stop timeout=60

  • verify

  • commit

将资源加入到webservice组。

  • edit

  • verify

  • commit

  • show

配置组合约束

  • crm configure

  • colocation webip_before_webstore inf: webip webstore

  • colocation webstore_webserver inf: webstore webserver

  • show

这样配置就基本完成了,你会发现当你使用crm node standby把当前节点设置为备用后,另一个节点就会继承资源继续提供服务。

资源监控:

默认情况下,集群并不会检查资源的健康状态,如果要实现此功能,需要专门为资源定义monitor功能,资源操作可定义的属性有:

id:资源操作ID,必须唯一。
    name:资源操作的动作,可用动作有minitor、start、和stop。

执行资源的监控操作使用mintor:

interval:资源操作的时间间隔,默认为0,即不执行操作。

timeout:确定某动作作为失败的超时时长。

on-fail:正在执行的动作失败时要采取的动作。

可用值如下:

ignore:忽略

block:忽略

stop:停止资源

restart:重启资源,也有可能会在其他节点上启动。

frence:将此节点关闭

standby:将其所在的节点转换为standby模式

enabled:是否启用,true,false。

有问题欢迎与我交流QQ1183710107

corosync+pacemaker+crmsh配置高可用集群。相关推荐

  1. 基于corosync+pacemaker实现主从高可用集群

    本实验由两个节点组成高可用主从集群,在实际中不常用,目的是通过实验来加深对corosync的认识和理解. 环境设置: node1:node1.magedu.com ip 172.16.14.10 no ...

  2. linux集群-keepalived介绍-用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...

  3. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群

    集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.ke ...

  4. 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 一 集群介绍 1.概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供 ...

  5. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 第十八章 Linux集群 18.1 集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 高可用集群 高可用集群通 ...

  6. 集群介绍+用keepalived配置高可用集群(总结)

    1.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 高可用集群,英文原文为High Availa ...

  7. 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执 ...

  8. corosync+pacemaker+crmsh的高可用web集群的实现

    网络规划: node1:eth0:172.16.31.10/16 node2: eth0: 172.16.31.11/16 nfs:   eth0: 172.16.31.12/15 注: nfs在提供 ...

  9. keepalived配置高可用集群

    准备工作 分别在主从上安装keepalived和nginx yum install -y keepalived yum install -y nginx 关闭主从上的防火墙和SELinux syste ...

最新文章

  1. mysql更改数据文件目录及my.ini位置| MySQL命令详解
  2. python用print函数打印皮卡丘_Python学习之print()函数
  3. HttpServletRequest和@Requestparam、@RequestBody、直接实体接收请求参数的区别与示例
  4. 5天让你技能加满的“王炸组合”,速来!
  5. ASP.Net Core 2.0中的Razor Page不是WebForm
  6. 以下不属于时序逻辑电路的有_电工电子技术(不建议浪费时间学习的科目)
  7. 欧框语言框架标准C2,CEFR欧洲语言共同参考框架
  8. 网页html转为pdf,html页面转换成PDF文件
  9. 将Maven项目转换成Eclipse支持的Java项目
  10. [BZOJ5329] [SDOI2018] 战略游戏
  11. 做跨境电商,先要有个靠谱的商城系统
  12. ecshop 邮件模板 html,给ecshop后台增加新的邮件模板
  13. 智能商场管理系统(可当做毕设)
  14. python数据分析第三方库scipy_Python数据分析工具库-Scipy 矩阵支持库
  15. 无线认证web认证服务器,wifi web认证服务器地址
  16. 如何利用小程序布局社交电商?
  17. 图像存储的地理坐标位置信息
  18. 计算机修改人类记忆曲线,艾宾浩斯遗忘曲线和费曼技巧
  19. 福建计算机等级考试停考,惊闻|福建省要停考计算机等级考试?!
  20. 合肥市2022年专利预审申请条件备案流程以及授权时间介绍

热门文章

  1. 贝塞尔曲线(Bezier Curves)
  2. “黄背心”运动持续进行 马克龙发长信呼吁沟通
  3. 这种有序神经元,像你熟知的循环神经网络吗?
  4. DLUX组件扩展下篇-实践
  5. 我也来说说js的事件机制
  6. 使用jQuery的attr方法来修改onclick值
  7. Apache模块开发
  8. Java学习笔记3——继承
  9. Sqrt(int x) leetcode java
  10. twitter storm学习 - 安装部署问题汇总