Ceph 开发人员峰会 – 总结和会话视频

scuttlemonkey

目录

  1. 简介

  2. 开场致辞

  3. 上午会话

  4. Ceph 管理 API

  5. 以擦除编码作为存储后端

  6. RGW 地理复制和灾难恢复

  7. 下午会话

  8. RADOS Gateway 重构为库,内部 API

  9. Chef Cookbook 合并和 ceph-deploy 改进

  10. 在 RGW 中强制执行存储桶级别配额

  11. 测试、构建/发布和 Teuthology

  12. CephFS 的客户端安全

  13. RADOS 命名空间、CRUSH 语言扩展、CRUSH 库

  14. 内联数据支持

  15. Ceph 统计和监控工具

  16. Fallocate/打孔

  17. CephFS 操作的钩子框架

  18. 结论

简介

本周标志着第一个 Ceph 开发人员峰会,社区聚集在一起讨论专注于下一个稳定版本 ‘Dumpling’ 的开发工作。对于这样一个精品活动来说,参与人数相当可观!实时视频流的并发参与者超过 50 人,在此期间,相对较新的 Ceph wiki 获得了近 400 名独立访问者。参与者来自世界各地

  • 美国
  • 中国
  • 德国
  • 法国
  • 英国
  • 菲律宾
  • 印度
  • 澳大利亚
  • 比利时
  • 荷兰
  • 葡萄牙

社区提出了大量的工作,几乎所有工作都已被接受并讨论纳入 Dumpling。我们对参与人数和参与者的总体素质都非常满意。拥有一个出色的社区使我们能够始终对我们所做的事情感到兴奋。

以下您将找到每个会话视频的分割,并附有简短的描述以及会话期间出现的蓝图、以太垫和 IRC 日志的链接。原始 峰会页面 也已更新为包含适当的链接以供后人参考。我们计划保留这些页面,以便人们能够尽可能地回顾 Ceph 的开发历程。如果您有任何问题或反馈,请发送电子邮件至 社区团队

我们将为每个稳定版本(季度)举办一次开发人员峰会,因此如果您有兴趣参与,请随时在 wiki 上 发布蓝图 以供考虑。每个开发人员峰会的会话都直接从提交的蓝图选出。

如果您有兴趣以较小的规模为 Ceph 做出贡献,请随时深入研究,克隆我们的 github 仓库 并提交您所做的任何更改的拉取请求。

现在,进入峰会!

开场致辞

[ 以太垫 ] [ IRC 日志 ]

Sage 用几张幻灯片开始了活动 总结了活动、Cuttlefish 开发的进展以及接下来的步骤。本次活动实际上是我们首次推广开放路线图讨论并真正推动社区参与。该活动完全是虚拟的,因此需要讨论一些工具,解释我们计划如何进行活动。

  • Google Hangouts – 视频会议设置使用 Google Hangout 进行广播。这意味着我们有一小部分专门的参与者在摄像头前,而更大的社区通过实时 YouTube 流观看并通过 IRC 进行评论。
  • Ceph Wiki – 在活动之前,用户可以在 Ceph wiki 上提交蓝图,以提出要进行的工作。这让每个人都清楚地了解正在讨论的内容以及作者计划如何实现目标。
  • Etherpad – 每个会话都有一个关联的以太垫,用于在会话期间进行协作笔记。这使我们能够捕捉架构决策、问题、工作项目和其他会话期间的笔记。
  • IRC – 每个轨道都有自己的记录 IRC 频道用于讨论。这允许异步讨论、站外链接以及向“发言者”提出问题的格式,这些格式可以记录并发布以供以后使用。

本次活动的目标最终是确保 Dumpling 提出的所有开发工作都是可行的、协调的并且被充分理解。建立了蓝图所有权,讨论了实施问题,并确定了下一步骤。Inktank 的团队非常希望确保社区拥有充分的工具来充分参与,并乐于充当任何向主仓库推送代码的人员的资源。

上午会话

对于这样一个小型活动,实际上有很多会话。总共讨论了 13 个蓝图。Inktank 分享了他们计划为 Dumpling 版本贡献的工作。这项工作包括地理复制、管理 API、RBD 对 OpenStack Havana 的支持以及其他一些工作。社区贡献了许多计划,包括 RADOS 网关的模块化、Ceph 统计和报告工作、擦除编码以及内联数据支持等等。请阅读下方每个会话的快速摘要以及相关的视频、IRC 聊天记录和以太垫。


Ceph 管理 API

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

Inktank 的 Dan Mick 率先介绍了 Inktank 计划构建的管理 API,该 API 将提供一个 RESTful 端点来执行性能监控和管理任务。这里的目标是允许完全集成到所需的任何管理工具或仪表板中。具体的用例示例可能包括包含在 OpenStack Horizon 或类似技术中。


以擦除编码作为存储后端

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

Loic Dachary 和 Christopher Liljenstolpe 共同开始了下一个会话,对擦除编码进行了雄心勃勃的展望。

“对于一类用户,需要非常持久的数据,但满足该持久性的成本使用 xN 复制会变得成本禁 prohibitive,如果存储的数据量很大。一个出现此问题的情况是基因组数据。通过使用 3 倍复制,20PB 的基因组存储库需要旋转 60+PB 的磁盘。但是,Ceph 的其他功能非常吸引人(例如,使用通用的存储基础设施来存储对象、块和文件系统、CRUSH、自愈基础设施、非破坏性扩展等)。”


RGW 地理复制和灾难恢复

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

