0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

存储技术未来演进:NVMe over Fabrics (NVMeoF)

旺材芯片 来源:架构师技术联盟 2024-11-16 10:44 次阅读

众所周知,NVMe 是一个逻辑设备接口规范,NVM代表非易失性存储器(Non-Volatile Memory)的首字母缩略字,是固态硬盘(SSD)的常见的闪存形式。SSD 通常分为两类接口:SATA 和 NVMe。在需要兼容旧组件且性能不是首要考虑因素时,SATA 接口在新一代驱动器中依然可用。SATA 诞生于2000年,原本是为配备旋转盘片和磁头的传统硬盘设计的。

虽然这类设备能够提供稳定的数据吞吐量,但由于包含大量机械组件,每次读/写操作都会带来很明显的延迟。这些硬件上的局限也制约了SATA接口规范和其整体性能。

对于企业级应用,SAS 接口通常作为SATA的替代选择,两者都是ATA和SCSI接口的进化版,它们都利用串行链路发送既有命令。无论使用SAS还是SATA,都需要在CPU和磁盘之间配置硬盘驱动器控制器

随着新一代固态硬盘的推出,其理论性能已接近甚至超越RAM,远超传统HDD,因此需要一种全新的访问接口来发挥其潜力。

NVMe(Non-Volatile Memory Express)

2011年,NVMe(非易失性存储器Express)接口应运而生。这一接口专为利用低延迟和高闪存性能而设计。其物理连接器则根据应用场景有所不同:在客户端设备上,由于无需热插拔且重量和空间更为关键,因此M.2尺寸是常见选择。而借助Thunderbolt 3接口,PCIe设备可作为USB-C可插拔设备连接,NVMe驱动器也常以这种形式出现(不过,只有当较新的USB标准支持超过SATA的带宽时,这样的设备作为NVMe驱动器才具有实际意义)。

NVMe驱动器确实具备作为PCIe扩展卡插入PCIe插槽的能力,但这种应用相对少见,因为它占用的是那些通常优先用于安装GPU卡的宝贵插槽。在计算服务器环境中,NVMe驱动器更为常见地以M.2(常作为启动设备使用)和U.2(专门用于数据存储)的形式呈现。

从设计角度来看,NVMe规范定义了一种简洁高效的协议,仅包含13条基础命令。为了最大化并行处理能力,这些命令可以在高达64K个I/O队列上执行,每个队列可容纳64K条命令。这种设计使得NVMe的性能远超SATA规范,高出近三个数量级。

图1:NVMe 命令集,来源:Saegate 远程块存储协议

就远程访问存储而言,有两种方法:NAS网络附加存储)和 SAN(存储区域网络)。对于个人用户及小型团队来说,NAS 是一种理想的选择,而大型组织和企业则更倾向于采用 SAN。

NAS 通常用于小型家用文件服务器环境中,它通过一组用户友好的网络协议来挂载存储,最常见的是使用 NFS(网络文件系统)和 SMB(服务器消息块)协议来访问文件系统。NAS 的一个显著特点是它直接处理文件系统层,并充当文件服务器,这与 SAN 有着本质的区别。

相比之下,SAN 设备则专注于提供块存储服务,而将文件系统层的管理交由客户端负责。这就引出了一个问题:客户端是如何访问远程服务器上的块设备的呢?

在深入探讨之前,我们先来了解一下 SCSI(小型计算机系统接口),这是一个自20世纪80年代起就存在的存储访问标准。随着时间的推移,其命令集被广泛应用于多种新型协议,如 SAS(串行连接 SCSI)和 USB 连接 SCSI。在 SAN 中,SCSI 被用作远程访问块存储的协议。具体来说,SCSI 命令会被封装在网络协议中,并在 iSCSI 客户端(发起方)和具有存储资源的 iSCSI 服务器(目标)之间进行交换。实现这一功能的主要传输协议包括 TCP(在 iSCSI 中使用)和光纤通道协议(FCP),而 FCP 本身也可以进一步通过以太网(FCoE)进行封装。这种灵活性和兼容性使得 SAN 成为了大型企业级存储解决方案的首选。

图 2:SCSI 和 NVMe 作为远程块存储协议,来源:Piyush Gupta iSCSI和NVMe均被用作远程访问块存储的协议,且两者均依赖于Fabric network(结构网络)作为主要的传输方式。这里的“Fabric network”是一个宽泛的概念,用于描述抽象的基础设施层。无论是通过本地网络连接还是利用隧道技术跨数据中心连接,设备的连接方式并不构成主要考量因素。关键在于主机期望网络能在带宽和延迟方面提供最佳性能,以确保数据传输的高效性和实时性。

NVMe over Fabrics

最初,NVMeoF是作为独立规范发布的,独立于 NVMe。然而,随着其成功的应用与实施,NVMeoF逐渐融入并成为了NVMe标准体系的重要一环。NVMeoF 的引入使得NVMe命令能够通过多种传输方式得以封装,进而将协议的可用性扩展至跨网络结构的主机与存储之间的数据传输。

