前两篇,我们探讨了:

《详解:什么是NVMe?》

《Why NVMe?》

本篇我们将探讨:

1、NVMe Over Fabrics是什么?Fabrics包括哪几类?

2、为什么出现NVMe Over Fabrics?

3、NVMe Over Fabrics的未来发展可能,及它与SDS(软件定义存储)的关系

一、NVMe Over Fabrics是什么?

NVMe over Fabrics简称为NVMe-oF。它是NVM Express工作组在2016年发布的规范,通过网络将主机(如服务器)连接到存储。

备注: 上图来自nvmexpress.org

NVMe Over Fabrics之于NVMe,类似早先的光纤SAN存储中FC SAN之于Fibre Channel

NVMe over PCIe 局限在主机的本地盘使用。通过Fabrics(如RDMA或光纤通道)代替PCIe,可帮助主机访问节点外的NVMe SSD资源,NVMe-oF极大地增强了灵活性和扩展性,将NVMe低延时、高并发等特性,从服务器级别,扩展到整个数据中心级别

下图NVMe Transport可以看到,左边是over PCIe,右边是over Fabrics的几种类型。

备注: 上图来自micron.com

构建NVMe-oF的Fabrics网络,也即主机和外地盘的连接通道,有多种方式,over RDMA (NVMe/RDMA),over Fibre Channel (FC-NVMe) 、over TCP (NVMe/TCP),各自适用不同领域,如下图,NVMe/RDMA性能高、成本也较高,用于HPC、分布式数据库、AI机器学习等场景。

备注: 上图来自 Youtube: 2021-2-3, Use Cases For NVMe oF

https://www.youtube.com/watch?v=VWq13NmwOhI

分类的具体阐述如下,这部分内容转载自 微信公众号 Marvell美满 在2019-09-25发表的题为《如何选择最优的NVMe-over-Fabrics方案?》的文章。

1、使用RDMA (NVMe/RDMA)的NVMe-over-Ethernet

这种RDMA兼容型以太网适配器现已获得授权。RDMA有两种不同的部署方式,名称分别为RoCE(v1/v2)和iWARP。然而非常遗憾,以上两种协议无法实现交互操作。下面简要说明两种协议各自的优劣势:

1)NVMe-over-RoCE (NVMe/RoCE):如果您使用的是只有以太网的网络,NVMe-over-RoCE是共享存储或超融合基础设施(HCI)连接的最佳方案。正因如此,目前已有多家存储阵列供应商公布了他们的计划,及表示支持NVMe-over-RoCE连接。RoCE能够提供最低的以太网络延迟,并且对于跳数不超过 2 个的小规模存储网络,能达到非常优异的运行效果。顾名思义,RoCE需要聚合或无损的以太网络才能正常运行。此外,该方案还需启用实现额外的网络功能,包括数据中心桥接(DCB)、优先流控制(PFC),以及其他一些更复杂的组织架构和网络拥塞管理机制。如果低延迟是您的首要目标,那么NVMe-over-RoCE很可能是您的最优选择,尽管其网络复杂性也相对较高。

2)NVMe-over-iWARP (NVMe/iWARP):iWARP RDMA协议运行于标准TCP/IP网络之中,因此其部署操作也更加简单。尽管该协议的延迟性能不及RoCE,但更加易用的特性以及更低的管理难度依然具有巨大的吸引力。在现阶段,存储阵列供应商尚未设计出支持 iWARP的阵列,因此目前的iWARP最适合软件定义或者基于Microsoft Azure Stack HCI / Storage Spaces Direct (S2D) 等HCI解决方案。

2、NVMe-over-FC(FC-NVMe)

