高可用集群(1)- Pacemaker+Corosync实现负载均衡和高可用

2023-11-19

1.问题引入

计算机集群可用于提供高可用性服务或资源。多台机器的冗余是用来防止多种类型的故障。集群将使用Pacemaker和Corosync提供资源管理和消息传递。下面将介绍所需的包和对其配置文件的修改,以及使用Pacemaker命令行工具生成用于集群控制的XML。

2.什么是Pacemake?

Pacemaker是一种集群资源管理器,也就是说,它是一种负责部署软件生命周期的逻辑——间接地可能甚至是整个系统或它们的互连——在一组计算机(又名节点)的控制下,并由规定的规则驱动。实现集群服务的最大可用性通过检测节点和资源级别故障并从中恢复利用提供的信息和会员功能首选集群基础设施(Corosync或Heartbeat),并可能通过利用整个集群的其他部分堆栈。

Pacemaker的功能:检测和恢复节点和服务级别的故障
•存储不可知,不需要共享存储
•资源不可知,任何可以脚本化的都可以集群
•支持保护(也称为STONITH的首字母缩写,稍后解密),以确保数据完整性
•支持大型和小型集群
•支持quorate和资源驱动集群
•支持几乎任何冗余配置
•自动复制配置,可从任何节点更新
•能够指定集群范围内的服务订购、托管和反托管

3.Pacemake+Corosync+heartbeat



1、Pacemaker - 集群资源管理器(CRM),负责启动和停止服务,而且保证它们是一直运行着的以及某个时刻某服务只在一个节点上运行(避免多服务同时操作数据造成的混乱),利用集群基础构建提供的信息和成员管理能力,探测并恢复节点以及在其控制下的资源的失效切换,以实现高可用性。

2、Corosync - 消息层组件,管理成员关系、消息和仲裁。

3、Resource Agents - 资源代理,用来控制服务启停,监控服务状态的脚本集合,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。任何资源代理都要使用同一种风格,接收四个参数:{start|stop|restart|status},包括配置IP地址的也是。

4.Pacemaker+Corosync实现负载均衡和高可用实验

实验解决的问题是单点故障,实现高可用,高可用主要是解决单点故障,也就双机热备 

(1)实验环境的准备

实验环境:
(1)两台服务器:server1:172.25.254.1
             server2:172.25.254.2

(2)关掉火墙和selinux,做好解析/etc/hosts,安装好apache

(3)配置好yum源
[dvd]        
name=rhel7.6
baseurl=file:///iso
gpgcheck=0

[HighAvailability]               #高可用插件   
name=HighAvailability
baseurl=file:///iso/addons/HighAvailability
gpgcheck=0
 
[ResilientStorage]               高可用插件
name=ResilientStorage
baseurl=file:///iso/addons/ResilientStorage
gpgcheck=0

(2)安装集群软件

#yum install -y pacemaker pcs psmisc policycoreutils-python
# systemctl start pcsd.service
# systemctl enable pcsd.service
# echo 123 | passwd --stdin  hacluster
# ssh server2 "echo 123 | passwd --stdin  hacluster"

(3)配置Corosync

# pcs cluster auth server1 server2
Username: hacluster
Password:
server1: Authorized
server2: Authorized

在同一个节点上使用pc集群设置来生成和同步corosync

# pcs cluster setup --name mycluster server1 server2
# pcs start --all   开启集群
# corosync-cfgtool -s   检查集群通信是否顺畅:

 

 (4)pcs的相关命令 可以查找帮助 

(5)集群的管理 

      在集群中添加资源之前需要禁用STONITH,请将启用STONITH的集群选项设置为false:

[root@server1 ~]# pcs property set stonith-enabled=false
[root@server1 ~]# crm_verify -L

添加第一个资源  

# pcs resource create VIP ocf:heartbeat:IPaddr2 ip=172.25.254.100 cidr_netmask=32 op monitor interval=30s

此时VIP在server2上,当用外部服务器访问集群时,访问的是server2,若server2 出现故障(单点故障),此时集群的双机热备,高可用就能体现出来,此时VIP就会通过心跳连接漂到server1上

