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 doesnt require a full rewrite of the messenger protocol like msg/xio.”我们相信,这次RDMA之于Ceph upstream的变化在提升性能方面意义重大,虽然不能说这一网络层改进立即就适当应用于普通企业的生产,但通过社区和硬件领导厂商配合下的持续优化,可以期待Ceph效能再创新高不会太久。
原文发布时间为:2016年10月21日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。系列解读 SMC-R:融合 TCP 与 RDMA 的 SMC-R 通信(二) 通过上一篇文章 《系列解读 SMC-R:透明无感提升云上 TCP 应用网络性能(一)》我们了解到,RDMA 相对于 TCP 具有旁路软件协议栈、卸载网络工作到硬件的特点,能有效增加网络带宽、降低网络时延与 CPU 负载。而内核网络协议 SMC-R 在利用 RDMA 技术的同时、又进一步完美兼容了 socket 接口,能够透明无感的为 TCP 应用带来网络性能提升。因此,龙蜥社区高性能网络 SIG 认为 SMC-R 将成为下一代数据中心内核协议的重要组成,对其进行了大量优化,并积极将这些优化回馈到上游 Linux 社区。
浅析GPU通信技术(下)-GPUDirect RDMA 浅析GPU通信技术(上)-GPUDirect P2P 浅析GPU通信技术(中)-NVLink 浅析GPU通信技术(下)-GPUDirect RDMA 1. 背景 前两篇文章我们介绍的GPUDirect P2P和NVLink技术可以大大提升GPU服务器单机的GPU通信性...
相关文章
- 目前主流编译器对C++11特性的支持情况
- 添加字体与字符集locale支持(基于busybox文件系统)
- openwrt添加新设备支持(定制固件一)
- 马化腾2021年薪为4410万元,同比下降25%;淘宝支持修改账号名;Rust 1.60.0发布|极客头条
- 为Subline Text 3 添加支持ini文件语法高亮
- 部分操作系统不支持 zip unzip 大于4G的文件.
- Elasticsearch添加拼音搜索支持
- Yii2 添加国际化支持
- Autodesk正在招聘Civil、Infraworks金牌支持工程师(Premium Support Specialist)
- 给定制的vuejs组件添加v-model双向绑定支持
- Android Studio Gradle 添加.so 支持文件
- IE6支持min-width、max-width CSS样式属性
- 给app增加itunes文件共享支持的功能
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- 【ZZ】Visual C++ 6.0 精简安装版(支持VA、ICC 等等安装)
- NGINX 添加MP4、FLV视频支持模块
- 自己实现简单Web服务器,支持GET POST请求
- 《React-Native系列》35、 RN在Android下支持gif的另一种方案
- nginx添加第三方模块,以及启用nginx本身支持的模块
- Nginx支持Socket转发过程详解
- 为 ASP.NET Core (6.0)服务应用添加ApiKey验证支持