Ceph:关于Ceph 集群中数据分布和容灾理论的一些笔记

news2024/11/26 18:52:38

写在前面


  • 准备考试,整理 Ceph 相关笔记
  • 博文内容涉及,Ceph 集群中数据如何分布以及不同的容灾池介绍
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


Ceph 中的数据分布和整理

使用池对存储进行分区

Ceph 中的 pool 可以看作是传统文件系统中的目录,但它们不仅仅是简单的目录。可以这样讲,如果要在 ceph 中存储东西,那么最先需要确认的就是要存储在那个池里,池最主要区别是,保护容灾类型不同,有复制池和纠删码池两种

在 Ceph 中 OSD 保护并持续检查集群中存储的数据的完整性, Pools(池) 是 Ceph 存储集群的逻辑分区,用于将对象存储在共同的名称标签下。

Ceph 给每个 分配 特定数量哈希存储桶,名为放置组 (PG),将对象分组到一起进行存储。每个池具有下列可调整属性:

  • 不变 ID
  • 名称
  • 在 OSD 之间分布对象的 PG 数量
  • CRUSH 规则,用于确定这个池的 PG 映射
  • 保护类型冗余(复制纠删代码)
  • 与保护类型相关的参数
  • 影响集群行为的各种标志

分配给每个池的放置组(PG)数量可以独立配置,以匹配数据的类型以及池所需要的访问权限

CRUSH 算法用于确定托管池数据的OSD,每个池分配一条 CRUSH 规则作为其放置策略,CRUSH 规则决定哪些 OSD 存储分配了该规则的所有池的数据

放置组 PG

放置组 (PG) 将一系列对象聚合到一个哈希存储桶或组中。Ceph 将每个 PG 映射到一组 OSD

一个对象 属于一个 PG,属于 同一PG 的所有对象返回相同的散列结果

根据对象名称的散列将对象映射至其 PG。由 CRUSH 算法将 PG 放置到OSD 这种放置策略也被称为 CRUSH 放置规则,放置规则标识在 CRUSH 拓扑中选定的故障域,以接收各个副本或纠删码区块

当客户端将对象写入到池时,它使用池的 CRUSH 放置规则来确定对象的放置组

客户端然后使用其集群映射的副本放置组以及 CRUSH 放置规则来计算对象的副本(或其纠删码区块)应写入到哪些 OSD 中,从而确保数据分布到不同的故障域

的 OSD 可供 Ceph 集群使用时,放置组提供的间接层非常重要。在集群中添加或移除 OSD 时,放置组会自动在正常运作的 OSD 之间重新平衡

将对象映射到其关联的 OSD

  1. Ceph 客户端从监控器获取集群映射的最新副本。集群映射向客户端提供有关集群中所有MON、OSD 和 MDS 的信息。它不会向客户端提供对象的位置,客户端必须使用CRUSH 来计算它需要访问的对象位置

  2. 当一个对象需要进行存储时,客户端需要根据对象 ID存储池名称来计算出该对象所属的 PG ID。为了计算 PG ID,客户端需要将对象 ID模运算,得到 PG 数量,然后再将 PG ID 添加到池 ID 的前缀上,以得到完整的 PG ID

例如,假设某个存储池的名称为 my-pool,其对应的数字 ID 是 1,同时该存储池被分成了 64 个 PG 组。当客户端需要为一个对象计算存储位置时,它首先根据对象的 ID 计算出对象所在的 PG ID(例如是 26),然后将池 ID 的前缀添加进去,得到最终的 PG ID:1.26。这个 PG ID 就代表了对象在 Ceph 存储集群中的存储位置,客户端可以通过该 ID 来访问和管理该对象。

  1. 然后,使用CRUSH 算法确定哪些 OSD 负责某一个 PG(操作集合)。操作集合中目前就绪的 OSD位于就绪集合中,就绪集合中的第一个 OSD 是对象放置组的当前主要 OSD,就绪集合中的所有其他OSD 为次要 OSD

  2. Ceph 客户端然后可以直接与主要 OSD 交互,以访问对象

数据保护

