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

pool存储池详解与pg数目计算

一、Pool 存储池详解

1. Pool 核心概念

  • 定义:Pool 是一组对象(Object)的逻辑集合,类似 LVM 的卷组(VG),是 Ceph 数据存储与管理的基本单位。

  • 作用:

    • 隔离数据:不同业务、不同用户、不同数据类型(块设备 RBD、对象网关 RGW、文件系统 CephFS)使用独立 Pool。
    • 独立策略:每个 Pool 可单独配置副本数、PG 数量、CRUSH 规则、压缩、快照、纠删码等Ceph。
    • 权限控制:Pool 可绑定用户、密钥,实现细粒度访问控制。

2. Pool 两大类型(核心)

(1)副本池(Replicated Pool)—— 默认类型

  • 原理:每个对象存储 N 份副本(主副本 + 从副本),默认 size=3
  • 特点:
    • 高可用:允许最多 size-1 个 OSD 故障而不丢数据Ceph。
    • 性能好:读写直接、延迟低、支持快照、克隆、恢复。
    • 空间开销大:可用空间 = 总空间 / 副本数。
  • 适用RBD(块存储)、CephFS 元数据池、关键业务数据

(2)纠删码池(Erasure Coded Pool)—— 空间节省型

  • 原理:将对象拆分为 K 个数据块 + M 个校验块(K+M),分布在不同 OSD 上。
  • 特点:
    • 空间高效:可用空间 ≈ 总空间 × K/(K+M)(如 K=4, M=2 → 66% 利用率)。
    • 容错:允许最多 M 个 OSD 故障Ceph。
    • 性能略低:读写需编码 / 解码、延迟较高、不支持快照 / 克隆。
  • 适用冷数据、归档、大容量对象存储(RGW)、非关键数据

3. Pool 核心属性(必懂)

  • size:副本数(副本池)或 K+M(纠删码池)Ceph。
  • pg_num:Pool 的 PG 总数(关键参数)Ceph。
  • crush_rule:数据分布规则(决定 OSD 选择策略)Ceph。
  • min_size:最小可用副本数(故障时仍可读写)Ceph。
  • quota:容量 / 对象数配额Ceph。
  • compression:数据压缩(zstd/lz4)Ceph。

4. 默认 Pool(部署后自动创建)

  • rbd:块存储默认池(RBD 镜像)。
  • cephfs_data:CephFS 数据池。
  • cephfs_metadata:CephFS 元数据池。
  • .rgw.root:对象网关(RGW)根池。


二、PG原理

1. PG 是什么

  • PG 是 Pool 内部的逻辑分片,将对象按哈希映射到 PG,再通过 CRUSH 算法将 PG 映射到 OSD 集群Ceph。
  • 核心作用:
    • 数据分布:将对象均匀分散到 OSD,避免热点Ceph。
    • 副本管理:一个 PG 对应一组 OSD(主 OSD + 副本 OSD)Ceph。
    • 数据恢复:OSD 故障时,PG 可快速重建副本Ceph。

2. PG 与 Pool/OSD 关系

  • Pool → PG:一个 Pool 包含多个 PG(pg_num)Ceph。
  • PG → OSD:一个 PG 映射到 size 个 OSD(副本池)Ceph。
  • OSD → PG:一个 OSD 承载多个 PG(建议 50–100 个)。

3. PG 数量关键影响

  • PG 太少:数据分布不均、热点、恢复慢Ceph。
  • PG 太多:元数据开销大、内存占用高、集群负载重Ceph。


三、PG 数目计算公式

1. 核心公式(通用)

PG 总数(单 Pool) = (OSD 总数 × Target PG/OSD × 数据占比) / Pool Size

  • 参数说明:
    • OSD 总数:集群所有 OSD 数量。
    • Target PG/OSD建议 100(小型集群 50–100;大型集群 100–200)。
    • 数据占比:该 Pool 占集群总容量比例(默认 100%)。
    • Pool Size:副本数(副本池)或 K+M(纠删码池)。

2. 简化公式(最常用)

PG 总数 = (OSD 总数 × 100) / Pool Size


3. 关键规则(必遵守)

  • PG 数必须是 2 的幂(2, 4, 8, 16, 32, 64, 128, 256, 512...)。
  • 向上取整:结果不是 2 的幂时,取最接近的更大 2 的幂
  • 总 PG 上限所有 Pool PG 总和 ≤ OSD 总数 × 100


