Google Summer of Code

Google Summer of Code (g.co/gsoc) 是 Google 的指导计划,旨在为开源社区带来新的贡献者。

Google Summer of Code 是一个独特的项目,18 岁及以上的开源新贡献者与导师配对,向他们介绍开源社区,并在夏季为他们提供在真实世界的开源项目上工作的指导。项目涵盖广泛的领域,包括:云、操作系统、图形、医学、编程语言、机器人、科学、安全等等。GSoC 贡献者会获得津贴来完成他们的小型(约 90 小时)、中型(约 175 小时)或大型(约 350 小时)项目。

GSoC 是一个竞争激烈的项目,所以不要等到最后一分钟才准备!GSoC 贡献者应在 2025 年 2 月 27 日宣布组织机构后,尽快联系他们感兴趣的项目导师。潜在的 GSoC 贡献者可以从 2025 年 3 月 24 日至 4 月 8 日在 g.co/gsoc 申请 Ceph 的项目。

请参阅我们为 GSoC 贡献者提供的项目列表,并 了解如何开始贡献

如有任何问题,请联系 Vallari Agrawal (vallari.agrawal@ibm.com)。


Teuthology on Podman

导师姓名: Zack Cerza, Kamoltat (Junior) Sirivadhna Aishwarya Mathuria, Vallari Agrawal

导师邮箱: zack1@ibm.com, ksirivad@ibm.com, aishwarya.mathuria@ibm.com, vallari.agrawal@ibm.com

难度: 困难

项目工时 175

所需技能: python, 容器化, linux

Ceph 的子组件: Ceph 集成测试框架

项目描述

ceph-devstack 是一个正在开发中的工具,它使用无 root 的 podman 容器来部署缩小的 teuthology 实验室。它已被证明对于测试 teuthology 及其相关服务的更改非常有用,使我们能够更轻松、更灵活地更改组件,而无需担心导致停机。

它具有一些基本的运行 Ceph 测试的能力,但如果投入更多精力,将从中受益匪浅。

改进和扩展 ceph-devstack 执行针对 Ceph 构建的 teuthology 测试的能力。该项目涉及编写 Python 代码和测试来编排 podman 容器,并使用 SELinux、CGroups 和 Linux 功能等安全系统。

有关评估任务的更多详细信息,请参阅 此处

实习生可以参加的站立会议/每周电话会议: Teuthology 每周会议

评估项目申请人的步骤: TBD

实习期间前两周的工作内容: TBD

预期成果

扩展 ceph-devstack 执行 teuthology 测试的能力


smartmontools drivedb.h 后处理器

导师姓名: Anthony D'Atri, Sunil Angadi

导师邮箱: anthony.datri@ibm.com, sunil.angadi@ibm.com

难度: 中等

项目工时 90

所需技能: c++, 也许是 python 或 golang

Ceph 的子组件: 可观测性

项目描述

smartmontools (smartctl) 几乎是获取存储设备指标和计数器的唯一工具:SATA 的 SMART,一些 SAS 的内容,以及通过 nvme-cli 到 NVMe 的内容。它利用一个名为 drivedb.h 的运行时文件,该文件指示应使用哪些数字 ID 查找哪些属性,以及如何解释它们。drivedb.h 是一团糟,上游 smartmontools 可能抵制彻底重构。例如,SSD 损耗可能标记为“剩余寿命”或“损耗等级”或多个其他字符串。有些设备还报告已用损耗,有些报告剩余损耗。

一项任务将是向 c++ 代码添加一个解释基元,以便 drivedb.h 条目可以指定结果应从 100 中减去。
更大的任务将是编写 drivedb.h 的后处理器,该后处理器或多或少是一系列正则表达式调用,将现有的自由格式属性标签名称合并到一个规范化的定义集中。许多工具只是传递文本标签,因此进行有意义的分析或查询很困难;通常只有一小部分数据实际上被捕获为结果。输出还包括数字属性 ID,这些 ID 的变化较小,但依赖它们而不是文本标签也存在问题,因为这些数字 ID 也不是严格标准化的。我见过一些驱动器在与大多数其他驱动器不同的数字 ID 上报告指标,或者在大多数其他驱动器报告该 ID 上的指标时报告不同的指标。

有关项目和评估步骤的更多详细信息,请参阅 此处

实习生可以参加的站立会议/每周电话会议: TBD

评估项目申请人的步骤: 利用代码库和编写胶水代码的能力。

实习期间前两周的工作内容: TBD


多多益善

导师姓名: Yuval Lifshitz

导师邮箱: ylifshit@ibm.com

难度: 困难

项目工时 350

所需技能: C++, Python

Ceph 的子组件: RGW

项目描述

项目的详细描述和评估步骤可以在 此处 找到。

持久存储桶通知是一个非常有用的强大功能

技术演讲:https://www.youtube.com/watch?v=57Ejl6R-L20

用例示例:https://www.youtube.com/watch?v=57Ejl6R-L20

但是,它们可能会带来性能问题,因为关于特定存储桶的通知被写入单个 RADOS 队列(与写入存储桶的多个存储桶分片分布不同)。因此,如果将小对象写入存储桶,通知的开销会很大。在这个项目中,我们的目标是创建一个分片存储桶通知队列,以允许更好地发送持久存储桶通知的性能。

实习生可以参加的站立会议/每周电话会议: RGW 每日站立会议,RGW 每周重构会议

评估项目申请人的步骤

实习期间前两周的工作内容: TBD

预期成果


温暖而毛茸茸的

导师姓名: Yuval Lifshitz, Pritha Srivastava

导师邮箱: ylifshit@ibm.com, Pritha.Srivastava@ibm.com

难度: 中等

项目工时 175

所需技能: C++, Python 以及取决于所使用的工具。

Ceph 的子组件: RGW

项目描述

RGW 的前端是一个 S3 REST API 服务器,在这个项目中,我们想使用 REST API 模糊器来测试 RGW 的安全问题(和其他错误)。项目的第一个步骤将是选择合适的工具(例如 https://github.com/microsoft/restler-fuzzer),用 AWS S3 OpenAPI 规范将其填充,并查看它连接到 RGW 时会发生什么。修复模糊器发现的问题会很好,但真正的拉伸目标是将这些测试集成到 teuthology 中。

实习生可以参加的站立会议/每周电话会议: RGW 每日站立会议,RGW 每周重构会议

评估项目申请人的步骤

项目的详细描述和评估步骤可以在 此处 找到。

实习期间前两周的工作内容: TBD

预期成果


Ceph Dashboard 可用性改进

导师姓名: Afreen Misbah

导师邮箱: afreen@ibm.com

难度: 容易

项目工时 175

所需技能: Typescript, Angular,以及对 HTML 和 CSS 的基本了解。

Ceph 的子组件: Dashboard

项目描述

Ceph Dashboard 是 Ceph 的管理和监控工具。它是一个带有 Angular/Typescript 前端的 Web 应用程序工具,后端为 Python。

我们正在努力提供更多的可用性工作流程并解决 UX 问题,以使 Ceph 用户的管理和监控更加容易。

该任务包括改进通知系统并创建一个从仪表板管理 NVMe-oF 设备的流程。

详细描述可以在 此处 找到

实习生可以参加的站立会议/每周电话会议: Dashboard 每日同步

评估项目申请人的步骤

实习期间前两周的工作内容

学习 Ceph 和存储,并逐渐为仪表板做出贡献。

预期成果

改进的仪表板可用性。