故障模拟 由于VIP在server2上 我们停掉server2

添加第二个资源

pcs  resource  create apache systemd:httpd op monitor interval=1min

发现两个资源不统一 此时需要统一

pcs  resource group add webgroup  apache VIP   注意资源的顺序要和你添加资源的顺序一致

若其中一个服务器出现故障 ,将会整体的迁移。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高可用集群(1)- Pacemaker+Corosync实现负载均衡和高可用 的相关文章

  • 查看Linux内存cpu使用情况,某一应用内存占用大小

    查看Linux内存 cpu使用情况排序 某一应用内存占用大小 virt res shr data的意义 1 知识点 1 top命令使用 2 如何查看某一应用内存占用大小 3 回收buff cache 1 使用 1 使用top查看cpu 内存
  • java中对象克隆的基本应用

    为什么需要克隆对象 直接new一个对象不行吗 答案是 克隆的对象可以直接使用已经有的属性值 而new出来的对象的属性都还是初始化时候的值 所以当需要一个新的对象来保存当前对象的 状态 就靠clone方法了 那么我把这个对象的临时属性一个一个
  • 行政如何借助ChatGPT提高效率

    文章目录 ChatGPT的优势与局限 行政人员的核心价值 行政人员应对策略 借助ChatGPT提高效率 结论 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主页 个人社区 欢迎你的加入 全栈弄潮儿的个人社区 专栏地址 AI大模型 随着人工智
  • c++ goto语句

    goto语句又称无条件跳转语句 用于改变语句执行顺序 goto语句的一般格式为 goto label 其他语句 label statement label是用户可定义的一个标识符 以冒号结束 例如 include
  • 考公考研热度上升、是增加就业筹码or恐惧就业?

    现在 金三银四 的春招季已经逐渐告一段落 先不从本次职场招聘看 从考公考研来看 很大部分应届毕业生选择去考公务员和研究生 据统计今年457万考研大军比去年的377万整整多了80万人 今年也是最近几年考研人数增长最快的 今年考研大军达457万
  • Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)

    目录 前言 列表元素的添加 或者叫写入 1 append 函数 2 extend 函数 3 insert 函数 列表元素的删除 1 remove 函数 2 pop 函数 3 clear 函数 4 del 方法 这个不是函数哦 列表元素的修改
  • layui会议OA项目数据表格新增改查

    文章目录 前言 一 后台代码编写 1 1 数据表优化 1 2 R工具类 1 3 UserDao新增改查 1 4 Servlet的编写 二 前台页面的编写 2 1 userManege jsp 2 2 userManage js 2 3 新增
  • 【ViT(Vision Transformer)】(二) 阅读笔记

    简介 ViT是2020年Google团队提出的将Transformer应用在图像分类的模型 虽然不是第一篇将transformer应用在视觉任务的论文 但是因为其模型 简单 且效果好 可扩展性强 scalable 模型越大效果越好 成为了t
  • php请求api接口获取公众号基本信息,使用appid,appsecret获取微信公众号基本信息

    使用access token微信公众平台提供的 获取公众号基本信息 接口 来获取公众号的基本信息 首先通过appID和appsecret获取access token 然后使用access token调用获取公众号基本信息的API
  • ADPCM WAVE文件的压缩与解压缩

    一 WAVE文件 WAVE文件是计算机领域最常用的数字化声音文件格式之一 它是微软专门为Windows系统定义的波形文件格式 Waveform Audio 由于其扩展名为 wav 最基本的WAVE文件是PCM 脉冲编码调制 格式的 这种文件
  • ch01-核心概念 (进阶)

    文章目录 常量 特殊值 空值 无穷 数据类型 类型 大小 顺序 结构化数组 时间数组 数组对象 ndarray array 自定义数组容器 子类化与标准子类 小结 参考 安装watermark pip install watermark l
  • 解决数据库高并发访问瓶颈问题

    一 缓存式的Web应用程序架构 在Web层和db层之间加一层cache层 主要目的 减少数据库读取负担 提高数据读取速度 cache存取的媒介是内存 可以考虑采用分布式的cache层 这样更容易破除内存容量的限制 同时增加了灵活性 二 实现
  • linux创建套接字文件类型,Linux日记---0X03文件类型

    文件类型 文件 文件是文件系统中存储数据的一个命名对象 文件是linux系统处理信息的基本单元 一个文件可以空文件 但空文件仍然为操作系统提供了其他信息 文件组成了linux的一切 linux将数据库文件 游戏文件或者字处理文件都仅仅看做一
  • [学习笔记]Matlab(持续更新)

    文章目录 一 Matlab知识学习 1 输入输出语句 注意 Matlab中disp fprintf及sprintf三者之间的区别 2 exist函数的使用 3 matlab中的注释 4 几种常用的清除命令 5 MAT文件如何操作 6 dir
  • 期货投资如何能少犯错

    无论投资者进行哪种投资 肯定或多或少都会犯错误 毕竟没有谁能保证自己一定不会犯错误 但投资者应该尽量让自己少犯错误 并把这点作为自己追求的目标 投资者如果想要少犯错误 就要尊重市场 不做违背市场规则的操作 其实很多投资者都知道这点 但是当自
  • Mysql-JDBC配置Replication协议

    这部分描述了Mysql JDBC对于replication协议的一系列特性的支持 mysql jdbc replication初始化于创建连接URL阶段 和通常的jdbc URL类似 但也有些特殊性 jdbc mysql replicati
  • 跟大师一起学习环路补偿,图文并茂

    作为工程师 每天接触的是电源的设计工程师 发现不管是电源的老手 高手 新手 几乎对控制环路的设计一筹莫展 基本上靠实验 靠实验当然是可以的 但出问题时往往无从下手 在这里我想以反激电源为例子 在所有拓扑中环路是最难的 由于RHZ 的存在 大
  • wsl安装ubuntu

    WSL 用管理员打开powershell wsl install 重启 用管理员打开powershell 启用适用于 Linux 的 Windows 子系统 dism exe online enable feature featurenam
  • vue3+leaflet+天地图

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 准备工作 1 安装插件 2 天地图秘钥 二 使用步骤 1 引入库 2 创建地图容器 3 初始化地图 4 界面效果 天地图地图服务API相关 一 准备工作 需要先

