LiSheng's blog LiSheng's blog
首页
笔记
个人简历
随笔集
GitHub (opens new window)
首页
笔记
个人简历
随笔集
GitHub (opens new window)
  • golang

  • cplus

  • leetcode

  • 存储技术

    • 学习大纲
    • 命令ls的执行过程
    • mmap && write
    • 命令write的执行过程
    • 块
    • VFS层
    • Ceph

      • Ceph架构设计
      • Crash算法
      • osd上的数据管理
      • ceph分布式存储-对象存储(RGW)搭建
      • ceph分布式存储-管理crushmap
      • ceph分布式存储-集群客户端连接
      • ceph分布式存储-集群容量评估
      • ceph分布式存储-集群通信
      • ceph分布式存储-块存储BlueStore性能测试
      • ceph分布式存储-日志和调试
      • ceph分布式存储-数据不均衡调整
      • ceph分布式存储-用户管理
      • ceph分布式存储-MDS介绍
      • ceph分布式存储-MON模块内部结构分析
      • ceph分布式存储-OS调优
      • ceph分布式存储-PG和PGP的区别
    • Daos

  • 分布式系统

  • 计算机网络

  • Linux操作系统

  • Redis

  • 其他

  • 笔记
  • 存储技术
  • Ceph
lisheng
2024-09-10

Crash算法

CRUSH算法旨在解决大规模集群中如何有效地存储和定位数据的问题。 通过CRUSH算法,Ceph能够实现去中心化的、无元数据服务器的分布式数据存储。

一个数据算法需要至少满足以下功能:

  • 实现数据的随机分布,并在读取时能快速索引。
  • 能够高效地重新分布数据,在设备加入、删除和失效时最小化数据迁移。
  • 能够根据设备的物理位置合理地控制数据的失效域。
  • 支持常见的镜像、磁盘阵列、纠删码等数据安全机制。
  • 支持不同存储设备的权重分配,来表示其容量大小或性能。

CRUSH元数据包含了CRUSH Map、OSDMap和CRUSH Rule。 CRUSH Map保存了集群中所有设备或0SD存储节点的位置信息和权重设置,使CRUSH算法能够感知0SD的实际分布和特性,并通过用户定义的CRUSH Rule来保证算法选择出来的位置能够合理分布在不同的失效域中。 OSDMap保存了各个OSD的运行时状态,能够让 CRUSH算法感知存储节点的失效、删除和加入情况,产生最小化的数据迁移,提高Ceph 在各种情况下的可用性和稳定性。

在分布式存储系统Ceph中,数据的放置策略通过一种称为CRUSH(Controlled Replication Under Scalable Hashing)算法来实现。CRUSH算法是Ceph的一大核心组件,旨在解决大规模集群中如何有效地存储和定位数据的问题。通过CRUSH算法,Ceph能够实现去中心化的、无元数据服务器的分布式数据存储。

  1. 存储节点组织结构: Ceph 将存储节点组织成树状的拓扑结构,称为CRUSH Map。这种结构允许定义不同层级的存储单元,常见的层级有:

    • Datacenter(数据中心)
    • Rack(机架)
    • Host(主机)
    • OSD(Object Storage Daemon,实际存储单元)
  2. OSDMap与设备的状态: 在运行时期,Ceph的 Monitor会在OSDMap中维护一种所有0SD设备的运行状态,并在集群内同步。其中,0SD运行状态的更新是通过OSD-0SD和OSD-Monitor 的心跳完成的。任何集群状态的变化都会导致 Monitor 中维护的OSDMap版本号(Epoch)递增,这样Ceph 客户端和OSD服务就可以通过比较版本号大小来判断自己的 Map 是否已经过时,并及时进行更新。 OSD设备的具体状态可以是在集群中(in)或不在集群中(out),以及正常运行(up)或处于非正常运行状态(down)。其中 OSD设备的 in、out、up和down状态可以任意组合,只是当0SD同时处于in 和down状态时,表示集群处于不正常状态。在OSD快满时,也会被标记为 full。我们可以通过以下命令查询OSDMap的状态,或者手动标记0SD设备的状态:

编辑 (opens new window)
上次更新: 2024/09/13, 11:59:12
Ceph架构设计
osd上的数据管理

← Ceph架构设计 osd上的数据管理→

最近更新
01
ceph分布式存储-对象存储(RGW)搭建
10-27
02
ceph分布式存储-集群客户端连接
10-27
03
ceph分布式存储-管理crushmap
10-27
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式