XSKY 为Ceph Upstream添加InfiniBand RDMA互联支持

10月19日,国内软件定义存储企业XSKY开源了历时近1年时间研发的基于Ceph的IB RDMA互联支持,并且向Ceph社区提交了IB RDMA的协议栈代码。基于该部分代码,Mellanox研发部门表示也会参与其中,双方将共同孵化和完善基于AsyncMessenger的网络通信引擎,试图大幅度提升IO路径上的网络性能。此外,XSKY将协同一些企业用户基于此进行大规模Ceph集群测试。

XSKY从成立至今在Ceph社区当中一直围绕高性能方面积极贡献代码,此次将IB RDMA的开源将会对加速Ceph高性能的步伐产生极大意义。

RDMA(Remote Direct Memory Access)是通过利用硬件 Offload 能力,解决网络传输中的延迟,提供吞吐的技术。在高性能计算领域中, RDMA 被大量使用于网络数据传输与运算交互。

RDMA 定义了一种异步网络编程接口,称做 RDMA Verbs。应用程序主要于 Verbs 交互实现 RDMA 的优势。Verbs 掩盖了底层硬件差异,因此,无论 InfiniBand 还是以太网都可作为 Verbs 的后端,于是可实现RoCE(RDMA over Converged Ethernet)。

在 RDMA 的世界里,主要有几种协议簇。第一是 RDMA 之下的协议栈,如iWARP,RoCE,Infiniband HCA,RoCE v2 甚至 Software RoCE。这些主要是为RDMA提供底下的传输真实介质和链路实现。第二种是RDMA之上的应用协议,在存储领域包括iSER(iSCSI over RDMA),SMB 3 with SMB Direct,NFS/RDMA,SRP(SCSI over RDMA),以及现在最火热的NVMe over Fabric。

Host Network现在于NVMe Over Fabric的领域最为火热,如下图所示,Head Node Cluster Network和Storage Network 实际上作为传统存储机头的交换网络以及机头跟存储介质池的网络。前者过去通常是PCIe或者InfiniBand,后者通常是SAS或者Infiniband。在Ceph中,这两个也对应了 Ceph 的 Public Network 和 Cluster Network。

而在目前主流分布式软件定义存储里,仅华为公司的 FusionStorage 对外公开支持 InfiniBand/RDMA。而 Ceph 过去的 Infiniband/RDMA 虽然在社区被提及过,实际上是概念验证阶段,最大的原因也许是 Ceph 的网络接口以及规定语意比较复杂,使得在2014 年就已经进入主线的 XioMessenger(基于 AccelIO)至今未能满足Ceph核心对于网络层状态的需求而被投入应用。

今年在Raleigh举行 的 Ceph Next Day 上,有一个专门的话题,讨论 XioMessenger 无法满足 Ceph 语意的问题。主要在于 Ceph 所规定的 Messenger 语意和 Policy 太过复杂,使得非 TCP/IP 栈在无法充分测试的情况下,基本上很难达到要求。因此,为了解决 RDMA 进入 Ceph 的问题,主要发展出两个方向。第一个是降低 Ceph核心对于网络层状态的要求,减少 Messenger 需要实现的逻辑。但这个方向一开始就被开发者否决了,因为减少了Messenger的逻辑就意味着要增加其他地方的逻辑,改动量太大。第二个方向就是基于目前 AsyncMessenger 的框架(得益于之前 DPDK 的引入定义),扩展出不同的网络后端而无需关心上层会话逻辑。

因此,基于 AsyncMessenger 的 RDMA 实现成为 Ceph 支持 RDMA 的计划。在最近一次跟社区的交互中,这个方向已经被社区领袖 Sage Weil 认为是正确的做法。

在10月19日,XSKY 正式把孵化出来的基于 AsyncMessenger 的 RDMA 网络引擎提交到 Ceph 社区,并开始进入 K 版本的 Pending 窗口。通过 AsyncMessenger 的 RDMA 网络引擎,最大优势是简单且高性能。不同于 XioMessenger 基于 AccelIO 的复杂抽象,该RDMA实现跟大多数RDMA应用一样直接采用原生的 Verbs 接口,充分整合到 Ceph 已有的框架中。大大降低了复杂度,提高了易用性。

至此,在一个版本周期内,Ceph将完成了整个网络层的大重构,从启用AsyncMessenger作为默认网络引擎,到释出DPDK+SPDK的网络栈,现在的RDMA引擎支持。使得Ceph在网络层面允许用户选择不同要求、性能的网络栈。

以上三种引擎,历时一年,多次更新并提交到社区,皆由XSKY团队发起并与硬件领导厂商Intel、Samsung、Mellanox等共同优化维护。三种网络引擎分别适配用户对于不同场景,不同特点的网络要求。之前Ceph结合DPDK+SPDK的实践,或代表了未来高速以太网的黄金配合,但最大的遗憾是需要等待Ceph BlueStore的成熟以及SPDK生态的稳定。但RDMA提供了合适的折中,在硬件配置较优的条件下,能够跟已有成熟的Ceph IO栈快速整合使用。