对于已经部署了光纤通道存储网络(SAN)基础设施的用户而言,FC-NVMe当属最优方案。使用16Gb FC或32Gb FC主机总线适配器(HBA)和SAN交换机,即可将NVMe协议封入FC框架内部。通过升级至最新的HBA固件和驱动程序则能获取Linux服务器上的FC-NVMe支持。因此,投资新型16Gb或32Gb FC HBA和SAN基础设施,能够为应用今后推出的FC-NVMe存储阵列做好提前准备。另外值得注意的是,SCSI (FCP) 和 NVMe (FC-NVMe) 可以共存于相同的FC光纤网络中,因此,基于FC-SCSI的老存储可以与全新的NVMe存储同时运行。

3、NVMe-over-TCP (NVMe/TCP)

NVMe-over-TCP于2018年11月获批,在不进行任何必要调整工作的情况下即可在现有的以太网基础设施中运行(这一点利用了TCP/IP广泛的普遍性)。NVMe-over-TCP发挥的性能表现可能在速度上不及NVMe-over-RDMA或FC-NVMe,但在标准以太网卡和以太网网络交换机上就可以轻松实现部署。无需大量的硬件投资,即可享受NVMe SSD存储的主要优势。

二、为什么出现NVMe Over Fabrics?

1)更快的存储,需要更快的网络

如下图,从HDD到SSD,再发展到PM (Persistent Memory),性能的改善(延时缩短)甚至比最初提升到数千倍!

上图来自 OCP 2018 SUMMIT, Rob Davis (时任Mellanox VP)

为什么需要网络呢? 主机直接在本地盘使用不行吗?

当然可以,确实有些要求延时低且冗余要求不高的场景,如AI训练、NoSQL(数据冗余在应用软件层实现)等。

2)更快更大容量的存储,需要给多个主机共享

不过,考虑到效率、弹性、可靠性、可用性、可运维性等需求,开始出现了JBOF、EBOF等新型架构。

现在很多品牌的SSD在4KB随机读下,都在60万,甚至80万IOPS以上,如下图浪潮ZNS SSD。

上图来自 浪潮存储 胡文锋

通常一个闪存盘箱(JBOF或EBOF)的SSD个数在20以上,也即能提供的总IOPS高达1600万!

常规的主机(服务器)很难吸收或全部利用这么高的磁盘性能。合理的架构应该是一些主机构成的集群,通过Fabrics共享使用一个或多个全闪存盘箱。

当网络或说是传输通道延时超低,带宽也高时,主机可不配置本地盘。只留少数启动盘,甚至通过使用NVMe Server Boot Cards,连启动盘都不需要。例如,Marvell推出了RAID 1 Accelerator来提高NVMe启动盘的冗余保护。

3)NVMe Over Fabrics与软件定义

这其实就是Disaggregation of Compute and Storage(计算和存储的解耦),大家近年来经常听到的存算分离。

仔细一想,其实它和SDS(Software Defined Storage)的理念是一致的:硬件解耦、池化、共享。Disaggregation的好处是:

1)故障隔离;

2)通过共享降低成本;

3)提高资源的使用效率;

4)方便管理、易于运维;

5)避免浪费,计算或存储按需分配、按需扩展;

下图是2020年OCP Global Summit,浪潮信息与三星合作推出的开放存储平台:

NVMe Over Fabrics这种较为彻底的解耦,微信公众号“乐生活与爱IT”的长期读者,是否有些眼熟呢?其实,早在5年多前,本号就首发过一篇Peter Cui(崔勇)的文章《别再说存储了,我真的烦了》,里面提出了一个当时还比较新奇的观点:服务器内部一定要有硬盘么?谁规定了服务器内一定要有硬盘?

后来以这篇文章为基础,构成了《软件定义存储:原理、实践与生态》这本书的第24章 “SAS与SDS" 。

Disaggregation带来了Composable(可组合性),除了按需各自独立的扩展之外,不用的存储资源,也可以释放,再行分配。

这种解耦再进一步深入,就是CPU doesn't 'own' the GPU or the Memory,这句我欣赏的话来自WD在OCP某次会议的分享,如下图:

其实,它可能预示如除存储之外,其他资源如GPU、内存、FPGA等的演变可能。