随机推荐

  • Oracle两张表关联批量更新其中一张表的数据

    创建如下表数据 select from t1 select from t2 现需求 参照T2表 修改T1表 修改条件为两表的fname列内容一致 方式1 update 常见陷阱 UPDATE T1 SET T1 FMONEY select
  • 二进制安全虚拟机Protostar靶场 安装,基础知识讲解,破解STACK ZERO

    简介 pwn是ctf比赛的方向之一 也是门槛最高的 学pwn前需要很多知识 这里建议先去在某宝上买一本汇编语言第四版 看完之后学一下python和c语言 python推荐看油管FreeCodeCamp的教程 c语言也是 pwn题目大部分是破
  • 基于python+selenium的二次封装

    这是个人对selenium webdriver写的一些常用操作的二次封装 也就相当于重写了 不再使用自带的框架 用自己写的框架完成 这样的话使代码更简洁 用自己的思想完成代码的编写 首先在根目录下创建子目录名为Common作为公用数据 名字
  • RequireJS 与 AngularJS 集成(完整版)

    JS结构 main js main js这个文件完成的事情简单来说就是 载入所有文件 然后在document上运行Angular并将ng app属性设置为 app 这些文件因为是由RequireJS异步载入 因此我们需要来 手动启动 Ang
  • 逻辑回归原理(python代码实现)

    原文 https blog csdn net csqazwsxedc article details 69690655 Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程 为最大化方
  • 架构学习笔记—优酷网

    互联网就是这么一个神奇的东西 今天我突然想到 优酷网在国内也算是视频网站的老大了 不知道他的架构相对于YouTube是怎么样的 于是带着这 个好奇心去网上找了优酷网架构的各方面资料 虽然谈的不是那么详细 但多少还是挖掘了一点 现在总结一下
  • 线程和进程的区别(面试必备)

    参考文章 https www jianshu com p 2dc01727be45 线程与进程的区别通俗的解释 https www jianshu com p 8ad441510860 附加可参考文章 https baijiahao bai
  • c#与SQL server知识

    1 数据库建立 在C 中建立的数据库 想要在SQLserver中找到需要连接与c 相同的服务器才可以找到 2 在C 中建立数据库更新不成功 需要打开SQL server 连接与c 相同的服务器 随后在c 中更新 3 在c 界面中更新数据库成
  • maven安装及配置(详细版)

    1 下载 方式一可以从官方下载 下载页面 http maven apache org download cgi 方式二 或者题主提供的版本下载maven安装包 提取码 ysns 下载好后是一个压缩文件 2 安装 maven压缩包解压到一个没
  • 拓展知识 启望未来

    炎炎六月 迎来了备受期待的 亚信科技AntDB数据库初级认证培训 活动 通过培训 希望内蒙古移动及项目组的伙伴们能够系统学习到国产数据库的核心知识 提升专业技能 为服务感知提升 运维团队培育注入新的活力 26号上午 首先由内蒙古移动智慧运维
  • 【10】Docker私有仓库

    一 私有仓库搭建与配置 1 拉取 私有仓库 镜像 docker pull registry 2 创建并启动 私有仓库 容器 docker run di name registry p 5000 5000 registry 打开浏览器输入地址
  • JavaScript Boolean 对象

    解释 Boolean 对象用于转换一个不是 Boolean 类型的值转换为 Boolean 类型值 true 或者false 语法 var a true var b false Boolean 对象属性 属性 描述 constructor
  • 数据结构学习系列之顺序表的两种创建方式

    方式1 通过返回值返回所申请的内存空间的首地址 示例代码 list t create seq list 1 list t p list t malloc sizeof list t if NULL p printf 内存分配失败 n exi
  • linux内核、驱动和硬件之间的关系和通信

    linux驱动是直接和硬件打交道的软件程序 层次结构上 它处于操作系统和硬件之间 驱动与linux内核的关系 驱动程序提供的一组设备驱动接口函数Device Driver Interface给操作系统在linux中 这一组设备驱动接口函数一
  • 前端axios下载excel文件(二进制)的处理方法

    前端axios下载excel文件 二进制 的处理方法 后端生成excel后 前端 click 事件进行下载 脱坑记录 亲测有效 lz 使用的是 axios 发起请求 首先 介绍一下思路 准备通过动态创建 a 标签 通过 blob 对象进行接
  • java调优总结

    JVM调优总结 序 几年前写过一篇关于JVM调优的文章 前段时间拿出来看了看 又添加了一些东西 突然发现 基础真的很重要 学习的过程是一个由表及里 再由里及表的过程 呵呵 所谓的 温故而知新 而真正能走完这个轮回的人 也就能称为大牛或专家了
  • 补充:YOLO模型训练时loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡)

    补充 1 参考1 2 补充 3 小结 1 参考1 在参考有头发的垃圾猿的 YOLO系列训练时出现loss出现nan值或者测试时P R map全部为0值的解决办法 GTX16xx系列显卡大坑 后 发现问题不能得到实际的解决 可能是版本不一样导
  • vs调试正确显示utf8格式字符串

    vs调试正确显示utf8格式字符串 自从将visual studio从2010升级到2015后 发现调用接口的utf8格式字符串不能正常显示了 常常被莫名其妙截断 查了下 原来可以直接将变量拖到watch窗口中 在变量名后面手动添加 s8予
  • 计算机网络的两级子网指,计算机三级网络技术分类练习题_网络基本概念(一).doc...

    您所在位置 网站首页 gt 海量文档 nbsp gt nbsp资格 认证考试 nbsp gt nbsp计算机等级考试 计算机三级网络技术分类练习题 网络基本概念 一 doc6页 本文档一共被下载 次 您可全文免费在线阅读后下载本文档 下载提
  • 高可用集群(1)- Pacemaker+Corosync实现负载均衡和高可用

    1 问题引入 计算机集群可用于提供高可用性服务或资源 多台机器的冗余是用来防止多种类型的故障 集群将使用Pacemaker和Corosync提供资源管理和消息传递 下面将介绍所需的包和对其配置文件的修改 以及使用Pacemaker命令行工具