简介

高可用集群,是指以减少服务中断(如因服务器宕机等引起的服务中断)时间为目的的服务器集群技术。简单的说,集群就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点。

高可用集群的出现是为了减少由计算机硬件和软件易错性所带来的损失。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。如果某个节点失效,它的备援节点将在几秒钟的时间内接管它的职责。因此,对于用户而言,集群永远不会停机。高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。

高可用集群框架图:

请点击此处输入图片描述

架构整体说明:

随着互联网技术的迅速发展很多大中小型公司已经离不开互联网办公及其提供服务,例如淘宝、美团等网站宕机几个小时损失是致命的,很多网站对其高可用性越来越强,这就意味着运维人员需做到从硬件和软件两方面保证服务器的平均无故障时间减小,才能提高其可用性。

corosync是一个集群管理套件的部分,它在传递信息的时候可以通过一个简单的配置来定义信息传递的方式和协议等,能实现资源间的高可用。目前,corosync功能和特性已经非常完善了,所以pacmaker独立出来之后通常都将pacmaker和corosync结合来使用,corosync并没有通用的资源管理器,因此要借助pacmaker来实现,pacemaker是作为corosync的插件来使用的,所以只需要在corosync配置文件中启动pacemaker插件即可;但是真正启动corosync并且配置它需要命令行接口进行调用,没配置pcs那么这里我们只能使用crm工具来对其进行资源的管理。

架构详细说明图:

请点击此处输入图片描述

corosync集群常见的组合方式及配置接口:

heartbeat v1 + hasource

heartbeat v2 + crm

heartbeat v3 + pacemaker + crmsh(corosync v1版本时没有投票系统,corosync v2有投票系统,当系统发生网络分区、脑裂时则将会将所有的资源转移至可用的其他主机之上)

corosync v1 + pacemaker   corosync v2 + pacemaker

cman +rgmanager corosync v1 + cman + pacemaker

CRM:集群资源管理

资源类型:

primitive:基本资源,主资源,仅能运行一个节点

group:组,将组成一个高可用服务所需要的所有资源集合在一起

clone:克隆,同一资源科出现多份,可运行在多个节点

multi-state(master/slave):多状态类型,是克隆资源的特殊表现,副本间可存在主从的关系

RA:资源代理

资源代理类别:

