Google Summer of Code 2019

Ceph in GSoC 2019

Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.”

Ceph has been participating in Google Summer of Code for several years now, and we love it! It gives us a chance to always see our project from a fresh perspective, get ideas on how we might do things better, and work with talented students to write Open Source code, what could be better?

Projects

Ceph-Medic Improvements

Description:

Ceph-medic is a very small tool that connects to the various nodes
that make up a Ceph cluster to capture information so that it can run
checks against it and report back any potential problems that might be
difficult to catch otherwise. This project would focus on a handful of improvements and features for ceph-medic.

Improve background operation visibility

Requirements:

needed (python, c++): python – required, c++ – helpful

Description:

    Many operations in a large Ceph cluster take a long time to complete. For example,
    recovering after a node fails with hundreds of terabytes of data on slow HDDs can take days.
    To get an idea of how well operations like this are proceeding, there is currently a
    rudimentary ceph-mgr progress module that tries to provide a progress bar.
    This can be improved in several ways:
        1) report on recovery events more accurately – only some are tracked right now
        2) add progress tracking for other kinds of operations

Ceph Tracing: Instrumenting the OSD

Requirements:

  • C++

Description:

Ceph is integrating tracepoints using the Open Tracing framework to be able to diagnose problems, and understand resource allocation in running ceph clusters. This requires instrumentation of the OSD, and RGW portions of the codebase and having the tooling ready to analyze these traces. This project would be for instrumenting the OSD.

Ceph-Ansible Module Creation

Requirements:

  • Python

Description:

Ceph-ansible is a project that deploys Ceph, with Ansible.
Ceph-ansible uses ansible modules to deploy parts of ceph.
For the project you will be writing new Python modules to improve the usability of the project.
The first two modules to write will be:
  1. ceph_config module to inject ceph configuration flags into the ceph k/v store
  2. ceph_pool module to manage Ceph pools

RGW: S3 SDK compatability

Requirements:

  • Python, (Go desirable)

Description:

s3-tests uses a limited subset of Boto to test RGW functionality. Write new tests that attempt to cover all lines of various S3 SDKs to test SDK compatability issues. This will cover as many SDKs that implement S3 as possible, starting with Boto, Boto3 and moving on to Go. Explicitly would be measuring testcases code coverage of the SDKs as well as correct responses (AWS S3 vs RGW).

Ceph Tracing: Instrumenting the RGW

Requirements:

  • Python

Description:

Ceph is integrating tracepoints using the Open Tracing framework to be able to diagnose problems, and understand resource allocation in running ceph clusters. This requires instrumentation of the OSD, and RGW portions of the codebase andhaving the tooling ready to analyze these traces. This project would be for instrumenting the RGW.

Ceph Configuration Injectability - Investigation and Implementation

Requirements:

  • C++

Description:

Ceph provides a bunch of configuration options for tuning and management purposes. Some of these configuration options can be dynamically injected, which help modify the behavior of Ceph pretty easily, without having to restart daemons. Currently, we do not have an easy way to differentiate between injectable and non-injectable options.This project would require candidates to audit Ceph configuration options and classify them under injectable and non-injectable options. We would also like them to convert some of the non-injectable configuration options to injectable ones.

Project Ideas

Mentors can now submit their project proposals; we’re always open to great ideas! Deadline is February 4th to ensure we have enough time to submit our application.

Submit project proposal