查看原文
其他

NVMe over Ethernet:又一家FPGA互连闪存的Apeiron

2016-06-12 唐僧 企业存储技术
点击上方“企业存储技术”可以订阅哦


NVMe可以说是当下最火的企业级SSD接口,在它遇到机箱外部扩展连接的瓶颈时,NVM Express overFabricsNoF)被提出并于近日发布了1.0版本规范。而有些厂商走在了前面,除了使用PCIe主机连接的EMC DSSD之外,更多的还是选择相对容易实现的以太网,例如提出NVMe over EthernetNoE)的Apeiron

 

扩展阅读:《IDF16NVMe Over FabricSPDK和双控存储元年》、《解析DSSD对象机制:内存APIAtomic读写再现

 

在本文标题中我提到了FPGA,正是这点让我联想起去年曾经撰写过的一款产品。如果您记不清也没关系,往后面看就会明白了,当然它们在架构上还是有一些区别。

 

2U机箱内17.8M IOPS72GB/s带宽

 


 

ApeironADS1000号称Scale-outNVMe阵列,使用242.5英寸NVMe SSD跑出72GB/s带宽和1780IOPS,可以计算出平均每块盘3GB/s和约74IOPS——几乎发挥出了裸盘性能的极限。单看这一数字足以让竞争对手汗颜,尽管参考资料我认为Apeiron在冗余保护和所谓的“Scale-out”方面可能没有做太多,而如此小的Fabric性能开销已经足够引起兴趣来继续研究了。

 

至于3种容量点比较好理解,38/76/152TB分别对应单盘容量1.6/3.2/6.4TB。从机箱后端图片来看,电源和散热风扇都是冗余配置,虽然有2IOM但不是双控(每个IOM连接一半也就是12SSD32Apeiron DataFabric Ports就是基于40Gb/s以太网,这些端口与服务器上安装的ADS40G双口HBA连接——一款专用的网卡,之所以被称为HBA是因为它们只用来访问ADS1000中的NVMe SSD

 

FPGA+以太网Switch架构联想到NetBRIC

 


 

上图就是ADS1000IOM控制器,我用红色字体标出哪几颗芯片用了Intel (Altera)FPGA,再加上这款高性能产品宣称支持下一代高速非易失半导体存储器3D XPointApeiron应该是受到了Intel的欢迎和支持。

 

扩展阅读:《从技术到应用:揭开3D XPoint Memory迷雾

 

在控制器一端的3FPGA被称为Apeiron StorageController,每颗要连接4NVMe SSDPCIe 3.0 x4,注意不用双端口NVMe),也就是总共16 lane PCIe。同时为了匹配这个带宽,应该还要同时配置440Gb/s以太网连接到最大那个散热片下面的Ethernet SwitchFabric(交换机芯片)。那么这些FPGA的主要作用,就是为后端SSD提供NVMe over Ethernet Target——与Apeiron HBA上的NoE Initiator建立连接

 

既然有了40GbE交换机ASIC,每个IOM对应的12NVMe SSD就能从1640Gb/s QSFP+网口中的任何一个映射给前端主机。

 


