两个参数划定边界
副本池用副本数表示每个对象保存几份,用最小可写副本数表示至少有几份可用时才允许写入。两者共同定义可用性边界:三副本配两副本可写时,可以容忍一块盘故障继续服务;若把最小可写数降到一,副本不足时仍会被判为可写,数据安全边界随之收窄。
基本信息
| 池类型 | 副本池与纠删码池,创建时决定 |
|---|---|
| 副本数 | 常规三副本,两副本省空间但可用性下降 |
| 最小可写数 | 低于该值会拒绝写入,常见取副本数减一 |
| 归置组 | pg_num 与 pgp_num 决定分布粒度 |
| 规则绑定 | 池可绑定特定规则,限定介质与故障域 |
| 应用类型 | 建议标记为 rbd、cephfs 或 rgw,便于识别与调优 |
典型使用场景
- 新建业务池:按数据重要性选择副本数与最小可写数
- 容量紧张:评估能否用纠删码替代三副本
- 故障窗口评估:确认掉一块盘时业务是否仍可写
- 介质隔离:把高 IO 池绑定到高性能设备类别
- 核对既有池:确认参数与规划一致,避免被临时改动
建池与参数核对
建池与参数核对
ceph osd pool create rbdpool 128 128 replicated # 建副本池
ceph osd pool set rbdpool size 3 # 设置副本数
ceph osd pool set rbdpool min_size 2 # 设置最小可写副本数
ceph osd pool get rbdpool size # 核对副本数
ceph osd pool ls detail # 汇总各池参数
ceph osd pool application enable rbdpool rbd # 标记应用类型参数取舍对照
| 参数 | 常见取值 | 取舍要点 |
|---|---|---|
| 副本数 | 2 或 3 | 三副本更稳,两副本省空间但可用性下降 |
| 最小可写数 | 副本数减一 | 取一会在副本不足时仍接受写入,风险显著 |
| pg_num | 按 OSD 与副本数估算 | 只能增加,建池时就要算好 |
| 绑定的规则 | 按介质或故障域选择 | 限制选点范围,改规则会触发迁移 |
| 应用类型 | rbd、cephfs、rgw | 影响自动调优与运维识别 |
纠删码池空间效率更高,但对延迟与小对象不友好,部分上层能力还依赖副本池。选择前需结合业务的读写特征与上层组件的约束共同判断。
把最小可写副本数设为一,会在副本严重不足时仍允许写入,一旦再损失副本就可能造成不可恢复的数据缺口。生产池通常不应低于副本数减一。
改动前先看影响范围
修改副本数或绑定规则都会触发数据重分布,影响范围可能覆盖整个池。调整前评估剩余空间是否足以承载新增副本,并确认变更窗口与限流策略,避免在业务高峰发起大规模迁移。