服务器存储选型:HDD、SSD 与 NVMe 怎么选

服务器选型时,CPU 和内存最受关注,但存储往往是真正的性能瓶颈:CPU 可以等,慢盘却会让整个应用卡住。本文从介质、指标、RAID 到容量规划,给出服务器存储的完整选型方法。

三种介质的定位

介质 顺序吞吐 随机 IOPS 延迟 单位成本 适用
HDD(7200rpm) ~200MB/s 低(100-200) 高(ms 级) 最低 大容量冷数据、备份
SATA SSD ~500MB/s 中(万级) 低(亚 ms) 通用系统盘、Web 数据
NVMe SSD 3-7GB/s 高(十万级) 极低(几十 µs) 数据库、热数据、缓存
  • 顺序吞吐:适合大文件读写(视频、备份、日志)。
  • 随机 IOPS:数据库、消息队列这类"大量小请求"最吃这个指标。
  • 延迟:对交互型应用(下单、搜索)体验影响最直接。

用命令实测,而不是看宣传

判断一台服务器存储的真实水平,与其信参数表,不如上手测。先看盘和挂载情况:

lsblk -o NAME,SIZE,ROTA,TYPE,MOUNTPOINT
df -h

lsblkROTA 列为 1 表示机械盘、0 表示固态盘,一眼就能看出厂商是否把型号换成了次一档的盘。要测随机 IOPS 和延迟,用 fio 最直接:

fio --name=randread --rw=randread --bs=4k --size=1G \
    --numjobs=8 --runtime=30 --group_reporting

跑出来的 iopsclat(完成延迟)才是数据库真正关心的数字。如果 4K 随机读 IOPS 只有几百,说明这块盘不适合跑数据库;顺序速度再好看也没用。

按负载选盘

  • 操作系统/系统盘:NVMe 起步,开机与软件加载明显更快。
  • 数据库:NVMe 或高性能 SSD,重视随机 IOPS;内存充足时数据库部署调优能进一步减少磁盘压力。
  • Web 静态资源:SATA SSD 即可,CDN 兜底(CDN 加速)。
  • 备份/归档:HDD 性价比最高,见云服务器备份策略

RAID 怎么选

RAID 通过多盘组合提升性能与容错。常用等级:

等级 最小盘数 容量利用率 容错 特点
RAID 0 2 100% 纯性能,坏一块全丢
RAID 1 2 50% 1 块 镜像,适合系统盘
RAID 5 3 (n-1)/n 1 块 分布式奇偶校验
RAID 6 4 (n-2)/n 2 块 双奇偶校验
RAID 10 4 50% 每组 1 块 镜像+条带,兼顾性能与安全

决策:系统与重要数据用 RAID1;需要容量与容错平衡用 RAID5/6;数据库与高 IO 负载用 RAID10;只有可再生的临时数据才考虑 RAID0。具体硬件搭配见独立服务器选型

真机搭建 RAID 时(如两块 NVMe 组 RAID1),常用 mdadm:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/nvme0n1 /dev/nvme1n1
echo 'DEVICE /dev/nvme*' | tee /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

创建前务必确认磁盘上没有数据——RAID 创建过程会覆盖分区表。云环境里很多厂商用分布式存储模拟 RAID 语义,这时更该关注的是厂商的副本数与可用性 SLA,而不是本机 mdadm 参数。

块、文件与对象存储

云环境下还要区分存储类型:

  • 块存储(Block):挂载给单台服务器当磁盘,适合数据库。
  • 文件存储(File/NFS):多台机器共享,适合共享目录与集群。
  • 对象存储(Object/S3):海量非结构化数据、静态资源,成本低、易扩展,适合备份与媒体。

容量与性能规划

  • 容量按"当前用量 × 增长倍数 × 冗余(RAID 损耗)"估算,预留 30-50% 余量。
  • 性能以 P95 随机 IOPS 为准,别只看顺序读。
  • 区分"热数据(NVMe)"与"冷数据(HDD)",用分层存储控成本。
  • 快照与备份策略见云服务器快照与备份网站备份策略

别忘了闪存寿命(TBW)

SSD 有写入寿命上限,用 TBW(总写入字节数)衡量。同一块 NVMe 盘,企业级(TLC/MLC,TBW 高)与消费级(QLC,TBW 低)价格相近但寿命差数倍。选型要点:

  • 数据库、日志这类"持续写入"负载,务必选企业级 SSD,并按"每日写入量 × 3-5 年"核对 TBW 是否够用。
  • 只读为主的 Web 静态资源,消费级 SSD 也能胜任。
  • 频繁刷写的缓存盘,宁可小一点也要高 TBW,避免提前报废。

容量估算示例

假设一个日活 1 万的电商站:商品图 + 数据库合计约 200GB,按年增长 1.5 倍、RAID1 损耗 50% 计算,起步容量应为 200GB × 1.5 × 2 ≈ 600GB,再预留 30% 余量后选择 1TB NVMe 系统盘 + 独立数据盘较为稳妥。

这个例子也能反过来用:如果预算有限,可以把商品图这类静态资源挪到对象存储,数据库单独放一块 NVMe 数据盘,系统盘用中等容量的 NVMe,整体成本能比"全上大容量 NVMe"低 30%-40%,而访问体验几乎不变。存储选型不是单选题,热、温、冷数据各归其位,才能把钱花在刀刃上。

常见误区

  1. 用顺序速度(如"读取 500MB/s")判断数据库体验——数据库看随机 IOPS。
  2. 忽略 RAID 容错,数据丢失才后悔。
  3. 全上 NVMe 不加规划,热冷不分,成本失控。
  4. 只看容量不看 TBW,日志型负载提前写穿闪存。

常见问题

买的时候该优先看 IOPS 还是容量? 先看负载:数据库看 IOPS,备份归档看容量。系统盘和数据盘要分开吗? 建议分开,系统盘坏了不影响数据,重装也更快。RAID5 和 RAID10 到底选哪个? 对数据库这类高 IO 负载,RAID10 更稳;对容量优先的普通文件存储,RAID5/6 更划算。SSD 会突然坏掉吗? 有健康度指标(如 smartctl -a 里的 Wear_Leveling_Count),定期巡检能提前发现写穿风险。

参考:RAID(Wikipedia)https://en.wikipedia.org/wiki/RAID;NVMe 规范 https://nvmexpress.org/;fio 文档 https://fio.readthedocs.io/;mdadm 手册 https://raid.wiki.kernel.org/