这一概念与基于SCSI的协议(如iSCSI或iSER)有着异曲同工之妙。原本为本地存储访问设计的命令集,经过重新设计后,如今能够在存储服务器与主机之间通过网络进行通信

与iSCSI相似,NVMeoF的发起方和目标方(即客户端和服务器)会建立连接并交换命令。虽然它们的NVMe堆栈主要以软件形式实现,但考虑到目标方通常需要为多个发起方提供服务,而发起方又可能需要访问多个分散的驱动器,因此可以通过将命令解封装转移至专用硬件(例如 DPU)来实现更好的性能。

与SCSI相比,NVMe协议支持并行I/O操作,无需进程间锁定,从而大大提高了效率。此外,NVMe还优化了会话交互:单次数据传输仅需一次往返和两次交互,相较于SCSI的两次往返和四次交互,极大地减少了交互次数。这些优势在NVMeoF中得到了充分体现,由于引入了网络延迟,减少往返时间成为了提升整体性能的关键因素。

NVMe 传输的分类

图 3:NVMe 传输的分类 首先我们介绍用于访问主机内本地存储的内存传输。这种传输方式通过本地总线与存储设备进行通信,设备通常与PCIe或其他本地总线技术(如Compute Express Link,简称CXL,或Advanced Extensible Interface,简称AXI)连接。

NVMeoF扩展了NVMe命令集在基于消息的传输中的应用。目前,RDMA和 TCP 传输由NVMe指定,光纤通道上的NVMe(FC-NVMe)则由INCITS(InterNational Committee for Information Technology Standards)组织管理。对于NVMe/TCP,发起方和目标方之间会建立TCP连接,NVM子系统通过此连接进行通信,交换NVMe/TCP协议数据单元。此TCP连接同时用于命令和数据的传输,通常由内核网络堆栈在软件中处理。虽然这种方法具有无需特殊网络配置的便利性,但由于软件处理的引入,它可能会导致性能下降并增加额外的计算资源需求。

相比之下,FC-NVMe利用光纤通道的可靠性、并行性和多队列功能,在现有的FC网络上提供高效的消息传输。与NVMe/TCP相比,FC-NVMe由于协议设计更为精简,因此在CPU开销方面表现更为优秀。

然而,值得注意的是,无论是NVMe/TCP还是FC-NVMe-2,它们均未充分利用能够加速RDMA的现代卸载网卡。为了弥补这一不足,NVMe标准特别指定了RDMA传输方式。RDMA允许数据在应用程序的内存空间与远程主机的内存空间之间直接传输,无需内核的介入。这不仅减少了CPU的开销,还降低了数据传输的延迟,为高性能存储访问提供了强有力的支持。

图4:RDMA绕过内核TCP/IP协议栈,来源:FS RDMA(远程直接内存访问)

这里的核心概念在于应用程序(如使用 NVMe 的数据库)和设备(即 NVMe 驱动器)能够直接读取和写入网卡内存缓冲区,绕过传统的内核网络堆栈。

RDMA网络技术通常基于InfiniBand或以太网。InfiniBand是一个高性能的L2网络标准,RDMA是InfiniBand的一个核心功能。而以太网本身并不直接支持RDMA。

InfiniBand网络专为HPC(高性能计算)数据中心设计,提供高吞吐量、低延迟和QoS(服务质量)功能,它使用自己独有的链路、网络和传输协议。在InfiniBand网络中,RDMA数据包通过其特定的传输协议发送。然而,由于InfiniBand网络设备和NIC的供应商相对较少,基于以太网的RDMA解决方案在市场中更受欢迎。

要在以太网上实现RDMA,网络结构必须支持无损传输。标准以太网并不保证这一点,因此需要进行相应的增强或使用特定的上层传输协议。由于现代网络方法非常灵活,因此在硬件供应商的支持下,可以实现这一目标。

值得注意的包括:

融合以太网(RDMA over Converged Ethernet)上的RDMA(v1和v2)和iWARP在传输方式和特性上略有不同。

RoCEv1在以太网上使用IB网络层数据包,但由于没有使用IP封装,数据包无法在IP网络中路由。

RoCE v2在网络层使用UDP,允许数据包在IPv4或IPv6网络上进行路由。因此,RoCE v2有时被称为可路由RoCE(RRoCE)。

iWARP(Internet Wide Area RDMA Protocol)使用TCP作为传输层协议,它提供了固有的可靠性,因此无需对以太网层进行额外增强。然而,与RoCE相比,使用TCP会带来更多的开销和复杂性。

图5:常见RDMA实现的网络层比较,来源:FS 所有这些技术共存,并各自提供不同的优势。在数据中心环境中,为了实现最佳性能,InfiniBand 或 RoCE 通常是首选。在某些特定场景中,专用集群网络也能作为一个可行的网络解决方案。而在 DCB 配置复杂或需要跨越公共互联网部署时,iWARP 技术可能更为合适。