和 Ceph 客⼾端一样,OSD 守护进程使用 CRUSH 算法,但 OSD 守护进程使用它来计算对象副本的存储位置以及用于重新平衡存储

在典型的写入场景中,Ceph 客户端使用CRUSH 算法计算原始对象的存储位置,将对象映射到池和放置组,然后使用 CRUSH 映射来确定映射的放置组的主要 OSD。在创建池时,将它们设置为复制或纠删代码池

在这里插入图片描述

为了提高弹性,为池配置在出现故障时不会丢失数据的 OSD 数量。对于复制池(默认的池类型),该数量决定了在不同设备之间创建和分布对象的副本数。复制池以较低的可用存储与原始存储比为代价,在所有用例中提供更佳的性能

纠删代码提供了更经济高效的数据存储方式,但性能更低。对于纠删代码池,配置值确定要创建的编码块奇偶校验块的数量

纠删代码的主要优势是能够提供极高的弹性和持久性。还可以配置要使用的编码区块(奇偶校验)数量,RADOS 网关和 RBD 访问方法都支持纠删代码

下图演示了如何在Ceph集群中存储数据对象。Ceph 将池中的一个或多个对象映射到一个 PG,由彩色框表示。此图上的每一个 PG 都被复制并存储在 Ceph 集群的独立 OSD 上

在这里插入图片描述

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 😃


https://docs.ceph.com/en/pacific/architecture/

https://github.com/ceph/ceph

https://docs.ceph.com

CL260 授课老师课堂笔记


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/724447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL系列】数据库基础学习_简单认识数据库

「前言」文章内容大致是数据库基础,以及数据库的基本知识。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 「枫叶先生有点文青病」「句子分享」 我见青山多妩媚,料青山、见我应如是。 ——辛弃疾《贺新郎》 目录 一、连接MySQL服务器二…

hcip第三次作业

1、合理规划IP地址,启用OSPF单区域。 2、R1-R2之间启用PPP的PAP单向认证。 把R1作为主认证方 然后在R2处做添加——帐号、密码 接口处于双UP的状态,证明认证成功 3、R2-R3之间启用PPP的chap双向认证 R2作为主认证方。 此时4/0/1口处于up - down状态 然…

Zabbix6.0 的部署、自定义监控服务

目录 一、概述 二、 zabbix 1.zabbix简介 2.zabbix监控原理 3. Zabbix 6.0 新特性 3.1Zabbix server高可用防止硬件故障或计划维护期的停机 3.2 Zabbix 6.0 LTS新增Kubernetes监控功能,可以在Kubernetes系统从多个维度采集指标 4. Zabbix 6.0 功能组件 4.1…

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:/

-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathD:/在内存溢出时导出整个堆信息 指定导出堆的存放路径(D:/java_customName.hprof),可以自定义dump名字;自定义名字时重复执行dump文件貌似不会覆盖(D:/),只指定路径会自动生成Dump文件&…

10G CWDM和DWDM的优势和应用场景解析

10G CWDM和10G DWDM光模块都是用于光纤通信系统的传输技术,它们在光纤网络中使用不同的光波分复用技术。本期文章我们通过分析10G CWDM SFP和10G DWDM SFP两种光模块进行区别对比。 一、10G CWDM和DWDM光模块参数区别对比 二、易天光通信10G CWDM和DWDM光模块优势对…

品牌从0到1,中小企业如何在市场中脱颖而出?

道叔在初创小企业做过品牌,所以对这一块很清楚。在资金有限的中小企业做品牌,并不需要在品牌建设上砸钱,没钱也不是不可以做品牌,不花钱有不花钱的做法。 以下是个人在小企业做品牌的一些实际操作经验,都是干得不能再…

【UnitDOTS 小知识】ChunkComponet存储

ChunkComponet存储 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、ChunkComponet的特点 按ChunkComponent按Chunck存储的,他…

C4D和3dmax在不同应用场景下对比,哪个更好用