另外,从下图可以看出OCP的首倡者FaceBook在思考下一代数据中心,超大规模,高密度,灵活扩展(Flexible CPU/Flash Ratios,也即计算存储灵活配比),可维护性等,都是应有之义。

不过需要注意的是,大型数据中心所思考或所追求的,未必是当下中等规模,或者行业用户(非互联网,非云计算厂商)必须马上去实践的,因为各自的诉求、环境、应用场景、使用习惯、采购流程等都不一样。但做为潜在的长期趋势,需要保持关注

4)存算分离? 存算一体?

我们经常看到存算分离、存算一体(比如HDFS),到底哪个是趋势?两者是不是相互矛盾?其实,并不矛盾,这和业务需求、组件特质有着密切的关联,此一时彼一时。HDFS诞生于集中式存储、机械硬盘大行其道的时期,通过存算一体缩短延迟,并降低成本(不用购买昂贵的集中式存储)、方便海量存储扩展。

5)JBOF和EBOF的区别

和JBOD(包括采用NVMe over PCIe)不一样,EBOF或JBOF都可通过NVMe-oF进行存储的灵活扩展。

JBOF是Just a Bunch of Flash的缩写,使用PCIe交换机fan out(可理解为扇出、或连接)到SSD,而EBOF使用以太网交换机fan out到SSD。JBOF和EBOF通过NVMe-oF连接到主机服务器。

三、端到端的NVMe Over Fabrics

做到真正的端到端NVMe-oF,其实是很难的,全球没有几家。如下图所示,除了硬件之外,存储软件也要有所优化;此外在主机端还要有所处理,方能充分发挥性能优势。

上图来自前同事 李华伟的分享,略有修改

四、未来的发展

个人以为,借助NVMe Over Fabrics,未来集中式存储和分布式存储会殊途同归,都发展成为基于NVMe Over Fabrics的分布式全闪。近年来,还出现了Nvidia DPU,以及Scalable HCI的架构,后者是指超融合中某些节点不提供存储资源,但可共享其他节点的存储资源。这些都值得关注。

对NVMe,或者NVMe Over Fabrics感兴趣的朋友,可以通过扫描下图二维码,报名参加7月27日位于北京嘉里大酒店举办的OCP China Day 2021。上午主论坛,下午4个分论坛,共计40个演讲或分享话题。其中第二演播厅,我会进行相关的分享。

扩展阅读 系列文章:

《》详解:什么是NVMe?

《Why NVMe ?》

《即将一统天下的OCP NIC 3.0及其未来》

《OCP最成功的项目是什么?许多数据中心硬件从业者都会和它打交道》

《图文和视频了解OCP之OAI/OAM》

《一图了解OCP(开放计算)全部九大类项目》

《视频回放 | 开放计算 整机柜的前世今生》

《视频回放 | OCP 2020: 边缘计算的开放趋势》

《一文了解国内外开放计算》

《随笔:为什么要开放?》

请持续关注微信公众号 乐生活与爱IT,后面将继续分享相关文章,如NVMe Over Fabrics等

