7. 容量与性能规划
本章目标
- 会算:裸容量 → 冗余 → full 水位 → 净可用容量
- 会估:给定硬件规格的 IOPS/带宽量级
- 会答:业务方问"这集群还能接多少业务"时,用数据回答
7.1 容量公式(一步步折损)
text
① 裸容量 = Σ(盘标称容量) 注意 TiB/TB 差 10%
② 折冗余 ÷ 副本数 或 × k/(k+m)(EC)
③ 折水位 × (1 - full_ratio) 默认 85%,即 ×0.85
④ 折元数据/预留 - WAL/DB 分区、快照、桶索引 ~ 5~10%
⑤ 净可用 = 业务真正能用的容量例:24 × 15.36TB HDD,EC 8+3:
text
① 368.6 TB → ② ×8/11 = 268 TB → ③ ×0.85 = 228 TB → ④ ×0.93 ≈ 212 TB 净可用规划铁律:永远用水位线管理(75% 告警、85% 高危),扩容决策提前一个采购周期 —— 第 6 章的 full 事故大多源于"看总量还有 20%"的错觉。
7.2 性能估算:量级心算法
不要指望算准,要指望算对量级、排除离谱方案:
text
集群读 IOPS ≈ 单盘 4K 随机读 IOPS × 盘数 × (1 - 拥挤折损)
集群写 IOPS ≈ 读 IOPS ÷ 副本数 ÷ 2(写路径主从串行折损,粗放系数)
集群带宽 ≈ min(Σ盘吞吐, 网卡带宽 × 台数 × 单位折损)例:12 台 × 10 × 3.84T NVMe(单盘 150k 读 IOPS,25G×2 网):
text
读 ≈ 150k × 120 × 0.7 ≈ 12.6M IOPS —— 但先看网络:1200k × 4KB/s = 4.8GB/s@4K 时
网卡先到顶?25G×2×12 台 × 0.7 ≈ 52GB/s 聚合 —— 4K 小 IO 场景 4.8GB/s << 52GB/s,盘是瓶颈
带宽场景:120 盘 × 1.5GB/s × 0.7 = 126GB/s?网卡 52GB/s 先到顶 —— 网是瓶颈结论随负载形态翻转(IOPS 型盘先饱和,带宽型网先饱和)—— 先问负载形态,再谈规划(第一篇特征化的复用)。
7.3 用 storplan 做选型演算
storplan.wutz.dev 把上述公式产品化:选方案(Ceph 全闪统一/混闪对象/GPFS/Weka/XEOS/VastData)→ 输入目标容量与读写带宽 → 得到推荐配置。用它做三件事:
- 校验手算:把 7.2 的手算结果与工具输出对比,理解工具的折损模型
- 方案对照:同一需求下 Ceph vs GPFS ECE 的节点数/成本差异
- 答辩素材:客户问"为什么是这个配置"时,每个数字有出处
7.4 PG 数与 pg_autoscaler
PG 太少 → 数据倾斜;太多 → 内存/CPU 开销大(每 OSD 建议 100~200 个 PG)。pg_autoscaler 按容量自动调整,但有个实战大坑(rook 手册点名):autoscaler 失效时所有 pool 的 PG 数停在 1,性能无法发挥 —— 巡检要盯 ceph osd pool autoscale-status,修复方法是给 pool 显式设 crush rule 与 pg_num 下限。
7.5 增长与水位管理(把时间加进规划)
text
容量时间线:当前 60% ──▶ 月增 3% ──▶ 8 个月后到 85% 高危线
⇒ 第 5~6 个月必须完成扩容(留 2 个月采购+实施缓冲)
性能水位同理:peak IOPS 达到实测上限的 60% 就该规划性能扩容/隔离一页纸规划报告模板(Lab 产出物):
- 需求:容量/带宽/IOPS/增长/RPO-RTO
- 配置:节点/盘/网/冗余策略
- 推导:7.1~7.2 公式各步数字
- 水位时间线与扩容触发点
- 风险与备选(含放弃方案及理由)
本章小结
- 容量四折损:冗余 → 水位 → 预留,净可用 ≈ 裸容量 × k/(k+m) × 0.85 × 0.93
- 性能先判负载形态:IOPS 型看盘、带宽型看网;手算法求量级不求精确
- storplan 用来校验、对照、答辩
- 规划必须有"时间轴":水位决定扩容启动点,不是容量百分比
自测
Quiz12 块 16TB HDD 做 3 副本,预留 7%,full ratio 85%。业务可用容量约为?
Quiz同一套硬件,为什么 4K 随机读场景与 1MB 顺序读场景的「先饱和资源」可能不同?
Lab · 写一份集群扩容建议书挑战
1. 设定业务场景:3 年内从 500TiB 净可用增长到 2PiB,peak 写带宽 20GB/s,混合负载。 2. 用 storplan 规划 Ceph 方案的节点数、盘位与网络,把每一步数字与 7.1/7.2 手算对照。 3. 用你实验集群的 fio 实测数据(第 3 章 Lab)校准单盘假设。 4. 按模板产出 7.5 的一页纸建议书(配置、水位时间线、风险与备选)。 5. **验收标准**:每个数字有出处(公式/工具/实测三选一),时间线上标出扩容触发月份。
📎 参考手册 ↗