存储 · 详解

服务器中的 NVMe 对比 SSD 对比 HDD 用数据说话。

NVMe 对比 SSD 对比 HDD 其实是两个问题:数据存放在哪里,以及硬盘如何与处理器通信。机械硬盘把数据保存在旋转的盘片上,并移动磁头来读取。SATA SSD 把数据保存在闪存中,但仍沿用旧的磁盘接口。NVMe SSD 则将同样的闪存接到 PCIe 通道上,并使用专为闪存设计的协议,因此它能在微秒级响应,并同时处理数千个请求。

  • 数据来自规格表
  • 服务器工作负载
  • 核查于 2026 年 10 月

下文将介绍:NVMe 究竟是什么、每种接口的总线瓶颈、为什么随机读取对三者的区分远大于顺序速度、每种硬盘的故障方式,以及数据库、虚拟机主机或备份机分别需要哪种硬盘。

定义

NVMe 存储是什么,以及不是什么

NVMe(NVM Express)是一种协议,而不是一种存储介质。NVMe 硬盘就是 SSD:与 SATA SSD 中相同的 NAND 闪存,但连接到 PCIe 通道而非 SATA 端口,并使用专为闪存而非旋转磁盘设计的命令集。

所以“NVMe 对比 SSD”这个问题略有偏差。真正的对比是 NVMe 对比 SATA SSD:相同的介质,通往处理器的路径不同。路径决定了上限。SATA 及其驱动模型 AHCI 诞生于机械硬盘时代,那时一块磁盘一次只能处理一个请求。

SAS 介于两者之间。它是企业级磁盘接口,每通道线速是 SATA 的两倍,且为双端口,可同时连接机械硬盘和 SSD。在它们之间,我们的服务器产品线支持 NVMe、SATA 和 SAS 硬盘;下方的产品目录部分展示了哪种机型支持哪种硬盘。

  • 介质旋转盘片NAND 闪存
  • 接口SATASASPCIe
  • 协议AHCISCSINVMe
  • 外形规格3.5 英寸2.5 英寸M.2U.2E1.S

带宽

NVMe 对比 SATA SSD:总线决定上限

SATA SSD 的读取速度无法超过约 600 MB/s,因为 SATA III 的运行速率为 6 Gb/s,其中五分之一用于编码。而采用四条 PCIe 3.0 通道的 NVMe 硬盘拥有约 3.9 GB/s 的可用带宽,这就是常见的“快六倍”说法的由来。PCIe 4.0 将其翻倍,PCIe 5.0 再次翻倍。

每种存储接口的可用带宽上限,单块硬盘
接口单块硬盘上限
机械硬盘,7200 转盘片限制,而非总线~285 MB/s
SATA III,6 Gb/s~600 MB/s
SAS-3,12 Gb/s~1,200 MB/s
PCIe 3.0 x4,NVMe~3,940 MB/s
PCIe 4.0 x4,NVMe~7,880 MB/s
PCIe 5.0 x4,NVMe~15,750 MB/s

接口上限来自 SATA、SAS 和 PCI Express 规范,已扣除线路编码开销(SATA 和 SAS-3 为 8b/10b,PCIe 为 128b/130b)。机械硬盘数据来自当前 7200 转企业级规格表,外圈磁道。实际硬盘能达到的速度略低于其总线允许值。

顺序速度在复制大文件时很重要:恢复备份、迁移虚拟机镜像、读取视频。但对于大多数服务器工作负载,这并不是造成瓶颈的指标。下一节将讨论这一点。

延迟与 IOPS

随机读取是三种硬盘拉开差距的地方

数据库、邮件服务器或一组虚拟机需要读写分散在磁盘各处的小数据块。机械硬盘的每个请求都要等待磁头移动和盘片旋转到位;而闪存无需等待任何机械动作。这就是随机读取性能差距高达数千倍而非六倍的原因。

4.17 毫秒

7200 转盘片旋转半圈的时间,即正确扇区到达前的平均等待时间。加上磁头寻道时间,机械硬盘每秒只能完成几百次随机读取。

1 × 32

AHCI,SATA 驱动模型:一个命令队列,深度为 32 条命令。每个处理器核心都必须排队等待。

