这一次,我才真的懂了NVMe

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