Skip to content
Ceph is a distributed object, block, and file storage platform
C++ Perl6 C Shell Python Assembly Other
Find file
Latest commit 5542c6e @yehudasa yehudasa Merge pull request #7634 from ceph/rgw-nfs-5
nfs for rgw (Matt Benjamin, Orit Wasserman)

Reviewed-by: Yehuda Sadeh <>
Failed to load latest commit information.
admin admin/build-doc: depend on zlib1g-dev and graphviz
bin rename from bin/
ceph-erasure-code-corpus @ c332279 tests: sync ceph-erasure-code-corpus for mktemp -d
ceph-object-corpus @ 47fbf8c Revert "common/*Formatters: Split Formatters"
cmake/modules cmake: add Find{dpdk,pciaccess}.cmake
debian librgw: fix new Debian control entries
doc Merge pull request #7351 from fmeppo/master
etc etc/sysconfig/ceph: add CEPH_AUTO_RESTART_ON_UPGRADE
examples Fix Makefile in example/librados file.
fusetrace remove superfluous second semicolons at end of lines
keys new release key
m4 crc32c: add aarch64 optimized crc32c implementation
man selinux: Allow log files to be located in /var/log/radosgw
mirroring Script and Guidelines for mirroring Ceph
qa Merge pull request #7218 from dachary/wip-13942-ceph-disk
rpm Move fedora patch file (used by to rpm/ subdir
selinux selinux: Allow log files to be located in /var/log/radosgw
share CodingStyle: Fix coding-style on PG related Monitor files
src Merge pull request #7634 from ceph/rgw-nfs-5
systemd systemd/ remove
udev ceph-disk: bluestore trigger
.gitignore gitignore: ignore backup files from editors etc.
.gitmodule_mirrors remove libs3 submodule
.gitmodules xxHash: add as submodule
.mailmap mailmap: Matt Benjamin affiliation
.organizationmap mailmap: Emile Snyder affiliation
.peoplemap mailmap: Abhishek Lekshmanan affiliation
CMakeLists.txt cmake: disable warnings introduced by 457f023
CONTRIBUTING.rst doc: rename SubmittingPatches to SubmittingPatches.rst
COPYING SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL
COPYING-GPL2 Add GPLv2 text file
COPYING-LGPL2.1 COPYING: note licenses for all files, not just the default
ChangeLog first pass at autoconf and automake
CodingStyle CodingStyle: fix broken URLs
Doxyfile doc: do not doxygen src/tracing
INSTALL doc: INSTALL redirect to online documentation tests: restore run-cli-tests
NEWS first pass at autoconf and automake
PendingReleaseNotes mon: add an independent option for max election time
README README: symlink from
README.aix aix shared library build
README.cmake Combined CMake Build for Hammer doc: rename SubmittingPatches to SubmittingPatches.rst
README.solaris aix gcc librados port
README.xio xio: Update README.xio with dependencies
SubmittingPatches.rst SubmittingPatches: rebase to resolve conflicts rocksdb: build rocksdb with its own Makefile librgw: fix rpm packaging Merge pull request #7349 from yuyuyu101/add-pwritev tools: fix -R
doc_deps.deb.txt doc: The dot package is included in graphviz package build/ops: enable CR in CentOS 7 remove rest-bench bz2 only
pom.xml update license for libcephfs cmake: no need to run configure from tests: configure with rocksdb by default

Ceph - a scalable distributed storage system

Please see for current info.

Contributing Code

Most of Ceph is licensed under the LGPL version 2.1. Some miscellaneous code is under BSD-style license or is public domain. The documentation is licensed under Creative Commons Attribution-ShareAlike (CC BY-SA). There are a handful of headers included here that are licensed under the GPL. Please see the file COPYING for a full inventory of licenses by file.

Code contributions must include a valid "Signed-off-by" acknowledging the license for the modified or contributed file. Please see the file SubmittingPatches.rst for details on what that means and on how to generate and submit patches.

We do not require assignment of copyright to contribute code; code is contributed under the terms of the applicable license.

Build Prerequisites

The list of Debian or RPM packages dependencies can be installed with:


Note: libsnappy-dev and libleveldb-dev are not available upstream for Debian Squeeze. Backports for Ceph can be found at

Building Ceph


Developers, please refer to the Developer Guide for more information, otherwise, you can build the server daemons, and FUSE client, by executing the following:


(Note that the FUSE client will only be built if libfuse is present.)


Prerequisite: CMake 2.8.11

Build instructions:

mkdir build
cd build
cmake [options] /path/to/ceph/src/dir

(Note that /path/to/ceph/src/dir can be in the tree and out of the tree)


The configure script will complain about any missing dependencies as it goes. You can also refer to debian/control or for the package build dependencies on those platforms. In many cases, dependencies can be avoided with --with-foo or --without-bar switches. For example,

./configure --with-nss         # use libnss instead of libcrypto++
./configure --without-radosgw  # do not build radosgw
./configure --without-tcmalloc # avoid google-perftools dependency

Building packages

You can build packages for Debian or Debian-derived (e.g., Ubuntu) systems with

sudo apt-get install dpkg-dev
dpkg-checkbuilddeps        # make sure we have all dependencies

For RPM-based systems (Red Hat, SUSE, etc.),


Building the Documentation


The list of package dependencies for building the documentation can be found in doc_deps.deb.txt:

sudo apt-get install `cat doc_deps.deb.txt`

Building the Documentation

To build the documentation, ensure that you are in the top-level `/ceph directory, and execute the build script. For example:

Something went wrong with that request. Please try again.