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

这篇具有很好参考价值的文章主要介绍了Ceph:关于Ceph 集群中数据分布和容灾理论的一些笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面


  • 准备考试,整理 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。在创建池时,将它们设置为复制或纠删代码池

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

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

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

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

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

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

博文部分内容参考

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


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)文章来源地址https://www.toymoban.com/news/detail-527498.html

到了这里,关于Ceph:关于Ceph 集群中数据分布和容灾理论的一些笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第⑫讲:Ceph集群OSD扩缩容中Reblanceing数据的重分布

    当集群中OSD进行扩缩容操作后,会触发一个Reblanceing数据重分布的机制,简单的理解就是将扩缩容前后OSD中的PG在每一个OSD中进行均匀分布,如下图所示: 在扩容前集群有两个OSD节点,这两个OSD中分布着十个PG,扩容后,集群中有三个OSD节点,此时就会触发Reblanceing数据重分布

    2024年04月15日
    浏览(44)
  • Ceph:关于 Ceph 用户认证授权管理的一些笔记

    准备考试,整理 Ceph 相关笔记 博文内容涉及, Ceph 用户管理,认证管理,权限管理 以及相关 Demo 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众

    2024年02月11日
    浏览(49)
  • 大数据开发·关于虚拟机Hadoop完全分布式集群搭建教程

    官网链接 进入后网站如图,各位按需下载 官网链接 进入页面点击下载 再根据我们需要下载的软件进入下载页面 点击右侧红框内的免费授权页面获取免费许可 进入后如图,两者我们都需要所以都勾选,填写的邮箱用于接收下载链接,下载后进行安装即可 这里先和大家强调一

    2024年02月07日
    浏览(47)
  • 关于ES集群信息的一些查看

    查看版本 kibana : GET / GET /_cat/nodes?v 解释: ip:集群中节点的 ip 地址; heap.percent:堆内存的占用百分比; ram.percent:总内存的占用百分比,其实这个不是很准确,因为 buff/cache 和 available 也被当作使用内存; cpu:cpu 占用百分比; load_1m:1 分钟内 cpu 负载; load_5m:5 分钟内

    2023年04月11日
    浏览(42)
  • ceph数据分布

    ceph的存储是无主结构,数据分布依赖client来计算,有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设: 第一,pg的数量稳定,可以认为保持不变; 第二, OSD的数量可以增减,OSD的存储空间权重不等; 由于 PG的数量保持不变,由数据来找PGID的环节可以简单处理,对数据

    2024年02月12日
    浏览(26)
  • 关于集群分布式torchrun命令踩坑记录(自用)

    在训练或者微调模型的过程中,单节点的显存溢出,或者单节点的显卡较少,算力有限。需要跨节点用多个节点多块显卡来运行这项任务。这里就需要使用分布式命令,将这项任务分布到多个节点上来处理。 在此我仅记录我在运行分布式过程中遇到的一些问题。 首先,对于

    2024年02月12日
    浏览(42)
  • 【经验分享】openGauss容灾集群搭建

    openGauss 推出了容灾架构,相比之前的一个集群主从架构,而容灾架构是两个集群间的数据同步。为了更深入了解其原理,本文试图通过阅读 gs_sdr 命令相关的代码来学习下相关的各种操作。 1.容灾搭建过程可以参考:https://www.modb.pro/db/628767 2.vscode调试配置可以参考:https://w

    2024年02月08日
    浏览(52)
  • elasticsearch系列九:异地容灾-CCR跨集群复制

    概述    起初只在部分业务中采用es存储数据,在主中心搭建了个集群,随着es在我们系统中的地位越来越重要,数据也越来越多,针对它的安全性问题也越发重要,那如何对es做异地容灾呢?    今天咱们就一起看下官方提供的解决方案cross-cluster replication(简称ccr)。 环境准

    2024年02月04日
    浏览(47)
  • 阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统

    近日,阿里云分布式云容器平台 ACK One [ 1] 发布“多集群网关” [ 2] (ACK One Multi-cluster Gateways)新特性,这是 ACK One 面向多云、多集群场景提供的云原生网关,用于对多集群南北向流量进行统一管理。 基于 ACK One 多集群网关可以快速构建多集群应用的同城容灾系统,帮助企业

    2024年01月18日
    浏览(50)
  • 【Ceph】Ceph集群应用详解

    接上文基于ceph-deploy部署Ceph集群详解 Pool是Ceph中 存储Object对象抽象概念 。我们可以将其理解为 Ceph存储上划分的逻辑分区 ,Pool由多个PG组成;而 PG通过CRUSH算法映射到不同的OSD上 ;同时Pool可以设置副本size大小,默认副本数量为3。 Ceph客户端向monitor请求集群的状态,并向P

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包