NVMe协议自诞生来一直是业界的热点话题,它到底是什么?它的出现给存储带来了什么?【3步读懂端到端NVMe】系列专栏将从NVMe协议、NVMe SSD硬盘和端到端NVMe的存储组网三步带你一起解密!
智能时代闪存是大势所趋,各行各业都在为业务加速,若干年前SSD盘的出现给存储带来革命性的改变,可SSD盘的性能却没有得到最大的释放。由于SSD本身的物理特性,其数据的访问已经非常快速,但在计算机与设备连接的接口和协议上却无法突破瓶颈,就像大力水手没了菠菜,空有一身力气却无法释放洪荒之力。
协议作为信息交换的通信规则,对于数据存储至关重要。传统的SAS协议中,复杂的系统架构、过多的协议解析、有限的队列并发能力,成为限制SSD能力充分发挥的瓶颈。
NVM Express组织由此制定了NVMe协议标准:
首先去掉了SAS系统中的IOScheduler和SCSI等复杂的协议层,降低协议开销
其次减少了交互次数(对比SAS,典型写命令交互次数从4次降低到2次)
最后,其成熟的多队列机制,也更适合高性能设备使用
这就相当于NVMe比单兵作战的SAS少走弯路的同时,还多生出了三头六臂,自然是快上加快。如果说SAS是翻越崇山峻岭缓慢前行的单辆货车,NVMe则是在康庄大道一骑绝尘的“超跑”车队。

NVMe的出现,使存储整机设备性能得到极大提升,与此同时,存储系统的性能瓶颈得以从盘上转移到协议和控制器上。

2种协议对比示意图
除此之外,高扩展性也是衡量存储应用的重要标准,原始的NVMe协议基于PCIe作为底层协议,扩展性问题突出,最大仅能支持到288盘位。
为解决NVMe over PCIe的扩展性问题,NVM Express组织制定了NVMeover Fabric标准,支持把NVMe映射到多个Fabrics传输选项,包括FC、InfiniBand、RoCE 、iWARP等。NVMe over Fabric 使用Fabric网络来承载NVMe协议,使得高性能、低延迟的远程访问存储数据成为可能,从而极大提升了NVMe网络的扩展性。
华为率先将NVMeover Fabric应用到OceanStor全闪存中,大幅提升性能的同时也解决了扩展性的问题,OceanStor Dorado 18800基于NVMe over Fabric已实现最大扩展至9600块盘。
【华为端到端NVMe阵列】
前端提供兼容用户已有FC网络、降低开销提升性能的FC-NVMe和基于以太网的RDMA标准、提供极低时延的前端网络连接的NVME over RoCE
后端采用NVME over RoCE,提供高达每引擎800盘的后端网络及系统8坏7的高可靠能力
同时,为避免对业务和存储CPU产生影响,存储性能越高,在开启重删压缩、突发硬件故障等各种特殊情况下能否维持性能的稳定、减少抖动就愈发关键。就像飞机,不仅要飞得高,也要飞得稳,尤其在突发意外时,更不能出现骤然下降的情况,否则会对乘客和机舱都产生极大危害。因此,华为针对基于NVMe协议的硬盘/框的高可靠和稳定也做出了很多“黑科技”。
首先是“真”双端NVMeSSD硬盘,任何一个链路/端口异常不会导致另一个端口的IO受到影响,使得故障快速接管并维持性能稳定
其次,NVMe SSD硬盘完善的内部PCIe故障处理机制,使得在暴力热拔插等各种异常情况下,不会对总线下的其他硬盘或者CPU造成影响
最后,华为智能硬盘框重构卸载技术使得系统在中高负载下,1.5小时/TB重构能力下的同时,对主机I/O响应时延的影响低于5%
NVMe不仅要快,还要易扩展、高可靠才行,下期我们将一起探索基于NVMe的SSD硬盘—Palm盘的秘密!
[注释]
SAS(Serial Attached SCSI),串行连接SCSI接口
NVMe(Non-Volatile Memory Express),或称非易失性内存主机控制器接口规范