深入剖析NVMe Over Fabrics相关推荐

  1. NVMe Over Fabrics架构概述

    NVMe Over Fabrics使用RDMA或光纤通道(FC)架构等Fabric技术取代PCIe传输.如图所示,除了基于RDMA架构的传输包括以太网(ROCE),InfiniBand和iWARP,当 ...

  2. 为什么说SCM (Storage Class Memory) 越来越重要?

    [公众号 乐生活与爱IT 编者Peter Ye 按] 李金星是大普微的副总裁.我和他蛮有缘分的,遇到好几次会议,共同做为演讲嘉宾.今天在听取2021全球闪存峰会李总的<面向当下与未来的高端企业级 ...

  3. 全闪存存储时代 NVMe到底是什么?

    在最近几年,介质发展突飞猛进,容量和性能都在持续快速提升,各大介质厂商都推出了高性能的NVMe SSD,几乎全球所有的存储大厂都在大力研发基于NVMe的新一代存储产品,一时间NVMe成了存储行业最热门 ...

  4. 从 SAS 到 NVMe,换个底盘就完儿事了?

    从 SAS 过渡到 NVMe,看起来很容易,是不是更换个底盘就完了?这里面其实挺复杂的.具体怎么个复杂法,笔者将以下面这款产品入手为您介绍. PowerMax简介 2018 年 5 月 1 日,戴尔易 ...

  5. linux提升nvme性能,基于SPDK的NVMe SSD性能评估指南

    原标题:基于SPDK的NVMe SSD性能评估指南 一 通过fio工具测试磁盘性能 SPDK采用异步I/O(Asynchronous I/O)加轮询(Polling)的工作模式,通常与Kernel的异 ...

  6. 详解:什么是NVMe?

    微信公众号 乐生活与爱IT 编者按: 昨天在<Why NVMe ?>曾提到:NVMe标准协议除了建立了通用兼容的闪存接口协议以外,还针对闪存存储的特点,提供了低延时.高并发以及低功耗的特性 ...

  7. 【协议】NVMe over RoCE 初探 SATA接口(AHCI协议)、PCIe 接口(NVMe 协议)

    简略 详细 RDMA RDMA网络配置 硬/软件信息 RDMA驱动安装 验证RDMA连通性 NVMe Initiator 和 target 配置 target 端配置 initiator 端配置 配置 ...

  8. 最新!SPDK宣布在NVMe-oF Fabrics中支持TCP transport

    作者简介 杨子夜,Intel存储软件开发工程师,主要从事SPDK软件开发工作. 随着由NVM Express 发布新闻宣告发布了 NVMe/TCPtransport [1][2](NVMe-oF TP ...

  9. 存储技术对比:NVMe与SATA孰强孰弱?

    闪存的性能表现,可以说对得起它的名号了,但是它的速度还是有提升空间的,特别是在数据中心领域. 为了追求更快的存储性能,企业对NVMe越来越感兴趣.这是一项"闪存友好型"技术,可以极 ...

最新文章

  1. 懂点 Nginx 反向代理与负载均衡,是面试加分项没有之一
  2. 5.10. Web Tools
  3. git Rebase 变基 教程
  4. php中绘画控制包括什么,PhpStorm中绘画UML
  5. 大林算法计算机控制实验报告,大林算法
  6. micrometer_具有InlfuxDB的Spring Boot和Micrometer第2部分:添加InfluxDB
  7. Unittest方法 -- 测试固件(TestFixture)
  8. 开源界也要注意,Apache 基金会与 GitHub 都受美国法律约束
  9. 课外题:需要排序的子数组
  10. 使用vim遇到的问题
  11. [TWLFramework] Singleton
  12. php怎么实现弹幕,HTML如何利用canvas实现弹幕功能
  13. 伟福6000微型计算机,伟福6000仿真软件
  14. 【开源组件】记住:不要在MySQL中使用UTF-8
  15. leetcode刷题日记-71. 简化路径
  16. RedHat 6.4源码方式安装mysql5.5
  17. 机器学习及深度学习相关资料汇总
  18. Horizon 桌面用户会话10h后超时断开
  19. 前端JS时间验证,结束时间不早于开始时间
  20. 51单片机与STM32的区别(为何51单片机IO引脚的驱动能力弱)

热门文章

  1. python程序设计 从基础入门到实战应用电子书_Python程序设计——从基础入门到实战应用...
  2. 非齐次线性方程的通解和特解
  3. pd.read_csv()中文乱码,解决方法
  4. Pytorch目标检测学习资源
  5. 抖音App四神算法分析
  6. Android Studio 安装应用失败总结
  7. 请将文件MP_verify_xxxxxx.txt上传至填写域名或路径指向的web服务器(或虚拟主机)的目录 曲线救国
  8. 简单猜年龄游戏Python代码
  9. pinbox: 我用过最好的收藏工具
  10. HTML5印章绘制电子签章图片,中文英文椭圆章、中文英文椭圆印章