四、计算示例(实战)

场景 1:副本池(3 副本)

  • 集群:10 个 OSD
  • Pool:副本池,size=3
  • 计算:
    1. PG = (10 × 100) / 3 ≈ 333.33
    2. 向上取 2 的幂:512
  • 结果pg_num=512

场景 2:纠删码池(K=4, M=2)

  • 集群:20 个 OSD

  • Pool:纠删码池,size=6(4+2)

  • 计算

    1. PG = (20 × 100) / 6 ≈ 333.33
    2. 向上取 2 的幂:512
  • 结果pg_num=512


场景 3:多 Pool 规划

  • 集群:16 个 OSD

  • Pool A:副本池,size=3(占 60%)

  • Pool B:副本池,size=2(占 40%)

  • 计算:

    • Pool A:(16 × 100 × 0.6) / 3 = 320 → 512
    • Pool B:(16 × 100 × 0.4) / 2 = 320 → 512
  • 结果:A=512,B=512


五、PG 数量最佳实践

1. 建议范围

  • 小型集群(<20 OSD)50–100 PG/OSD
  • 中型集群(20–100 OSD)100 PG/OSD
  • 大型集群(>100 OSD)100–200 PG/OSD

2. 避免问题

  • PG 太少:数据分布不均、热点、恢复慢Ceph。
  • PG 太多:元数据膨胀、内存高、CPU 占用高Ceph。

3. 调整命令

创建 Pool

ceph osd pool create <pool-name> <pg-num> <pgp-num> replicated

修改 PG

ceph osd pool set <pool-name> pg_num <new-pg-num>
ceph osd pool set <pool-name> pgp_num <new-pg-num>
http://www.jsqmd.com/news/658668/

相关文章:

  • 从零上手Apache Zeppelin:一站式交互式数据分析平台实战
  • 宝塔面板SSH提示连接被拒绝_检查服务器端口开关
  • 深度学习之移动端部署(一)--MobileNetV1 轻量化设计解析
  • 5分钟免费解锁Cursor AI Pro完整功能:新手也能轻松掌握的终极指南
  • Qwen3-32B智能问答系统搭建:基于API的快速开发指南
  • Android Studio中文界面汉化指南:3分钟打造高效开发环境
  • 告别CPU搬运工:手把手教你用Exynos 4412的PL330 DMA实现内存到串口的高速传输
  • 三维空间平面方程的四大形式:从定义到几何意义的完整解析
  • ANSYS面载荷施加避坑指南:SFL、SFA、SFE命令的区别与SFFRAN转换时机
  • AI重塑短剧成本结构,500-1500元收脸背后演员与素人各有算盘
  • mysql如何进行全量数据库备份_mysqldump工具的使用技巧
  • 缠论插件终极指南:3步实现专业级K线结构可视化
  • 怎么使用单元测试提升代码质量
  • CN3136 400毫安可太阳能供电的单节磷酸铁锂电池充电管理芯片
  • 生成式AI应用搜索排名暴跌?5个致命误区正在毁掉你的流量,立即排查!
  • 幻境·流金入门必看:DiffSynth-Studio+玄金美学环境搭建详解
  • 深入剖析Linux信号处理:从signal到sigaction的进阶实践
  • 图解6G:从太赫兹到智能反射面,揭秘构建全空间覆盖网络的八大技术支柱
  • Redis连接池调优实战:从JedisConnectionException到稳定运行的完整配置指南
  • 海报颜色选择指南:选对色彩,让海报更具吸引力
  • 如何大幅提升 Google Sheets 数据库更新脚本的执行效率
  • PLM系统在环保合规设计中的关键作用与实施路径
  • 51单片机定时器中断配置避坑指南:为什么你的数码管时钟总是走不准?
  • 别再只用Image Asset了!Android Studio图标生成的隐藏技巧与实战避坑
  • 端到端 RAG 实战:用 LangChain 搭建 PDF 问答系统
  • BMP388 vs. BMP390怎么选?从数据手册到实测,聊聊无人机气压计选型与性能调优那些坑
  • SQL在分组聚合时如何减少内存消耗_优化GROUP BY查询计划
  • 避坑指南:你的R语言样条回归结果可靠吗?从模型诊断到图形解读
  • 从SAD到SGBM:双目立体视觉核心匹配算法演进与实战解析
  • 从编译到心跳:手把手搞定libwebsockets v4.0的WSS加密连接与保活机制