NVMe-oF E-JBOF设计解析:WD RapidFlex网卡、OpenFlex Data24

OpenFlex Data24 NVMe-oF Storage Platform

WD的SN840 NVMeSSD新品并没有太吸引我注意,因为它还是PCIe 3.0接口的,要知道Intel的PCIe 4.0 SSD都已经推出了。

但上面这个NVMe-oF(NVMe over Fabric)EBOF(区别于普通JBOF的第一个字母表示Ethernet)我就有点兴趣了。前一段看到刘爱贵博士的公司——大道云行宣布的分布式软件定义存储新品,使用了一家国内的E-JBOF,想从官网找公开资料学习下都不太多。在这点上国际品牌往往要做得完善一些,否则我也写不出本文的分享。

从SAS JBOD到NVMe JBOF和EBOF

谈到NVMe JBOF的前身,SAS JBOD磁盘(HDD/SSD)扩展柜不得不提,下面只用一张图简单交代下JBOD里的SAS Expander控制模块。

上图从10年前的一段视频里截出,可以说是LSI在6Gb/s SAS时代的经典之一(Dell PowerVault MD1200/1220 JBOD基本相同),也勾起了我一段曾经美好的回忆。2U驱动器机箱里有2个HA路径的SAS Expander——只用LSI SAS2X36芯片作为核心即可。

相比之下,NVMe-oFJBOF/EBOF至少要在物理上把PCIe转换为以太网,所以结构不可能如此简单。我们先来看看下面这块“网卡”。

这颗芯片的型号是WDRapidFlex A1000 NVMe-oF ASIC,对应的板卡为RapidFlex C1000 NVMe-oF Adapter,不难看出是用来干啥的。规格如下:

其网口部分提供1个100GbE或者2个50/25GbE以太网,协议支持RoCE、iWARP/TCP,看产品名称自然也支持NVMe。PCIe接口支持Root Complex,看来是用于连接NVMe SSD的;PCIe Gen3 x16还能拆分成2个x8来使用(连接多个PCIeSwitch)。

上图是基于RapidFlex A1000的EBOF参考架构。位于机箱前部的NVMe SSD通过热插拔背板连接到2块控制电路板——应该支持双端口SSD的2个PCIe 3.0 x2多路径访问,然后经过PCIe Switch之后,就连接到几个RapidFlex A1000 ASIC对前端服务器提供NVMe-oF访问。同时有BMC / 机箱服务模块用于带外管理。

看这个WD单芯片解决方案就更清楚了。所谓“6-way无阻塞内存子系统”,其实RapidFlex A1000 ASIC是无需DRAM内存工作的,它的工作其实很单一——就是那个“MPU”实现NVMe(连接SSD)到NVMe-oF(over RDMA)之间的转换。

再来看看WD OpenFlex Data24 NVMe JBOF(EBOF)的后视图。左右2个IOM模块上各自可以插3块网卡,应该就是前面提到的RapidFlex C1000 NVMe-oF Adapter。

这里重点看一下OpenFlex Data24的高可用和性能设计。在2个IOM模块中,每个上面应该是用了不低于96 lane PCIe 3.0 Switch芯片——下行48 lane连接NVMe SSD,然后3个x16连接RapidFlex网卡。除了到以太网那里带宽打一点折扣之外,PCIe链路的“收敛比”是1:1性能无损的。

OpenFlex Data24给出的性能指标是13.2M IOPS和70.7GB/s,平均每块SSD接近55万IOPS和3GB/s带宽,这个几乎把6个100GbE网口跑满了,每块网卡平均220万IOPS。

这里友情插一个小小的广告,有想咨询西数企业存储产品商务方面的朋友,可以联系圈内名人刘委员(平台小秘书),靠谱的哥们儿,他的微信号wood6988。

NVMe-oF EBOF高级实现方式、闪存阵列的区别

前面讨论的WD产品只是最基本的以太网JBOF,可以说与SAS JBOD和PCIeNVMe JBOF的地位没有本质区别——支持用来连接盘,而并没有更多高级管理功能。再往上一点的方案是什么呢?下面我拿Mellanox和Broadcom的产品来简单举个例。

关于MellanoxBlueField我有2篇写的比较早,收录在《存储网络交换、NVMe oF》专辑中,大家也可以找最新的资料看看。

上图这款卡,在WinnieShao博士的大作《智能网卡SmartNIC:“大”x86 Server中的“小”armServer》中也被提到过。BroadcomStingray板卡的主控芯片BCM58800也是一颗ARM SoC,它在拓扑图中的位置有点类似于前面的WD RapidFlex,但既然敢称为闪存阵列(Flash Array)而不只是E-JBOF自然有所不同。

