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效能再创新高不会太久。

Ceph Upstream 添加 InfiniBand RDMA 互联支持相关推荐

  1. springboot的jsp应该放在哪_详解SpringBoot 添加对JSP的支持(附常见坑点)

    序言: SpringBoot默认不支持JSP,如果想在项目中使用,需要进行相关初始化工作.为了方便大家更好的开发,本案例可直接作为JSP开发的脚手架工程 SpringBoot+War+JSP . 常见 ...

  2. WordPress 多媒体库添加分类和标签支持

    https://www.xhsay.com/wordpress-attachment-taxonomies.html 时不时看到有朋友说 WordPress 这么强大的系统,怎么多媒体附件都不支持分类 ...

  3. Eclipse如何添加Maven的scala支持

    Eclipse如何添加Maven的scala支持 搜索发现我们的Eclipse是没有Scala的 添加我们的配置 org.scala-tools.archetypes scala-archetype- ...

  4. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 图片:为图片添加圆角 (IE8 不支持)

    <!DOCTYPE html> <html><head><meta charset="utf-8"> <title>菜鸟 ...

  5. laravel-admin使添加、编辑按钮支持附带参数

    本篇博客教大家如何通过修改laravel-admin源码,使添加.编辑按钮支持附带参数,从而支持我们一些特殊业务.(对于高级版本的laravel-admin编辑方法不支持) 一.自定义添加方法 我们修 ...

  6. 【Abp VNext】实战入门(七):【1】xxx.Web网站层 —— API接口服务添加跨域访问支持

    一.前言 通过命令 abp new AoRuiDe.GasMonitoring 或者直接从官网下载的项目,默认没做跨域配置,会导致在前后端分离的网页中去访问后端接口的时候报错"Access- ...

  7. linux 桌面缩放比例,Linux Mint 20 Cinnamon 4.6桌面环境添加分数比例缩放支持

    如果您在高分辨率显示器上使用Cinnamon桌面环境?那么有一个好消息是:Cinnamon 4.6桌面环境将添加分数比例缩放支持,它会引入到Linux Mint 20(基于Ubuntu 20.04 L ...

  8. InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念

    核心基础概念 FCoE:以太网光纤通道 (Fibre Channel Over Ethernet) 它是一个存储网络协议,允许在以太网上发送光纤通道帧, 且IP通信和光纤通道通信使用相同的以太网端口. ...

  9. IdentityServer4(10)- 添加对外部认证的支持之QQ登录

    前言 前面我们提到过IdentityServer4是可以添加外部认证的,如果外部认证支持OAuth2,那么添加到IdentityServer4是非常简单的,在ASP.NET Core下提供了非常多的外 ...

最新文章

  1. Linux下C高手成长过程----经典书籍推荐
  2. 排名前20的网页爬虫工具,超多干货
  3. SpringMVC搭建+实例
  4. JDK8HashMap的扩容核心解读,尾插法
  5. 2018数据库流行度12月排行:Oracle续跌至年内低位,PostgreSQL激增创新高
  6. Java 单例模式详解(转)
  7. 安装debian,服务器选择ftp2.cn
  8. getlasterror 126
  9. Infor M3咨询服务调研报告-Infor M3咨询服务生产基地、总部、竞争对手及市场地位
  10. 【ERROR】ValueError: Of the four parameters: start, end, periods, and freq, exactly three must be spec
  11. 百度信息流推广oCPC调研
  12. Vue批量生成二维码并打包下载
  13. 国产存储芯片,emmc,性能强
  14. 10年测试经验分享:新手怎么找软件测试的项目?
  15. 阿里云 centos7静默安装oracle12c,使用navicat 连接oracle数据库
  16. FTP主动模式和被动模式图解
  17. iphone的ibooks如何导入pdf?
  18. 开源ERP软件Odoo提速指南
  19. mpvue返回上一个页面_小程序返回上一页 - 芊芊一隅
  20. Linux下的逻辑卷建立以及磁盘阵列的概念

热门文章

  1. 应用市场自然量预估_VIVO市场ASO实战详解
  2. mysql sqlserver对比_很用心的写了 9 道 MySQL 面试题
  3. onkeyup,onkeydown和onkeypress的区别介绍
  4. c语言中 char怎样用,C语言中char*和char[]用法区别分析
  5. 第十七届全国大学生完全车模组竞速赛方案 - 草案
  6. 新版信标的信号板调试
  7. 一文看全北科智能车创新历程
  8. 根据声音信号测量距离
  9. vue.js反编译_基于electron-vue开发的微信小程序反编译客户端
  10. 手机虚拟摄像头_没键盘也能打字?三星展示最新虚拟键盘Selfie Type:是真的