Maxon Cinema 4D 和Autodesk 3ds Max 是艺术家和工作室在许多领域经常使用的两种最著名的 3D 软件。它们都有不同的功能,在本文中,让我们对它们进行比较。我们将尽力向您概述它们之间的主要区别以及两者的能力。 哪一个更容易使用/学习? Ci…

Java 基础入门篇(四):方法的重载与参数传递机制

文章目录 一、方法的定义二、方法的参数传递机制 ★2.1 基本类型的参数传递2.2 引用类型的参数传递三、方法重载 一、方法的定义 方法的作用:封装一段代码的语法结构,可以被重复调用,以此提高代码的复用性,提高开发效率&#xff0…

无线传感器:智能家居监控系统设计

创造声明:本文档由北溪入江流与砂砾共同协作完成 一:选题理由 1.1 市场分析 随着经济的发展,人们的生活水平提高,人们对家庭居住的环境,安全性和智能性需求越来越高,越来越多的人开始关注智能家居系统。智…

FANUC机器人MEMO-126故障报警,无更多可用TPP内存的处理方法

FANUC机器人MEMO-126故障报警,无更多可用TPP内存的处理方法 如下图所示,示教器上报警提示“MEMO-126 无更多可用TPP内存”, 检查系统TPP存储空间是否够用,如下图所示,依次找到MENU—状态—存储器, 如下…

SSM项目前后端分离+IDEA运行环境(含前端源码)(个人博客系统)

目录 后端项目环境配置 1、创建一个SpringBoot项目,添加MyBatis框架和数据库MySQL驱动依赖 2、配置项目文件:application.yml 3、创建数据库表 4、创建分层结构目录 返回统一数据格式 创建统一数据格式返回类:AjaxResult 创建实现统一…

两款免费好用的OPCUA服务端模拟器

一、OPC UA服务器1 1、下载 https://download.csdn.net/download/qq_43445867/87967458 2、安装完打开即可开启opc服务 另外此软件还可以模拟一些变量变化 二、OPC UA服务器2 1、测试opc服务器 启动Softing OPC Client输入连接信息后可以看到已经连接到OPC服务器 Softing …

企业内容管理升级 3.0:构建生态协同,助力合规成长

企业内容管理曾一度火热,但其早期方案似乎已过时。实际上,随着企业数字化转型的加深,企业内容管理也在不断演进,陪伴着企业数字化成长。 企业内容管理3.0 企业内容管理1.0实现企业无纸化,提高业务运营效率。以电子影像技术为主,使纸质文件电…

手撕spring03源码

概述 传入对象参数通过cglib实例化代理对象整体设计 知识补充 /**** param beanDefinition* param beanName* param ctor 构造方法* param args 参数* return* throws BeansException*/Overridepublic Object instantiate(BeanDefinition beanDefinition, String beanName, C…

安达发|APS车间排产软件生产计划优化利器

APS车间排产软件是一款专门针对制造企业的生产计划排程优化软件。它可以帮助企业实现优化排程和提高生产效率。具体来说,它能够解决企业面临的多种复杂问题,包括: 1. 优化排产计划,避免设备闲置和资源浪费。通过对订单和产能的预…

Python:简单处理表格和图片数据并初步分析

目录 1.需求: 2.表格示例: 3.安装第三方库 4.代码实现 : 1.需求: 8.对周五面试结果excel表格进行操作 20分输出所有同学“名称:对应成绩”的信息 2分输出分值最高和最低的同学名称及分数,(…

Spring Boot 中的静态资源是什么,如何使用

Spring Boot 中的静态资源是什么,如何使用 在 Web 应用程序中,静态资源通常是指不会动态生成的文件,例如图片、CSS、JavaScript 文件等。Spring Boot 提供了一种简单的方式来处理这些静态资源,让我们可以更加方便地管理和使用它们…

金融人离不开的CFA,中国人民大学与加拿大女王大学金融硕士国际班学员貌似也离不开

全球最具含金量的证书CFA证书也会被质疑你相信吗?号称“全球金融第一考”的CFA,是强化和丰富金融知识体系的。而认为这个证书只是一种背书,与工作实践无用的这批人,小编认为可能这些人也跟学历无用论是一类人。现实的他们是因为拿…