65,535 × 65,536

NVMe:最多 65,535 个 I/O 队列,每个队列深度可达 65,536 条命令。Linux 通常为每个核心分配独立队列,因此核心之间无需相互等待。

AHCI 将所有核心汇入一个队列;NVMe 为每个核心提供直达硬盘的独立队列 AHCI (SATA) 核心核心核心核心 一个队列,深度 32 NVMe (PCIe) 核心核心核心核心 每个核心一个队列
队列限制来自 NVM Express 基础规范和 AHCI 规范。

规格表讲述着同样的故事。当前 7200 转企业级机械硬盘标称每秒约 170 次随机 4K 读取。企业级 SATA SSD 标称接近 100,000 次。企业级 PCIe 4.0 NVMe 硬盘标称约一百万次。你自己的实际数值会更低,且取决于块大小和队列深度,因此请在你租用的机器上用 fio 进行测量,而不是轻信任何人的图表,包括我们的。

可靠性

每种硬盘是如何损耗的

机械硬盘因机械部件而失效:轴承、磁头、电机。闪存因使用而失效:每个单元能承受的写入次数有限。两者在一般情况下都不“更可靠”;它们的失效方式不同,你需要针对每种方式做不同的规划。

  • 机械硬盘:关注机械部件

    旋转的硬盘不在乎你写入了多少数据,但它确实在乎热量、振动和使用年限。SMART 计数器(例如重新分配扇区和待处理扇区)通常会在硬盘报废前发生变化。请将它们纳入你的监控。

  • 固态硬盘:关注写入量

    闪存耐久度在数据表中以 TBW(写入的总太字节数)或 DWPD(保修期内每日整盘写入次数)标注。使用 smartctl -a 或 nvme smart-log 读取磨损程度。读密集型的 Web 服务器永远不会达到该上限;繁忙的数据库日志则可能达到。

  • 断电保护是硬盘的一项功能

    用于在断电时刷新硬盘缓存的电容器,企业级固态硬盘(无论是 SATA 还是 NVMe)都会配备。它们不属于 NVMe 协议的一部分,许多消费级 NVMe 硬盘都缺少这一功能。如果你的数据库依赖同步写入,请检查你所获得硬盘的数据表。

  • RAID 和备份,无论使用哪种硬盘

    在 Linux 上,NVMe 硬盘通常使用 mdadm 或 ZFS 在软件层面做镜像,而不是放在 RAID 卡后面。当一块硬盘损坏时,镜像可以保持服务器正常运行。但这并非备份:被删除的数据表会在两块硬盘上同时被删除。

容量规划

服务器用 NVMe:哪些工作负载需要它

当工作负载涉及大量小型随机读写,或多个核心同时访问磁盘时,选择 NVMe。当数据在首次读取后主要驻留在内存中时,选择 SATA 固态硬盘。当你需要数太字节的容量并且以长时间连续读取为主时,选择机械硬盘。

哪种硬盘类型适合哪种服务器工作负载
工作负载硬盘原因
数据库:PostgreSQL、MySQL、MongoDBNVMe小型随机读取、每次提交都要等待的预写日志,以及大量并发连接。
虚拟机主机,Proxmox 或 KVMNVMe每个客户机的磁盘对主机来说都是随机 I/O,而且客户机会一起排队。
构建服务器、CI 运行器NVMe每次构建都要写入、读取和删除成千上万个小文件。
Web 和应用服务器SATA 固态硬盘或 NVMe代码和热数据在首次请求后就驻留在内存中;磁盘很少成为瓶颈。
媒体库、视频点播SATA 固态硬盘或 机械硬盘大文件从头到尾顺序读取。网络端口通常比磁盘更早成为瓶颈。
备份和归档机械硬盘长时间顺序写入、很少读取,以及每太字节最低的成本。

较大的服务器通常会混合使用:操作系统和数据库放在闪存上,海量数据放在同一机箱内的机械硬盘上。机械硬盘的每太字节成本仍然最低,这也是保留它们的主要原因。对于数据库机器,请参阅 SQL 独立服务器;对于虚拟机主机,请参阅 Proxmox 服务器。

