存储阵列选型及读写性能评估,不能只看厂商标注的峰值速度。先确认业务产生什么读写、能接受多长响应时间,再用相同数据和测试条件比较设备。面向 PostgreSQL 的在线交易库,与保存备份文件的存储库,性能重点就不同。
先把工作负载说清楚
记录容量、增长速度、读写比例、并发数,以及数据是连续读写还是随机访问。数据库常见小块随机读写,需关注 IOPS 和时延;备份、视频归档等大文件任务,更看重持续吞吐量。若有业务高峰,也要记录高峰期的并发和持续时间,不能只按日均负载配置。
可从应用监控、数据库统计或现有存储日志整理这些数据。缺少历史记录时,先在测试环境模拟预计负载,并标明测试数据规模和运行时长。
按保护方式和介质比较
RAID 的容量与写入取舍
RAID 10 通过镜像和条带化提供较直接的随机写入性能,代价是同容量磁盘的可用原始容量约为一半,另需预留热备盘或重建空间。RAID 6 可容忍同一组内两块盘故障,容量利用率通常高于 RAID 10,但校验计算会增加写入开销;重建时性能也可能下降。选哪种方式,要结合故障风险、容量预算和应用对写入的要求,不能把 RAID 当作备份。
机械盘、固态盘与缓存
机械盘适合成本敏感、以大文件顺序读写为主的场景;固态盘通常更适合随机访问和低时延需求,但需核对耐久度、可用容量及持续写入表现。控制器缓存能改善部分突发写入,前提是断电保护等机制符合要求。压缩、去重和缓存效果受数据类型与读写模式影响,测试时应说明是否启用。
用一致方法做读写性能评估
存储阵列选型及读写性能评估应在相同的容量配置、RAID 级别、接口、缓存策略和并发条件下进行。可以采用 fio 等常见 I/O 测试工具,但测试数据应写入独立测试卷,避免覆盖生产数据;测试前确认设备状态和空间,并遵循厂商的安全操作建议。
- 准备负载:分别测试小块随机读、随机写和大块顺序读写。4 KiB 随机访问可用于观察数据库类负载表现,128 KiB 顺序读写可用于观察大文件传输;块大小应按实际应用调整。
- 逐步增加并发:从低并发开始,逐档增加队列深度或并发任务,记录 IOPS、吞吐量及平均和高百分位时延。不要只挑最好看的单项峰值。
- 测试持续状态:运行到性能趋稳,并单独观察缓存耗尽、后台重建或快照等条件下的表现。短测可能主要反映缓存速度,不代表长时间持续写入能力。
- 复核真实应用:在隔离测试环境运行数据库查询或备份恢复流程,记录软件版本、数据量和并发设置,再与合成测试结果交叉验证。
时延没有适用于所有业务的统一合格线。在线事务可把毫秒级响应作为评估方向,并按应用的高百分位要求设定验收目标;实时性要求更高的业务应以自身 SLA 为准。测试结果会受控制器、主机连接、网络、缓存、盘数和数据可压缩性影响,不能脱离环境横向照搬。
把结果落到选型清单
最终比较可用容量、扩展方式、故障恢复能力、维护窗口和持续负载表现,并确认控制器或单盘故障时的降级影响。存储阵列选型及读写性能评估还应纳入快照、复制和备份恢复的实际开销:保护功能会占用容量或带宽,需在测试中按计划启用。采购前把业务负载、目标时延、最低持续吞吐量和故障场景写入验收条件,避免仅凭型号或峰值参数决策。
常见问题
IOPS 越高越好吗?
不一定。只有块大小、读写比例和并发条件接近业务实际时,IOPS 才有比较意义;时延同样重要。
RAID 能代替备份吗?
不能。RAID 主要应对部分磁盘故障,无法防止误删、勒索软件或整套设备损坏,应另设独立备份。
测试多久才有参考价值?
需覆盖缓存趋稳后的持续读写阶段。具体时长取决于设备缓存、数据规模和负载,短时峰值不宜作为唯一依据。
阵列性能不够,先加盘还是换固态盘?
先定位瓶颈。若受随机访问限制,固态介质可能更合适;若受并发或带宽限制,增加磁盘或调整连接也可能有效,需通过同条件测试确认。