4. 存储容量与性能规划方法
数据库存储规划的核心,是把“未来某一天数据库会变成多大、需要多快”翻译成今天可采购、可配置、可验证的容量与性能参数。它包含两条并行主线:容量线回答“要留多少空间”,性能线回答“要留多少 IOPS、带宽和时延余量”。两条线都必须基于增长趋势、备份保留、快照开销和性能余量四个输入,而不是按当前占用简单乘一个系数。
一、容量规划:从当前占用到可分配容量
容量规划的第一步是建立“逻辑数据量 → 物理占用 → 可分配容量”的换算链。以某 OLTP 数据库为例(以下均为教学示例参数):当前数据文件逻辑大小 8 TB,索引 2 TB,合计逻辑数据 10 TB。Pure Storage 阵列启用数据缩减后,实测缩减比约 3:1,则物理占用约 3.3 TB。但规划不能只看这一层,还要叠加三类开销。
增长趋势:按过去 12 个月月度采样,数据量从 6.4 TB 增至 10 TB,月均增长约 0.3 TB,年化增长率约 56%。规划周期取 24 个月,则 24 个月后逻辑数据约 10 + 0.3×24 = 17.2 TB。若增长率不稳定,应取近 6 个月与 12 个月增长率的较大值,避免低估。
备份保留:若采用阵列快照做本地备份,保留 7 天、每天 2 次,共 14 个快照。Pure Storage 快照为元数据级指针,初始几乎不占空间,但源卷数据变更后,旧快照指向的旧数据块需保留。按日均变更率 8% 估算,14 个快照的额外占用约为 17.2 TB × 8% × 14 ≈ 19.3 TB(逻辑口径),这是最容易被忽略的部分。
快照与克隆开销:若还用于测试库克隆、DevOps 环境,每个克隆按 20% 数据量估算,3 个克隆约 17.2 × 20% × 3 ≈ 10.3 TB。加上快照,逻辑侧总需求约 17.2 + 19.3 + 10.3 ≈ 46.8 TB。再按 3:1 缩减比折算物理占用约 15.6 TB。
性能余量与安全水位:阵列不应长期运行在 85% 以上容量,否则快照、重建、扩容都会受限。因此可分配容量 = 物理需求 ÷ 目标水位。取 75% 水位,则需配置 15.6 ÷ 0.75 ≈ 20.8 TB,向上取整为 24 TB 可用容量。这个数字才是采购和卷配置的依据。
二、性能估算:IOPS、带宽与时延的联动
性能规划不能只算一个 IOPS 数字。以同一 OLTP 示例为例:峰值 TPS 8000,每个事务平均产生 6 次物理 IO,则峰值 IOPS = 48,000。读写比 7:3,读 IOPS 33,600、写 IOPS 14,400。若平均 IO 大小 16 KB,则峰值带宽约 48,000 × 16 KB ≈ 750 MB/s。这两个数字分别对应阵列的 IOPS 能力和前端端口带宽能力,必须同时满足。
时延是第三个约束。Pure Storage 全闪阵列在正常负载下读时延通常在亚毫秒级,但规划时应设定明确目标:OLTP 读 P95 < 1 ms、写 P95 < 2 ms、混合 P99 < 5 ms。时延不是独立算出来的,而是通过“目标时延 → 可承受队列深度 → 所需 IOPS”反推。若实测时延随负载上升明显,说明已接近阵列或卷的 IOPS 上限,此时加容量不一定能解决,需要检查热点卷分布、快照密度和主机多路径配置。
性能余量的取值需要区分场景:核心 OLTP 建议预留 30%~40%,因为故障切换、批量任务、备份会叠加负载;报表与分析库可预留 20%~30%;开发测试环境可放宽到 10%~20%。余量不是浪费,而是吸收突发和故障域切换的缓冲。
三、把容量与性能合并成一张规划表
实际规划时,建议把上述参数整理成可复核的表格,逐项标注来源和假设。以下为教学示例,数值均为合理假设,不代表任何真实环境实测结果。
| 规划项 | 示例取值 | 来源/假设 | 判断依据 |
|---|---|---|---|
| 当前逻辑数据 | 10 TB | 数据 8 TB + 索引 2 TB | 数据库统计信息 |
| 月均增长 | 0.3 TB | 近 12 个月采样 | 取 6/12 月较大值 |
| 规划周期 | 24 个月 | 业务规划假设 | 覆盖采购周期 |
| 快照开销 | ≈19.3 TB | 14 快照 × 8% 变更率 | 按逻辑口径估算 |
| 克隆开销 | ≈10.3 TB | 3 克隆 × 20% | 按测试环境需求 |
| 缩减比 | 3:1 | 实测或同负载参考 | 不按厂商标称上限 |
| 目标水位 | 75% | 安全运行水位 | 避免快照受限 |
| 峰值 IOPS | 48,000 | 8000 TPS × 6 IO | 业务峰值采样 |
| 峰值带宽 | ≈750 MB/s | 48,000 × 16 KB | 与备份带宽取大 |
| 时延目标 | 读 P95 < 1 ms | OLTP 服务等级 | 实测验证 |
| 性能余量 | 30% | 核心库建议值 | 吸收突发与切换 |
容量与性能规划的本质,是把不确定性显式化:增长趋势用采样区间约束,备份与快照用变更率约束,性能用余量和时延目标约束。只有每个数字都能追溯到来源和假设,规划结果才可复核、可调整,也才能在数据库真正增长时提前而不是被动地做出响应。