上图这份资料有点老。ARM和网卡部分我就不多谈了,Broadcom本身就是做网络出身的。SoC同时包含双通道DDR4内存控制器,具备接近100Gb/s Hash和加密引擎(也能用于重删)、RAID 5 XOR和RAID 6 P+Q Galois/Erasure纠删码支持。

除了基于RDMA的NVMe-oF之外,StingraySmartNIC的应用方案还包括NVMe-TCP(扩展阅读:《NVMe over TCP:iSCSI的接班人?》),这一点我理解WD RapidFlex网卡就做不到了。类似的还有对象存储,已经超出了JBOF/EBOF的基本功能范畴。

关于存储服务offload卸载这一块,如果是传统企业存储市场中功能强大的闪存阵列,只靠SmartNIC显然又不够了。下图引用自《DellEMC PowerStore详解:NVMe+SAS全闪存阵列,还是一体机?》,只是举个例。

关于写缓存镜像,以及数据缩减(压缩/重删)处理,只是PowerStore存储系统数据路径中的一部分流程而已。其实我理解NVRAM盘只是为了保障数据的持久化(估计是一个副本),真正的处理还是要放在DRAM主内存中才能高效。至于更多的高级存储服务,就需要用到控制器中强大的服务器级别CPU了(具体到PowerStore使用的是XeonScalable)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/214742.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建Angular并引入NG-ZORRO组件库

作者:baekpcyyy🐟 1.安装node.js 注:安装 16.0 或更高版本的 Node.js node官网:https://nodejs.org/en 2.进入angular官网 https://angular.cn/guide/setup-local 新建一个文件夹 vsc打开 打开终端 1.首先安装angular手脚架…

移动应用程序管理的内容、原因和方式

移动应用程序管理(MAM)是一个术语,指的是管理应用程序的整个生命周期,包括从设备安装、更新和卸载应用程序,除了在整个生命周期内管理设备外,MAM 还包括保护应用访问的数据,以及在设备上发现恶意…

深入理解数据结构:队列的实现及其应用场景

文章目录 🍂前言🍂队列的基本概念和特性🍂队列的实现方式️🌱顺序队列️🌱链式队列 🍂队列的基本操作及示例代码️🥑创建队列️🥑判空操作️🥑入队操作️🥑出…

docker容器与宿主机时间同步

前言 在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,此时需要同步它们的时间,让容器时间跟宿主机时间保持一致。 一、分析时间不一致的原因 宿主机采用了CST时区,CST应该是指(China Shanghai Time&…

JAVA线程池原理详解

线程池的优点 1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。 2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。 线程池的创建 public…

AIDL 如何分片传输大量 Parcelable 数据列表

本文针对 AIDL 跨进程传输大量 Parcelable 数据所产生的问题总结出一套分片传输的解决方案,并分析了一下其实现的原理。 1. 概述 大家在通过 AIDL 实现跨进程数据传输的时候,可能会遇到数据量过大导致异常的情况,通常抛出的异常如下&#xf…

如何去掉图片水印不伤原图?无痕去水印教程分享!

如何去掉图片水印不伤原图?在电商广告设计和营销领域,水印已经成为一种常见的版权保护手段。不过,水印也给淘宝商家带来了一些困扰。那么如何去掉图片水印还能不伤原图呢,接下来,将分享简单好用的无痕去水印教程&#…

python中range函数的用法

range() 是Python的一个内置函数。语法格式为:range(start, stop, step) start是初始值,stop是最终值,step是步长。range()函数仅适用于整数,所有参数都必须是整数。步长值可以为正数或负数,不得为零。使用range函数时…

农田气象要素监测仪助力农业发展

随着科技的不断进步,现代农业已经越来越离不开科学技术的支持。其中,WX-NY12 农田气象要素监测仪成为了现代农业中不可或缺的一部分。这款仪器能够实时监测农田中的气象要素,如温度、湿度、光照、风速等,为农民提供更加精准的农业…

SOLIDWORKS 2024新功能之Electrical篇

SOLIDWORKS 2024 Electrical篇目录概览 • 对齐零部件 • 更改多个导轨和线槽的长度 • 过滤辅助和附件零件 • 2D 机柜中的自动零件序号 • 移除制造商零件数据 • 重置未定义的宏变量 • 使用范围缩短列表 • SOLIDWORKS Electrical Schematic 增强功能 1、对齐零部件…

解决Vscode使用git提交卡住的问题

使用Vscode的git提交代码经常会很慢/卡住。 先点击左下角,进入设置 找到git的配置(建议直接搜索),把use Editor As commit input的勾选去掉即可解决。

Flink 常用物理分区算子(Physical Partitioning)

Flink 物理分区算子(Physical Partitioning) 在Flink中,常见的物理分区策略有:随机分配(Random)、轮询分配(Round-Robin)、重缩放(Rescale)和广播(Broadcast)。 接下来,我们通过源码和Demo分别了解每种物理分区算子的作用和区别。 (1) 随机…