Inktank 的 Yehuda Sadeh 领导了下一个会话,讨论了他正在使用 RADOS Gateway (RGW) 进行地理复制的工作。当前的 Ceph 模型期望所有节点之间具有高带宽、低延迟的连接。这使得 WAN 规模复制变得不切实际。本次会话展示了 Inktank 计划如何对灾难恢复和地理最终一致性使用 RGW 进行第一次尝试。


下午会话

下午的轨道旨在小型化、集中化,分为两个轨道。轨道 1 讨论了更多 RGW 讨论、CephFS 安全性、内联数据支持和 fallocate/打孔。轨道 2 讨论了编排、测试、统计和监控、RADOS 命名空间以及 Ceph FS 的钩子框架。


RADOS Gateway 重构为库,内部 API

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

42on 的创始人 Wido den Hollander 正在倡导将 RADOS Gateway (RGW) 移出核心代码并使其更加模块化的工作。这将允许许多改进灵活性以及无需 FastCGI 和 Apache 即可启动 RGW 的能力。


Chef Cookbook 合并和 ceph-deploy 改进

[ 无蓝图 ] [ 以太垫 ] [ IRC 日志 ]

虽然本次会话没有蓝图,但 Inktank 的 Alexandre Marangone 和 Dan Mick 举办了一次会话,讨论了编排工作,包括合并 Chef 菜谱以及对 ceph-deploy 所做的改进。讨论包括 Ceph 当前部署的许多编排工具,包括 Juju、Salt、Puppet 和其他工具。重点是如何从 ceph-deploy -> chef 扩展到其他工具。


在 RGW 中强制执行存储桶级别配额

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

Inktank 的 Yehuda Sadeh 再次出现,讨论了在 Ceph 对象网关中强制执行存储桶级别配额的可行性。这里的重点是如何简化、优化并确保在多个网关之间准确记录,而不会产生巨大的开销。


测试、构建/发布和 Teuthology

[ 无蓝图 ] [ 以太垫 ] [ IRC 日志 ]

Sage 承担了另一个无蓝图的会话,讨论了如何使用 Teuthology 框架自动构建和测试 Ceph,以及该框架如何发展。本次会话的成果包括创建大型集群测试套件、qemu gitbuilder、性能回归、可能的 chart.io 图表以及其他一些成果。


CephFS 的客户端安全

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

目前,对 CephFS 的访问有些“全有或全无”的模式。几位人士对内置更强大的安全措施感兴趣,用于用户和/或树级别安全。Mike Kelly 正在领导解决此问题的工作,并最终可能会将一些 RADOS 命名空间讨论与他的解决方案结合起来。


RADOS 命名空间、CRUSH 语言扩展、CRUSH 库

[ 蓝图 1, 蓝图 2, 蓝图 3 ] [ 以太垫 ] [ IRC 日志 ]

Sage 同时处理了几个蓝图,本次会话包括对 RADOS 和 CRUSH 的深入讨论。重点是如何扩展两者以处理新的或更复杂任务。


内联数据支持

[ 蓝图 ] [ 以太垫 ] [ IRC 日志 ]

NUDT 的 Li Wang 已经开始着手处理行内数据支持。这里的希望是允许一个挂载选项,将元数据作为每个文件的扩展属性存储。

“行内数据是加速小文件访问的一个好特性,主流的本地文件系统都具备这个特性,例如 ext4、btrfs 等。让 Ceph 实现这个优化应该是有益的,因为它能够节省客户端计算对象位置和与 OSD 通信的时间。希望能够对小文件流量实现良好的 IO 速度提升。”

对于典型的 Ceph 文件访问流量,客户端首先向 mds 请求元数据,然后与 osd 通信获取文件数据。如果一个文件非常小,其数据可以与元数据一起存储,作为扩展属性。在打开一个小文件时,osd 将从 mds 接收到文件元数据以及数据,从而节省了计算对象位置以及与 osd 通信的时间。”


Ceph 统计和监控工具

[ 蓝图 ] [ Etherpad ] [ IRC 日志 ]

虽然 Ceph 内部跟踪一些信息,但它也暴露了大量可以被其他工具吸收的知识。Dreamhost 的 Kyle Bader 讨论了他们正在使用 graphite 和 nagios 等工具所做的一些工作,以及如何与社区共享这些数据。希望能够围绕 Ceph 集群的监控和统计建立一些共享的社区知识。


Fallocate/Hole Punching

[ 蓝图 ] [ Etherpad ] [ IRC 日志 ]

NUDT 的 Li Wang 负责另一场会议,讨论如何实现 hole punching。由于这应该是一个相对较小的改动,因此讨论相对简短。


CephFS 操作的钩子框架

[ 蓝图 ] [ Etherpad ] [ IRC 日志 ]

在一天中的最后一场会议上,UCSC 的 Yasuhiro Ohara 提出了一项钩子框架的提案,该框架将能够为 CephFS 操作执行回调函数。关于 fork/exec 与一些不太重量级的方案的实现决策,进行了大量的讨论。


结论

虽然在使用 Google Hangouts 时遇到了一些技术问题,但总体来说,这是一次很棒的活动,社区参与度很高。现在,已经确定了实现决策和下一步骤,开发工作开始了!这些蓝图中的每一个都旨在成为一个动态文档,记录所需的注释、更新和任务。如果您有兴趣参与现有的蓝图或未来的开发,请联系所有者或 社区团队 并开始参与!再次感谢所有参与者,并帮助使这次 Ceph 开发者峰会取得圆满成功。

scuttlemonkey 结束