Contribute

Ceph is an open source project; built through the efforts of its dedicated, passionate community. If you find Ceph useful, the best way to say thanks is to contribute back. There are a few things you can do to pitch in.

See Other Contributors

Submit Issues

Are you having problems building or running Ceph in your environment? Every user has a unique storage architecture and workload, so it’s possible you’ve found a bug that nobody else is experiencing.

You can search through our issue list to make sure you’ve found something new. If it is, share it with the community by creating a new issue and including as much detail as you can.

Submit Issue

Build Ceph from Source

Using pre-built packages, the ceph-deploy tool, or orchestration frameworks (like chef, puppet, juju, etc) may be the quickest way to get Ceph up and running, but building from source can help you become familiar with how everything is put together.

To get started building Ceph you should clone our repository and then follow the guide for building Ceph. As you work through the build process, feel free to update the documentation or submit issues along the way.

Learn the Source Tree

Once you have walked through installing Ceph it would be a good idea to learn your way around the source code. During the Firefly Ceph Developer Summit Sage gave a great overview of how best to contribute to Ceph, including where everything lives in to the source tree.

Source Tree Highlights

  • auth — authentication infrastructure
  • common / include — random bits and pieces shared by everything (atomics, link lists, library headers, etc)
  • crush — crush algorithm for data placement
  • gtest — google’s unit test framework used for ceph unit tests
  • java — java bindings for libcephfs (used for hadoop binding)
  • mds — code for the metadata server daemon
  • mon — code for the monitor daemon
  • msg / messages — used for messaging across the wire
  • os — object store (internal abstraction used for storing data on the local node)
  • osd — server side code for object storage daemon
  • osdc — client side code for object storage daemon
  • rgw — code for the rados gateway daemon

Ceph Developer Monthly (CDM)

Every month the Ceph developer community gets together for a virtual call. These calls serve to discuss proposed work and ensure that all tasks have a blueprint, and an owner so that the features can be delivered in time for release.

Any developer working on features, bug fixes, integrations, or other Ceph-related work should feel free to add a line to the next CDM agenda to ensure they get time to discuss their plans with Sage, the CTLs, and the community-at-large.

Ceph Developer Monthly

Donate Engineering

Do you work for a company that’s deploying Ceph? Dedicating engineering resources to Ceph is the best way to ensure the ongoing evolution of Ceph. Drop a note to the mailing list and tell us what you’d like to accomplish; we’d be glad to hear from you.

Join Engineering Standups

Every week each of the component teams within the Ceph platform (CephFS, RGW, RBD, RADOS, etc) has a stand up meeting to discuss progress, status, and new development tasks. Once you have proven yourself as an active contributor to one (or more) of these components you can ask to join the weekly stand up and become more of a core contributor. In order to take this step you should have done the following:

  1. Had a pull request approved
  2. Served as a blueprint owner during a development cycle.
  3. Spoken with a Core Team Member about becoming more involved in the development process

Google Summer of Code

Are you a university student (undergrad or graduate) who would like to get involved in the world of Ceph Development? Each Year the Ceph project submits to participate in the GSOC program. Keep your eye out for the upcoming year and check back here for a link to the project idea page.

Help With Documentation

Not a coder? If you’d rather write prose than code, we can use your help in making the Ceph documentation more thorough. Our documentation is always growing and changing, and there are lots of spots that need additional detail. Heck, there may even still be entire sections that need to be written!

The documentation lives inside the /doc directory of the main Ceph repository. It’s written in reStructuredText, an easy-to-write text format.

For more information, read the documentation pages on Prerequisites for Building Ceph Documentation and Building Ceph Documentation.

SHARE YOUR EXPERIENCES

The Ceph community is always interested in seeing how people are using Ceph. Whether this is a simple blog entry about what you’ve been doing or a more formalized Use Case, we would love to feature it on Ceph.com.

If you already have a place where you are recording your experiences we would love to include it on our Ceph Planet page for aggregation. All we need is an RSS feed for a Ceph-specific tag.

Drop us a line to get started.