Red Hat 首席存储科学家Sage Weil在关于此次更新的意见中提到,“This definitely seems like a nice way to approach RDMA support since it doesn't require a full rewrite of the messenger protocol like msg/xio.”我们相信,这次RDMA之于Ceph upstream的变化在提升性能方面意义重大,虽然不能说这一网络层改进立即就适当应用于普通企业的生产,但通过社区和硬件领导厂商配合下的持续优化,可以期待Ceph效能再创新高不会太久。

原文发布时间为:2016年10月21日

本文来自合作伙伴至顶网,了解相关信息可以关注至顶网。

    时间: 2024-09-16 00:15:27

    XSKY 为Ceph Upstream添加InfiniBand RDMA互联支持的相关文章

    Ceph Upstream 添加 InfiniBand RDMA 互联支持

    10月19日,国内软件定义存储企业XSKY开源了历时近1年时间研发的基于Ceph的IB RDMA互联支持,并且向Ceph社区提交了IB RDMA的协议栈代码.基于该部分代码,Mellanox研发部门表示也会参与其中,双方将共同孵化和完善基于AsyncMessenger的网络通信引擎,试图大幅度提升IO路径上的网络性能.此外,XSKY将协同一些企业用户基于此进行大规模Ceph集群测试. XSKY从成立至今在Ceph社区当中一直围绕高性能方面积极贡献代码,此次将IB RDMA的开源将会对加速Ceph

    ssh做的一个web项目,添加xfire的webservice支持后报错,小弟急求

    问题描述 由于我们提供的接口有点多,我就想在原来的工程上添加xfire的webservice支持,谁知道,添加了报错,看了不少帖子说是spring的jar包和spring-.1.2.6.jar冲突,然后把后面的jar包删除,不包那个错,[dtss]2015-01-1517:35:39,346ERROR[main]org.springframework.ws.transport.http.MessageDispatcherServlet.initServletBean-290|Contextini

    VBasic 6.0 怎么给控件添加它所不支持的功能

    问题描述 VBasic 6.0 怎么给控件添加它所不支持的功能 VBasic 想改变下XP工具条控件的功能,让它允许用户鼠标拖动和释放,求具体的做法 解决方案 你可以自己封装一个控件,把原来的控件嵌入其中,添加你的功能

    PaaS供应商Engine Yard添加对Node.js支持

    &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;Engine Yard Labs项目的开发是用以加快对新特性和服务的实验. 平台即服务(PaaS)供应商Engine Yard在其新项目里添加了对Node.js的支持,用以加快对新特性和服务的实验. Engine Yard Labs项目添加了一系列处于实验中的服务."它让我们在市场中更快地实现创新,"Engine Yard产品管理和营销副总裁Mik

    Use InfiniBand RDMA split storage & compute

    RDMA是一种特殊的协议,主要用于IB网络,高吞吐量,低延迟的远程存储访问.并且不需要耗费CPU时间,不需要在应用内存和内核内存直接拷贝数据. 一般可被用于大型的网络存储访问.或者有利于将计算资源和存储资源分离,使用RDMA提供低延迟和高吞吐量, 降低CPU开销. 下面是关于drma的介绍. In computing, remote direct memory access (RDMA) is a direct memory access from the memory of one compu

    iPhone添加LotusNotes自动同步支持

    5月14日消息,据国外媒体报道,IBM将为iPhone用户添加对Lotus Notes的自动同步支持. 本周二公司表示Lotus Notes和将于今年推出的Domino 8.5.1将共同推出用于Lotus Notes Traveler的资料管理(Exchange ActiveSync)支持.以此实现在iPhone上接收几乎实时的新信息通知以及会议. 使用苹果智能手机的用户已经可以通过iNotes Ultralite登陆Notes电子邮件,然而新版本的Lotus Notes Traveler将使用

    StreamingPro添加Scala script 模块支持

    SQL 在解析字符串方面,能力还是有限,因为支持的算子譬如substring,split等有限,且不具备复杂的流程表达能力.我们内部有个通过JSON描述的DSL引擎方便配置化解析,然而也有一定的学习时间成本. 我们当然可以通过SQL的 UDF函数等来完成字符串解析,在streamingpro中也很简单,只要注册下你的UDF函数库即可: "udf_register": { "desc": "测试", "strategy": &q

    wdcp添加tomcat,同时支持php和java教程_win服务器

    用wdcp官方提供的脚本安装lnamp环境,安装请参考:http://www.wdlinux.cn/bbs/thread-6292-1-1.html,本文主要讲如何在LNAMP环境下安装JDK+Tomcat6使同一台服务器同时支持PHP和JAVA语言.服务器系统和各软件版本如下所示 [root@E ~]# uname -a Linux E.CentOS6.4 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_

    Easypanel免费VPS面板安装及添加站点应用且支持Linux/Windows

    无论我们用户在使用VPS.服务器建站过程中是否有使用过WEB面板,但我们不用质疑VPS面板对于建站是着实的方便.尤其对于刚从虚拟主机过度到VPS.服务器的用户,尤其是我们还选择的是Linux服务器系统,让我们学习和使用命令安装WEB环境或者是维护肯定是比较为难的. 我们用户还是更倾向的喜欢安装可视化VPS面板,比如在之前的文章中老蒋也有分享过AMH.WDCP.Kloxo-MR.ZPanel.Virtualmin/Webmin等等国内.国外常见或者不常用的面板安装和使用.应该来说每一款面板都有一定