passpark
作者passpark·2020-12-16 12:39
系统工程师·浪潮商用机器有限公司

FC-NVMe介绍及AIX 7.2支持

字数 4304阅读 4847评论 0赞 4

什么是NVMe

NVMe 全称为 Non-Volatile Memory Express ,是一种基于非易失性存储器的传输规范, NVMe 规范由包含 100 多家公司在内的工作小组所制定。认识了 NVMe 之后,我们看看它到底有什么优势,一个字总结,那就是 “ 快 ” 。形象的来说, NVMe 的出现解决了 SSD“ 肚子大 ” , “ 有货 ” ,却 “ 吐得不够快 ” 的问题。

对于闪存的普及,标准协议接口是非常重要的一环。 NVMe 规范提供了闪存访问的标准方式,充分利用 PCIe 通道的低延时和并行性,以及当代处理器、平台与应用的并行性,通过降低协议交互时延,增加协议并发能力,显著提高性能,在可控制的存储成本下,极大的提升固态硬盘的读写性能,从而进一步释放闪存的潜能,并推动全闪存在数据中心的普及。

传统的 SAS 协议是为机械硬盘设计,随着闪存介质的高速发展,以及全闪存存储系统对极致性能的追求, SAS 协议劣势越发明显,成为全闪存系统发展的短板。相比于 SAS-HDD , SSD 单盘的吞吐量、 IOPS 都有大幅的提升,时延降低到 100μs 的水平。 SSD 能力提升了,传输协议却成为了短板,怎么办? NVM Express 组织由此制定了 NVMe 协议标准,去掉了 SAS-HDD 系统中的 IO Scheduler 和 SCSI 等复杂的协议层,换成轻量级的 NVMe 协议。


NVMe 相比 SAS 的效率有很大的提升, NVMe 所需的每次 IO 的 CPU 周期少于 SAS 的一半;在相同的 CPU 周期下, NVMe 提供的 IOPS 是 SAS 的 2 倍。

SCSI 协议特点及其局限性

目前,基于 SCSI 的全闪存和混合阵列正成为数据中心的主流,但与此同时,一种为固态 PCIe 模块专门构建的非易失性存储器 (NVMe) 标准已经成为服务器连接 Flash 的一个新的高性能接口。 NVMe 通过低延迟和增强队列机制提供了更好的随机和连续性能,并增加了传统协议 ( 如 SAS) 应用程序的并行性。 SCSI 最初是一种并行通信协议 —— 任何熟悉将磁盘安装到服务器中的人都会记得带状电缆。随着 SAS 的发展,它转变为一个串行接口。光纤通道或以太网给服务器和存储之间提供了物理连接, SCSI 仍然充当高级存储通信协议。然而,业界开发的 SCSI 与 HDD 一起工作导致响应时间比系统内存和处理器慢几个数量级。因此,虽然我们可能认为 SSD 硬盘速度很快,但我们发现内部硬盘存在严重的性能问题。大多数 SATA 驱动器仍然基于 SATA 3.0 规范,接口限制为 6 Gbps 和 600 MBps 的吞吐量。 SAS 驱动器已开始转向提供 12 GBps 吞吐量的 SAS 3.0 ,但许多仍使用 6 Gbps 连接。

然而,对 SAS 和 SATA 来说,最主要的问题还是单个设备的并发 I / O 处理能力。 SAS 和 SATA 都不是用来处理多个 I / O 队列的。 AHCI 有一个深度只有 32 个命令的单一队列。 SCSI 相对好些,可以提供 128 到 256 个命令的单个队列。单队列但来的负面影响就是延迟。随着队列大小的增加,新请求延迟遇到的延时更大,因为他们必须等待其他请求完成。因为没有机械移动部件,固态硬盘驱动器的问题相对较少,单个 I/O 延迟较低,但单个队列是固态介质的瓶颈。

NVMe-oF 特点及优势

业界对接口问题的回答是 NVMe 在设备和网络层面取代 SCSI 。非易失性存储器使用 PCIe 总线 ( 而不是专用存储总线 ) 为内部连接的磁盘设备提供更大的带宽和更低的延迟连接。

NVMe 最大的变化是存储协议的优化。串行化 I / O 访问所需的内部锁定已经减少,而中断处理的效率已经提高。此外, NVMe 最多支持 65535 个队列,每个队列的队列深度为 65535 个。因此, NVMe 不只有一个队列,还为连接设备的 I/O 提供了大规模的并行性。

为了支持数据中心的网络存储,通过 NVMe over Fabric 实现 NVMe 标准在 PCIe 总线上的扩展,以此来挑战 SCSI 在 SAN 中的统治地位。 NVMe over Fabric 支持把 NVMe 映射到多个 Fabrics 传输选项,主要包括 FC 、 InfiniBand 、 RoCE v2 和 iWARP 。

FC-NVMe 技术及支持情况

