当前位置: 首页 > news >正文

怎样理解ceph?

Ceph 是一个开源的、高度可扩展的 分布式存储系统,设计用于提供高性能、高可靠性的对象存储(Object)、块存储(Block)和文件存储(File)服务。它的核心思想是通过去中心化的架构和智能的数据分布策略(CRUSH 算法)实现横向扩展,避免单点故障。


1. Ceph 的核心概念

(1) 存储类型

Ceph 支持三种存储接口:

  • 对象存储(RADOSGW):兼容 S3/Swift API,适用于图片、视频等非结构化数据。

  • 块存储(RBD):提供虚拟磁盘(如 Kubernetes PV),适用于数据库、虚拟机等低延迟场景。

  • 文件存储(CephFS):提供共享文件系统,支持多节点读写(如 AI 训练共享数据集)。

(2) 核心组件
组件作用
OSD实际存储数据的守护进程(每个 OSD 对应一块磁盘)。
MON集群状态管理器,维护全局视图(如 OSD 映射、PG 状态)。
MDS仅用于 CephFS,管理文件元数据(如目录结构)。
RADOS底层分布式对象存储系统,所有数据最终以对象形式存储。
CRUSH数据分布算法,决定数据在 OSD 上的存放位置(无需中心化元数据服务器)。
(3) 数据分布逻辑
  • PG(Placement Group):数据分片单位,一个 PG 包含多个对象。

  • Pool:逻辑存储池(如 rbdcephfs_data),每个 Pool 包含多个 PG。

  • CRUSH Map:定义数据分布规则(如故障域:主机/机架/数据中心)。


2. Ceph 的特点

(1) 优势
  • 去中心化:无单点故障,MON 和 OSD 均可横向扩展。

  • 强一致性:所有写入操作需被多数 OSD 确认后才返回成功。

  • 自动修复:数据损坏或节点故障时,自动触发恢复(通过副本或纠删码)。

  • 灵活扩展:添加新节点后,数据会自动重新平衡。

(2) 挑战
  • 复杂度高:部署和调优需要理解 RADOS、CRUSH、PG 等概念。

  • 资源消耗:MON 和 OSD 对 CPU/内存有一定要求(尤其是纠删码计算)。

  • 运维成本:需监控 PG 状态、OSD 负载等指标。


3. Ceph 的适用场景

场景推荐存储类型案例
Kubernetes 持久化存储RBD(块存储)数据库 PVC(如 MySQL)
共享文件系统CephFS多 Pod 共享训练数据
云原生对象存储RADOSGW(S3 兼容)替代 AWS S3 存储用户上传文件
备份归档纠删码池低成本存储冷数据

4. 对比其他存储系统

特性Ceph传统 SAN/NAS云厂商存储(如 AWS EBS)
架构去中心化,无单点故障中心化(依赖存储控制器)中心化(托管服务)
扩展性线性扩展,支持上千节点有限扩展按需扩展,但有上限
成本开源,硬件成本低专有硬件成本高按量付费,长期成本高
性能依赖网络和配置调优低延迟(光纤通道)稳定但受限于云网络
管理复杂度高(需运维集群)中等低(全托管)

5. 如何快速理解 Ceph 的工作原理?

类比:图书馆系统
  • OSD = 书架:实际存放书籍(数据)。

  • MON = 图书管理员:记录哪些书在哪个书架(集群状态)。

  • CRUSH = 图书分类法:决定某本书应放在哪个区域(如“科技类-3号书架”)。

  • PG = 书箱:一组书(对象)的集合,方便批量管理。

  • Pool = 图书馆分区(如“儿童区”“成人区”)。

当有人借书(读取数据)时:

  1. 询问管理员(MON)书的位置。

  2. 根据分类法(CRUSH)找到对应书架(OSD)。

  3. 从书箱(PG)中取出书(对象)。


6. 学习建议

  1. 动手实验

    • 使用 cephadm 或 rook 快速部署测试集群。

    • 尝试创建 RBD 块设备、挂载 CephFS。

  2. 关键命令

    ceph -s              # 检查集群状态
    ceph osd tree        # 查看 OSD 分布
    ceph df              # 查看存储池用量
  3. 调优方向

    • 调整 PG 数量(ceph osd pool set <pool> pg_num 128)。

    • 配置故障域(如机架级容灾)。


总结

Ceph 是一个功能强大但复杂的“存储瑞士军刀”,适合需要 自建云存储 或 大规模分布式存储 的场景。对于 Kubernetes 用户,通常通过 Rook 或直接集成 RBD/CephFS 来使用。理解其核心组件(OSD/MON/CRUSH)和数据流动逻辑是运维的关键。

http://www.xdnf.cn/news/158977.html

相关文章:

  • vue3获取麦克风权限通过websocket进行通话
  • 【AI提示词】财务顾问
  • 《TCP/IP详解 卷1:协议》之第七、八章:Ping Traceroute
  • WPF 上位机开发模板
  • Python爬虫-爬取汽车之家各品牌月销量榜数据
  • 如何快速轻松地恢复未保存的 Word 文档:简短指南
  • SLAM学习系列——ORB-SLAM3安装(Ubuntu20-ROS/Noetic)
  • Linux扩展
  • 显示器关闭和鼠标键盘锁定工具
  • 《USB技术应用与开发》第四讲:实现USB鼠标
  • 量子计算与GPU的异构加速:基于CUDA Quantum的混合编程实践
  • 微信小程序 template 模版详解
  • React 与 Vue 虚拟 DOM 实现原理深度对比:从理论到实践
  • 青少年编程与数学 02-018 C++数据结构与算法 11课题、分治
  • IPOF方法学应用案例:动态电压频率调整(DVFS)在AIoT芯片中的应用
  • 【Hive入门】Hive动态分区与静态分区:使用场景与性能对比完全指南
  • zookeeper在kafka中起什么作用?
  • 模板引擎语法-算术运算
  • BT169-ASEMI无人机专用功率器件BT169
  • Netmiko 源码解析
  • Gewechat启动启动报错
  • 计算机网络 | 应用层(3)-- 因特网中的电子邮件
  • PCL绘制点云+法线
  • 2025.04.26-饿了么春招笔试题-第三题
  • 网络原理 ——TCP 协议
  • Spring Boot 连接 Microsoft SQL Server 实现登录验证
  • 开源AI智能名片链动2+1模式S2B2C商城小程序源码赋能下的社交电商创业者技能跃迁与价值重构
  • 基于大模型底座重构司法信息系统
  • 软件设计原则
  • C语言中宏的高级应用