NetBRIC S5架构图(不含管理CPU

 

这张图来自我去年撰写的一篇《NetBRIC S5:“另类”设计的全闪存阵列》,其实Apeiron实现的功能与它类似,都是将SSD/闪存以40GbE提供给前端服务器。下面我们简单做个对比。

 

NetBRIC S5没有在机箱中使用交换机ASIC,基于NIC网卡的FPGA主控与连接闪存模块的SwitchFPGA之间是点对点的私有协议。如果是NIC网卡故障可以切换别的网卡访问数据Switch FPGA故障会影响到其后端2Flash模块的访问(这就是故障域)。如果要在NIC FPGA上实现跨SwitchFPGA数据副本,技术上看应该可以实现,不过其主要面对的互联网用户可能只拿它存放Cache数据,或者由前端主机实现跨机箱的数据复制。

 


 

NetBRIC S5由于做得早一些,也可能是为了高密度(去年宣布时3U机箱内支持608TB Flash子卡),没用采用标准NVMe SSDEMC DSSD也是定制的闪存模块,当然它的硬件工程水平还是受到普遍认可的。

 

相比之下,Apeiron ADS1000机箱中是2个故障域,每个IOM硬件都有单点。这个要靠前端的计算节点来解决,我们后面就会讲到。

 

性能秘诀:NoE每一帧数据只增加4B开销

 

 

上图描绘了Apeiron NoEFrame(帧)结构。我们看到在12BEthernet L2 Header2B Ehter Type之后只加入了一个4BNoE Header,之后就都是PCIeTLP,直到尾部4B FCS。这个封装每一帧只有固定大小的4B开销,所以说性能好。

 

右边的示意则介绍了Apeiron Data Fabic。在Apeiron Storage Controller和主机端的Apeiron HBA之间只隔着以太网交换机和网卡的PHY/MAC&Link,因此从NVMe Virtualization软件栈到SSD的延时只有3µs

 

上层依赖分布式存储软件

 


 

这是一套包含多个计算节点的数据存储交换Fabric,后端的Slice我理解可以是多台ADS1000,整套存储系统由计算节点上运行的“分布式存储处理软件”聚合而成。ADS1000的作用就相当于JBOD,只是不像共享SASJBOD那样到每个驱动器的连接路径都是完全冗余的。

 

故障切换和自动复制

 


 

上图示意的是计算节点的Failover。由于每个节点都可以访问ADS1000,在节点故障时只需要将元数据remap到另一备用节点即可恢复访问。这里号称节点rebuild时间从10小时降低到10秒,当然本身就不需要复制/重建数据的过程。

 


 

Apeiron的自动复制被称做“HiddenMirror(隐含镜像)”,这种透明备份方式采取硬件辅助的软件配置来实现,宣称能提升40%OP/s。我理解应该是同步复制,只不过在FGPA-FPGA之间完成而可以对前端计算节点透明。其实应该还有一种方式,既然NoE属于SCSI之外的私有协议,ADS40G HBA应该能够同时向后端2个目标写入数据?当然这样做可能会牺牲带宽。

 

“无损”性能、单台服务器250IOPS

 

在了解原理之后,讨论性能的部分反而感觉轻松了。

 


 

Apeiron的资料中对比了同一块Intel P3700 1.6TB SSD直连服务器和在ADS1000中的表现,可以看到读写IOPS和延时都相差无几ESG的报告中也是这种测试,毕竟不需要配很多盘就能看到NoE的效果。

 


 

上图是用一台1U服务器做的测试。深蓝色方块代表DAS本地直连SSD,可以看到当并发任务x队列深度达到200时基本达到1百万左右的峰值IOPS,这个与我在《突破百万IOPSblk-mq释放SCSI性能》一文中列出的(SASRAID HBA硬件限制相符。浅蓝色圆圈代表Apeiron ADS中的一种SSD配置,并发度400左右接近峰值,比IOPS DAS方案提高了95%;而红色三角更换了另一种更快的SSD,并发度600时达到250IOPS,进一步超出DAS方案150%

 

单台服务器测到2.5M IOPSApeiron表示用外部持久存储达到了一个新的性能水平。具体的配置是:1U, Dual socket Intel Haswell-EP Xeon processors (2.3GHz, 14 CORE,64GB/proc),至于NVMe over Ethernet有没有RDMA或者用户态DPDK/SPDK我就不确定了,有知道的朋友可以在文章下面留言。

 

Apeiron ADS1000相比,EMC DSSD有针对闪存模块完善的RAID保护,以及对象//文件3种访问方式。从单台设备功能相比两者不在同一量级,不过可以从中看到一个趋势:随着NVMe成为存储系统中主流的闪存连接方式,可能又会出现一轮像之前全闪存阵列初创厂商那样“百花齐放”的局面,集中与分布式存储的竞争将在这里延续,鹿死谁手还很难说。

 

总之我喜欢差异化,包括硬件在内:)

 


:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312

 

欢迎转发链接分享,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行及如下二维码。

 

感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注


点击下方“阅读原文”,查看更多历史文章↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存