光纤通道是面向 NVMe over Fabrics(NVMe-oF) 的 Fabric 传输选项,由 NVM Express Inc.( 一家拥有 100 多家成员技术公司的非营利组织 ) 开发的规范。其他 NVMe 传输选项包括以太网和 InfiniBand 上的远程直接内存访问 (RDMA) 。 NVM Express Inc. 于 2016 年 6 月 5 日发布了 1.0 版 NVMe-oF 。

国际信息技术标准委员会 (INCITS) 的 T11 委员会定义了一种帧格式和映射协议,将 NVMe-oF 应用到光纤通道。 T11 委员会于 2017 年 8 月完成了 FC-NVMe 标准的第一版,并将其提交给 INCITS 出版。

FC 协议 (FCP) 允许上层传输协议,如 NVMe ,小型计算机系统接口 (SCSI) 和 IBM 专有光纤连接 (FICON) 的映射,以实现主机和外围目标存储设备或系统之间的数据和命令传输。

与 SCSI 和 FICON 相比, NVMe 具有简化的寄存器接口和命令集,减少了输入 / 输出 (I/O) 堆栈的 CPU 开销,降低了延迟并提高了性能。 NVM Express Inc. 开发了适用于快速介质的 NVMe ,包括固态硬盘 (SSD) 和其他基于内存的技术。相比之下, SCSI 命令集是在较慢的硬盘驱动器 (HDD) 和磁带作为主要存储介质的时候设计的,而 FICON 则是为连接大型计算机和存储设备而设计的。

基于光纤通道的 NVMe 使用当前可升级的光纤通道技术,以支持 SCSI 和 NVMe 存储传输。这意味着客户只需通过适当的固件升级交换机即可使用他们现有的技术。在主机系统,主机总线适配器 (HBA) 必须支持 NVMe— 通常为 16 Gbps 或 32 Gbps 显然,存储设备也必须能够支持 NVMe 。

思科宣布其高端 MDS 9710 光纤通道 Director 支持 FC-NVMe 。 Brocade 已经在其 Gen6 32 Gbps 交换机中支持 NVMe ,包括最近宣布的 G610 。

下面截至 Brocade 官方对 FC-NVMe 的解释说明, 在 Brocade Gen6 , Gen7 的 fabric 中已经支持 NVMe , G630 交换机, FC32-64 Port Blade 支持 NVMe ,并且可支持 NVMe 和 SCSI 混合网络共存使用。

The Fibre Channel standard is a link level network transport that supports multiple protocols. Fibre Channel only needs new upper layer protocols (ULPs) to support NVMe over FC. The NVMe protocol is defined by the FC standards committee. Support for new ULPs needed by NVMe needs no changes to FC switching logic, which provides backward compatibility with existing FC switches. However, to support NVMe ULPs in the FC network, new OS and hypervisor device drivers are required along with new Gen 6 HBAs.

NVMe over Fibre Channel runs on existing Gen 7 and Gen 6 fabrics and can coexist with SCSI-based traffic in both cases. It is seamlessly integrated with Gen 6 fabrics IO Insight features on the Brocade G630 Switch and Brocade FC32-64 Port Blade.

根据 Gartner 的分析, 2018 年是 NVMe 元年,很多厂商推出 NVMe 产品。到目前为止,已经有多家厂商推出 NVMe 磁盘阵列了,如 EMC PowerMAX ,华为 Dorado 5000 v3 NVMe 版本, NetApp AFF A800 , IBM Flash System 900 , HPE Nimble AFA 等。

AIX 对 FC-NVMe 的支持情况

为了实现数据中心的 FC-NVMe 升级,主机层面也需要操作系统、软件驱动支持,目前在 AIX 7.2 TL5 版本,已经开始加入对 NVMe 磁盘阵列支持,当前还有一些限制条件,仅限于 Power9 硬件平台,需使用 32Gb 光纤卡,目前暂时只支持 FS9200 ,后续计划增加对更多磁盘阵列的支持。

以下是 K1 Power/AIX 对 FC-NVMe 支持情况的概要说明:

  1. 允许复用现有的 SAN 基础架构,在此基础上提供主机、存储侧 NVMe-oF 支持更新;
  2. 同一个主机侧光纤端口可以同时被用于 FCP (FC SCSI) 协议以及 FC-NVMe 协议;
  3. 同一个存储侧光纤端口可以同时被用于 FCP 协议以及 FC-NVMe 协议;
  4. 基于 32 Gb 光纤卡提供( #EN1A, #EN1B ) ;
  5. 提供原生多路径支持 FC-NVMe MPIO;
  6. 初期支持部分 IBM 存储( FS9200 ),再逐步扩展到其他存储产品
  7. FC-NVMe 方式启动支持 ( 要求微码版本在 FW950 以上 ) ;
  8. 计划在近期提供 NVMe-oF 虚拟化支持 1 ;

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广