LSB:位于/etc/rc.d/init.d/*,支持start,stop,restart,reload,status,force-reload

注意:使用LSB资源类型的不能开机自动运行

OCF(open cluster framework):/usr/lib/ocf/resource.d/provider/,类似于LSB的脚本,但仅支持start,stop,status,monitor,meta-data

STONITH:调用stonith设备的功能,systemd:unite ifle,/usr/lib/systemd/system/

注意:必须设置enable,设置为开机自动启动

资源约束方式:

位置约束:定义资源对节点的倾向性

排序约束:定义资源彼此能否运行在同一个节点的倾向性

顺序约束:多个资源启动顺序的依赖关系

HA集群常用的工作模型:

A/P:两节点,active/passive,工作于主备模型

A/A:两节点,active/active,工作于主主模型

N-M:N>M,N个节点,M个服务,假设每个节点运行一个服务,活动节点数为N,备用节点数为N-M

在集群分裂(split-brain)时需要使用到资源隔离,有两种隔离级别:

STONITH:节点级别的隔离,通过断开一个节点的电源或者重新启动节点

fencing:资源级别的隔离,类似通过向交换机发出隔离信号,特意让数据无法通过此接口

当集群分裂,即分裂后的一个集群的法定票数小于总票数一半时采取对资源的控制策略

corosync安装及其配置

安装:

要求:1.基于主机名之间进行相互解析    2.各个节点之间时间需同步

安装:yum  -y install pacemaker (CentOS7)

corosync配置详解:corosync的主要配置分为totem、logging、quorum、nodelist配置段

请点击此处输入图片描述

完成上诉配合后需生成密码:corosync-kegen -l

将上诉配置文件和秘钥文件拷贝至另一台cluster即可。

启动服务:

systemctl start corosync

systemctl start pacemaker

安装crmsh接口工具来管理集群资源及其配置:yum -y install crmsh-2.1.4-1.1.x86_64.rpm pssh-2.3.1-4.2.x86_64.rpm python-pssh-2.3.1-4.2.x86_64.rpm

corosync+pacemaker+nfs实现高可用案例

此实验需将另一台服务器启动nfs服务并挂载至两节点上配置同样的页面文件

请点击此处输入图片描述

实验测试图:

将节点一手动设置为standby模式,则资源会自动转移至节点二

请点击此处输入图片描述

上诉配置可用排列约束和顺序约束实现并且能实现节点之间的粘性和启动顺序

请点击此处输入图片描述

定义资源监控配置如下:当httpd服务停止时,将自动重启httpd,如重启失败则将资源转移至可用的节点

请点击此处输入图片描述

总结:

综合上诉的配置总体感觉corosync+pacemaker的方式实现高可用比lvs略微复杂,corosync同样可实现对RS的健康状态检测,可借助ldirectory实现自动生成ipvs规则。

作者:小耳朵

来源:http://purify.blog.51cto.com/10572011/1872962

来源:马哥教育

官网微信:magedu-Linux

转载于:https://blog.51cto.com/mageedu/1882353

corosync+pacemaker高可用集群相关推荐

  1. Pacemaker+corosync实现高可用集群

    一:Pacemaker和corosync概述: Pacemaker(心脏起搏器),是一个集群管理资源器.但是其不提供心跳信息.pacemaker是一个延续的CRM.Pacemaker到了V3的版本以后 ...

  2. HAProxy实现负载均衡及高可用集群(corosync+pacemaker)

    一.haproxy haproxy 是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特别适用 ...

  3. 利用pcs+pacemaker+corosync实现(HA)高可用集群

    实验环境搭建 创建一台操作系统是rhel7.6的虚拟机node,配置好网络仓库,解析,网卡设置,关闭火墙和selinux后封装 克隆node虚拟机,虚拟机域名为node1,node2,node3,主机 ...

  4. 高可用集群技术之corosync应用详解(一)

    Corosync概述: Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等.它是一个新兴的软件,2008年推出,但其实它并不是一个真正意义 ...

  5. 在CentOS7上安装配置Corosync高可用集群过程全记录

    在CentOS7上安装配置Corosync高可用集群过程全记录 一.环境.拓朴及其他准备工作: 1-1:准备网络YUM源环境: All Nodes OS CentOS 7.3 x86_64: # wg ...

  6. HA(高可用)集群之AIS(corosync),高可用httpd+NFS

    **高可用集群的定义** 高可用集群,High Availability Cluster,简称HA Cluster:集群就是一组计算机,它们作为一个整体向用户提供各种资源,集群里的host就是节点(n ...

  7. Linux: CentOS 7下搭建高可用集群

    转载: http://linux.cn/article-3963-1.html 本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为 ...

  8. linux高可用集群(HA)原理详解

    高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...

  9. 高可用集群技术之heartbeat应用详解(一)

    一.高可用集群基本概念   什么是高可用技术呢?在生产环境中我既要保证服务不间断的服务又要保证服务器稳定不down机,但是异常还是会发生,比如说:服务器硬件损坏...导致服务器down机,我该如何保证 ...

最新文章

  1. kubernetes 配置kubedns
  2. OVS vswitchd启动(三十八)
  3. Analog使用中的一些技巧和总结
  4. 干货|一文读懂中国7大支付体系(附27页流程图)
  5. 学习 Message(3): 响应 WM_LBUTTONDOWN 消息
  6. 一键转发抢红包源码及搭建教程
  7. php病毒图片后缀名,脚本图片类后门病毒的完美使用方法
  8. python同步应用:多个线程有序执行
  9. linux修改可用的最大进程数量和可打开的最大文件数
  10. 表格数据画图神器-pandas画图操作
  11. Office web apps 服务器运行一段时间之后CPU就是达到100%
  12. MTK 驱动(65)---Android 多点触摸协议(Multi-touch Protocol)
  13. [asp.net]非静态方法需要一个目标
  14. MaxDEA如何计算DEA-Malmquist指数
  15. linux打印机设置密码,linux桌面打印机配置指南 | 高蛋白网
  16. 计算机网络信息管理制度,计算机网络及信息管理制度
  17. 计算机是否能安装64位操作系统,电脑装32位还是64位系统
  18. 1296. 聪明的燕姿
  19. 如何根据论文文章名称一键查询该篇论文的引用格式?
  20. 印度软件腾飞不是偶然

热门文章

  1. Android Support v4、v7、v13的区别和应用场景
  2. rails3 ajax替换成js
  3. 线性O(N)时间复杂度求素数 , 筛法
  4. 《C# WinForM 实践开发教程》案例×××(2)
  5. 用jdk在cmd下运行编译java程序
  6. 出现adb连接不上的解决办法(转载)
  7. 如何解决Linux操作系统找不到网卡的问题
  8. 使用UPnP来穿透NAT使内网接口对外网可见
  9. 启动jar包 服务方式
  10. 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】...