当今的闪存驱动器存在一个鲜为人知的小秘密,那就是其中很多闪存仍在使用老式接口。 虽然 SATA 和 SAS 协议自最初推出之时已历经数代的发展,但它们仍然是基于数十年前针对传统磁碟式硬盘的设计理念。 这些传统协议成为了限制当今 SSD 发挥潜能的瓶颈。
NVMe 是专为 SSD 设计的崭新存储接口标准, 采用了大规模并行传输架构,可让当今的 SSD 发挥出全部性能潜力。 由于价格和兼容性的影响,NVMe 经过了一些时间才在市场上有所起色,现在终于获得了成功。
传统串行连接技术
SATA 仍然是当前最常见的存储接口。 无论是硬盘驱动器,还是日益盛行的闪存存储设备,大部分都是采用 SATA 接口来工作。 The latest generation of SATA - SATA III – has a 600 MB/s bandwidth limit. 虽然这个带宽足已满足日常消费类应用的需求,但对于企业服务器而言,还是远远不够。 即便是在 I/O 密集型的消费类应用场景下(例如视频编辑)也可能受限于这个带宽。
SATA 标准最初在 2000 年作为旧式 PATA 并行接口标准的串行替代标准而发布。 SATA 采用高级主机控制接口 (AHCI) 技术,单个命令队列的深度为 32 个命令。 此命令队列架构非常适合传统的磁碟式硬盘存储,但用于闪存时,却存在较多限制。
如果说 SATA 是消费类驱动器的标准存储接口,那么 SAS 则在企业应用中更为常见。 Released originally in 2004, SAS is also a serial replacement to an older parallel standard SCSI. Designed for enterprise applications, SAS storage is usually more expensive to implement than SATA, but it has significant advantages over SATA for data center use - such as longer cable lengths, multipath IO, and better error reporting. SAS 的带宽限制也更高,为 1200MB/s。
尽管 SAS 支持的队列深度为 254 个命令,大大多于 SATA 的 32 个,但和 SATA 相同,SAS 依然只支持单个命令队列。 虽然 SAS 具有更深的命令队列和更高的带宽限制,总体性能优于 SATA,但也远非理想的闪存接口。
NVMe - Massive Parallelism
NVMe 于 2011 年推出,从设计之初就充分考虑到闪存存储的需求。 NVMe 由多家存储公司联合开发,其主要目标是克服 SATA 和 SAS 对闪存性能造成的瓶颈。
如前所述,SATA 受限于 600MB/s 而 SAS 受限于 1200MB/s 带宽,与之相反,NVMe 是在 PCIe 总线上运行,其带宽理论上只受限于 PCIe 总线速度。 当前的 PCIe 标准每条通道提供 1GB/s 甚至更高带宽,而 PCIe 连接一般都会提供多条通道,其总线速度几乎从未对基于 NVMe 的 SSD 构成阻碍。
NVMe 为实现大规模并行计算而设计,提供多达 64,000 个命令队列,每个命令队列的队列深度高达 64,000。 这种并行计算非常适合闪存存储的随机存取特性,也适合当今计算机中的多内核、多线程处理器。 NVMe 的协议经过合理化设计,与 AHCI 相比,它的优化命令集可通过更少的操作完成更多的工作。 与 SATA 或 SAS 相比,NVMe 的 IO 操作需要的命令通常更少,从而能够减少延迟。 对于企业客户而言,NVMe 还支持很多企业存储功能,例如多路径 IO、可靠的错误报告和管理。
凭借高速度和低延迟的优势,加上处理高 IOPS 的能力,NVMe SSD 成为企业数据中心的一大热点。 非常重视低延迟和高 IOP 的企业(例如高频率贸易公司和数据库,以及网络应用托管公司)是最初尝试 NVMe SSD 技术的公司,也是非常忠实的支持者。
采用 NVMe 的障碍
虽然 NVMe 具有很高的性能,但从历史上来看,它也被视为一种成本相对较高的技术。 高成本影响了它在消费级存储领域的普及。 相对来说,当 NVMe 技术刚刚出现的时候,支持它的操作系统并不多,而且其价格高企,对一般消费者来说更加不具吸引力,不管怎样,很多消费者其实并不能用到其速度更快的这一优势。
但这一切正在改变。 NVMe SSD 的价格正在逐渐降低,在某些情况下,其价格甚至可与 SATA 驱动器相媲美。 原因不仅是市场的力量,也得益于新的技术创新,例如无 DRAM 型 NVMe SSD。
鉴于 DRAM 是 SSD 物料清单 (BoM) 成本中的大项,无 DRAM 型 SSD 成本可以降至更低,价格也更有竞争力。 随着 NVMe 1.2 发布,其主机存储缓冲机制 (HMB) 的支持使得无 DRAM 型 SSD 能够借用主机系统内存作为 SSD 的 DRAM 缓冲区,从而带来了更出色的性能。 无 DRAM 型 SSD 充分利用 HMB 支持,能够达到与基于 DRAM 的 SSD 相似的性能,同时节省成本、空间和能耗。
NVMe SSD 还比以往的协议更加节能。 NVMe 协议本身已经非常高效,但它运行的 PCIe 链路可能会消耗大量的待机功率。 新型 NVMe SSD 支持高效、自动的睡眠状态传输,让设备可以达到甚至低于 SATA SSD 的能耗水平。
所有这些都意味着,NVMe 比以往更加实用,可以用于各种各样的用例,包括大数据中心(由于 SSD 成本更低可以节省资本支出,又因为功耗更低可以节省营业费用),以及功率敏感的移动/便携应用设备,例如笔记本电脑、平板电脑和智能手机,这些现在都可以考虑使用 NVMe 技术。
满足速度需求
对于速度的追求在企业应用中是不争的趋势,但在消费类应用中,是不是真的需要 NVMe 提供的那种速度呢? 对于曾经安装过额外内存、购买过更大硬盘驱动器(或 SSD)、订购过更快互联网连接的任何用户而言,答案不言而喻。
如今的消费类用例尚未逼近 SATA 驱动器的极限,非常具有可能的一部分原因是 SATA 仍是消费类存储最常用的接口。 当前的视频录制和编辑、游戏和文件服务器应用程序,则已经开始迫近消费类 SSD 的极限性能,而今后的用例则必将推动其继续发展。 随着 NVMe 的价位现在逐渐接近 SATA,我们必须构建能够经受未来考验的存储产品。