
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 每周重构会议
评估项目申请人的步骤
- 从源代码构建 ceph 并运行基本的存储桶通知测试
- 修复存储桶通知中的一些小问题
实习期间前两周的工作内容: 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
预期成果
- 找到并修复模糊工具发现的 RGW 中的安全问题
- 拉伸目标:将工具集成到自动 teuthology 运行中
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 每日同步
评估项目申请人的步骤
- 通过 docker-compose 和 kcli 构建 ceph 仪表板
- 能够理解问题并提出有用的问题
- 渴望学习和贡献
实习期间前两周的工作内容
学习 Ceph 和存储,并逐渐为仪表板做出贡献。
预期成果
改进的仪表板可用性。