小结

NVMeoF 的概念是基于SCSI规范逐步发展而来的。尽管旧有的技术已被证明是可靠且实用的,但随着固态硬盘的广泛应用,人们对更为高效的协议需求日益增长。直接比较不同的协议可能较为复杂,因为不同的应用程序有不同的需求。因此,寻找一个同时支持 NVMe 和 SCSI over RDMA 的设备成为了一个挑战。然而,无论采用何种传输方式,NVMeoF 无疑是当今SAN网络中的领先技术。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    13

    文章

    4243

    浏览量

    85615
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2848

    浏览量

    117159
  • nvme
    +关注

    关注

    0

    文章

    217

    浏览量

    22571

原文标题:存储技术未来演进:NVMe over Fabrics (NVMeoF)

文章出处:【微信号:wc_ysj,微信公众号:旺材芯片】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCIe与NVMe存储的关系

    在现代计算机系统中,存储技术的发展对于提高整体性能至关重要。PCI Express(PCIe)和NVMe(Non-Volatile Memory Express)是两种关键技术,它们共
    的头像 发表于 11-06 09:29 299次阅读

    Synology如何使用Nvme固态做存储空间

    Synology 如何使用Nvme固态做存储空间
    发表于 10-09 10:55 0次下载

    国产NVMe SSD扩展卡:驱动存储新纪元

    NVMe技术的标准化接口使得不同厂商的设备能够更好地兼容和互操作,提升了存储系统的灵活性和扩展性。
    的头像 发表于 08-17 14:59 1414次阅读
    国产<b class='flag-5'>NVMe</b> SSD扩展卡:驱动<b class='flag-5'>存储</b>新纪元

    手机主流存储eMMC、UFS与NVMe的区别

    近几年,手机影像不断发展,照片+视频占据大量存储空间,在愈发膨胀的微信、手游以及各种APP面前,存储空间愈发不够。该存储空间即是手机存储容量(ROM),市面上常见的手机快闪记忆体标准共
    的头像 发表于 07-16 16:42 2448次阅读
    手机主流<b class='flag-5'>存储</b>eMMC、UFS与<b class='flag-5'>NVMe</b>的区别

    高性能NVMe主机控制器,Xilinx FPGA PCIe 3

    NVMe Host Controller IP1介绍NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的
    发表于 04-20 14:41

    高性能NVMe主机控制器,Xilinx FPGA NVMe Host Accelerator IP

    NVMe Host Controller IP1介绍NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的
    发表于 04-10 22:55

    如何在Arm平台上进行SPDK NVMe over TCP优化呢?

    随着存储介质在 I/O 性能方面不断演进存储软件占用的总事务时间百分比变得越来越大。提高存储软件栈的性能和效率至关重要。
    的头像 发表于 04-01 09:53 1701次阅读
    如何在Arm平台上进行SPDK <b class='flag-5'>NVMe</b> <b class='flag-5'>over</b> TCP优化呢?

    Xilinx FPGA高性能NVMe SSD主机控制器,NVMe Host Controller IP

    NVMe Host Controller IP1介绍NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的
    发表于 03-27 17:23

    Xilinx FPGA NVMe主机控制器IP,高性能版本介绍应用

    NVMe Host Controller IP1介绍NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的
    发表于 03-09 13:56

    NVMe Host Controller IP实现高性能存储解决方案

    电子发烧友网站提供《NVMe Host Controller IP实现高性能存储解决方案.pdf》资料免费下载
    发表于 02-21 14:28 1次下载

    Xilinx FPGA NVMe Host Controller IP,NVMe主机控制器

    NVMe Host Controller IP1介绍NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的
    发表于 02-21 10:16

    Xilinx FPGA NVMe控制器,NVMe Host Controller IP

    NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的NVMe协议命令,具备独立的数据写入AXI4-Stream/F
    的头像 发表于 02-18 11:27 836次阅读
    Xilinx FPGA <b class='flag-5'>NVMe</b>控制器,<b class='flag-5'>NVMe</b> Host Controller IP

    华为NoF+存储网络解决方案

    接口规范)存储协议的出现极大提升了存储系统内部的存储吞吐性能、降低了传输时延,NoF(NVMe over Fabric)
    的头像 发表于 12-18 16:41 1250次阅读
    华为NoF+<b class='flag-5'>存储</b>网络解决方案

    pxie7501 nvme 存储卡 高速固态存储

    产品介绍PXIe7501是一款PCIeGen3.0X4接口的标准PXIe扩展SSD存储卡,支持m.2NVMe协议。产品特性标准3UPXIe存储卡最高支持PCIe3.0X4支持插入1个m.2NV
    发表于 12-01 10:52 1次下载

    NVMe进攻下,SAS还有未来吗?

    SAS 和 NVMe 都是强大的企业存储技术。SAS 是两种架构中较旧的一种,而且往往也是更便宜的选择。NVMe 正在成为标准的高速存储驱动
    的头像 发表于 11-24 17:48 903次阅读