来自产品目录的实时数据

我们的独立服务器所采用的硬盘

在我们的配置器中,3 条服务器产品线中的 18 条支持 NVMe 固态硬盘,单盘容量最高可达 3.84 TB。这些数据直接来自配置器的产品目录,并会随其更新而变动。

我们的独立服务器所支持的硬盘系列,包括服务器产品线数量和容量范围
硬盘接口服务器产品线单盘容量
NVMe SSDPCIe, NVMe protocol3238 GB to 3.84 TB
SAS SSDSAS915.3 TB to 30.72 TB
SATA SSDSATA, 6 Gb/s1532 GB to 15.36 TB
SAS hard driveSAS, spinning disk12 TB
SATA hard driveSATA, spinning disk7500 GB to 2 TB

支持 NVMe 的机器

每台机器都会打开其配置器,你可以在其中选择硬盘、数量和阵列。

解答

NVMe 对比 SSD 对比 HDD:常见问题

服务器值得用 NVMe 吗?

对于数据库、虚拟机主机和构建服务器来说,值得:它们依赖随机 I/O,而 NVMe 提供随机 I/O 的速度比机械硬盘快数千倍,比 SATA 固态硬盘快数倍。对于将工作集保存在内存中的 Web 服务器,SATA 固态硬盘的性能几乎相同。在围绕 NVMe 做规划之前,请确认机器支持 NVMe:并非每个机箱都有相应的插槽。

服务器用 SATA 还是 NVMe:我应该选择哪个?

如果服务器运行数据库、托管虚拟机或需要处理大量用户同时写入,请选择 NVMe。如果机器只支持 SATA 硬盘,或者工作负载较轻且以读取为主,请选择 SATA 固态硬盘。如果需要大容量(例如备份和归档),请选择 SATA 机械硬盘。

NVMe 比 SSD 更快吗?

NVMe 硬盘本身就是一种 SSD。更快的是接口:一块使用四条 PCIe 3.0 通道的 NVMe 固态硬盘带宽约为 3.9 GB/s,而 SATA 固态硬盘约为 600 MB/s,并且命令队列深度也大得多。在 PCIe 4.0 和 5.0 上,带宽每一代翻倍。

什么是 NVMe 存储服务器?

指硬盘为通过 PCIe 连接的 NVMe 固态硬盘的服务器,通常采用 U.2、E1.S 或 M.2 规格。它可以是一台在本地 NVMe 上运行数据库的单机,也可以是一台装满 NVMe 硬盘、通过网络与其他服务器共享存储的设备。

什么是 NVMe SAN,或 NVMe over Fabrics?

NVMe over Fabrics(NVMe-oF)通过 RDMA、光纤通道或普通 TCP,将 NVMe 命令集跨网络传输,而不是通过 PCIe 插槽。基于它构建的 SAN 让许多服务器能够以比 iSCSI 更低的开销使用共享闪存。我们的独立服务器将硬盘安装在机箱内部,这是延迟最低的方案,因为处理器和闪存之间没有网络。

NVMe 比机械硬盘快多少?

对于顺序读取,大约快 14 到 55 倍:一块 7200 rpm 的硬盘读取速度低于 300 MB/s,而 PCIe 3.0 到 5.0 的 NVMe 硬盘可达约 3.9 到 15.8 GB/s。对于随机 4K 读取,差距要大得多:机械硬盘每秒约 170 次,而企业级 PCIe 4.0 NVMe 数据表上的数字约为一百万次。

一台服务器可以同时使用 NVMe 和机械硬盘吗?

可以,前提是机箱同时有这两种硬盘的托架,并且控制器支持它们。常见的布局是将操作系统和数据库放在 NVMe 上,将海量数据放在机械硬盘上。并非每个机箱都能做到:小型刀片服务器通常只能容纳一两个同类型的硬盘。我们每台机器的配置器都会列出它支持的硬盘系列。

把数据库放在 NVMe 上

先选机器,再选硬盘。对硬盘拿不定主意?把问题发给在线聊天。AI 会在几秒内回复,如果你愿意,它还可以查询你的账户和机器,并应要求将你转接给工程师。

查看 NVMe 服务器