2012-03-14 18:58:27 +00:00
|
|
|
============================================
|
2011-09-07 17:23:39 +00:00
|
|
|
Ceph - a scalable distributed storage system
|
2012-04-11 19:33:57 +00:00
|
|
|
============================================
|
2007-03-15 23:23:52 +00:00
|
|
|
|
2012-06-16 21:50:29 +00:00
|
|
|
Please see http://ceph.com/ for current info.
|
2008-02-01 17:59:44 +00:00
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
Contributing Code
|
2012-03-14 18:58:27 +00:00
|
|
|
=================
|
2012-04-11 19:33:57 +00:00
|
|
|
|
|
|
|
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
|
2016-01-20 05:28:36 +00:00
|
|
|
SubmittingPatches.rst for details on what that means and on how to
|
2012-04-11 19:33:57 +00:00
|
|
|
generate and submit patches.
|
|
|
|
|
|
|
|
We do not require assignment of copyright to contribute code; code is
|
|
|
|
contributed under the terms of the applicable license.
|
|
|
|
|
|
|
|
|
2016-06-16 17:44:35 +00:00
|
|
|
Checking out the source
|
|
|
|
=======================
|
|
|
|
|
|
|
|
You can clone from github with
|
|
|
|
|
|
|
|
git clone git@github.com:ceph/ceph
|
|
|
|
|
|
|
|
or, if you are not a github user,
|
|
|
|
|
|
|
|
git clone git://github.com/ceph/ceph
|
|
|
|
|
|
|
|
Ceph contains many git submodules that need to be checked out with
|
|
|
|
|
|
|
|
git submodule update --init --recursive
|
|
|
|
|
|
|
|
|
2014-08-05 18:48:38 +00:00
|
|
|
Build Prerequisites
|
|
|
|
===================
|
|
|
|
|
2015-06-03 21:25:23 +00:00
|
|
|
The list of Debian or RPM packages dependencies can be installed with:
|
2014-08-05 18:48:38 +00:00
|
|
|
|
2014-11-25 16:25:26 +00:00
|
|
|
./install-deps.sh
|
2014-08-05 18:48:38 +00:00
|
|
|
|
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
Building Ceph
|
2012-03-14 18:58:27 +00:00
|
|
|
=============
|
2012-04-05 18:43:11 +00:00
|
|
|
|
2016-06-23 13:28:09 +00:00
|
|
|
Note that these instructions are meant for developers who are
|
|
|
|
compiling the code for development and testing. To build binaries
|
|
|
|
suitable for installation we recommend you build deb or rpm packages,
|
|
|
|
or refer to the ceph.spec.in or debian/rules to see which
|
|
|
|
configuration options are specified for production builds.
|
2015-08-04 16:45:52 +00:00
|
|
|
|
|
|
|
Prerequisite:
|
|
|
|
CMake 2.8.11
|
|
|
|
|
|
|
|
Build instructions:
|
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
./do_cmake.sh
|
2015-08-04 16:45:52 +00:00
|
|
|
cd build
|
|
|
|
make
|
|
|
|
|
2016-06-16 17:47:12 +00:00
|
|
|
This assumes you make your build dir a subdirectory of the ceph.git
|
|
|
|
checkout. If you put it elsewhere, just replace .. above with a
|
|
|
|
correct path to the checkout.
|
|
|
|
|
2015-08-04 16:45:52 +00:00
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
Building packages
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
You can build packages for Debian or Debian-derived (e.g., Ubuntu)
|
|
|
|
systems with
|
2008-03-18 16:31:04 +00:00
|
|
|
|
2014-05-21 04:55:18 +00:00
|
|
|
sudo apt-get install dpkg-dev
|
|
|
|
dpkg-checkbuilddeps # make sure we have all dependencies
|
|
|
|
dpkg-buildpackage
|
2008-03-18 16:31:04 +00:00
|
|
|
|
2014-05-21 04:55:18 +00:00
|
|
|
For RPM-based systems (Red Hat, SUSE, etc.),
|
2008-05-13 15:45:13 +00:00
|
|
|
|
2014-05-21 04:55:18 +00:00
|
|
|
rpmbuild
|
2012-03-14 18:58:27 +00:00
|
|
|
|
2016-06-16 17:55:11 +00:00
|
|
|
|
|
|
|
Running a test cluster
|
|
|
|
======================
|
|
|
|
|
2016-06-20 19:15:09 +00:00
|
|
|
To run a functional test cluster,
|
|
|
|
|
|
|
|
cd build
|
2016-06-22 18:13:28 +00:00
|
|
|
../src/vstart.sh -d -n -x -l
|
2016-06-20 19:15:09 +00:00
|
|
|
./bin/ceph -s
|
|
|
|
|
|
|
|
Almost all of the usual commands are available in the bin/ directory.
|
|
|
|
For example,
|
|
|
|
|
|
|
|
./bin/rados -p rbd bench 30 write
|
|
|
|
./bin/rbd create foo --size 1000
|
2016-06-16 17:55:11 +00:00
|
|
|
|
2016-06-20 19:15:09 +00:00
|
|
|
To shut down the test cluster,
|
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
../src/stop.sh
|
2016-06-20 19:15:09 +00:00
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
To start or stop individual daemons, the sysvinit script can be used:
|
2016-06-20 19:15:09 +00:00
|
|
|
|
|
|
|
./bin/init-ceph restart osd.0
|
|
|
|
./bin/init-ceph stop
|
2016-06-16 17:55:11 +00:00
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
|
2016-06-15 20:54:53 +00:00
|
|
|
Running unit tests
|
|
|
|
==================
|
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
To run build and run all tests, use ctest:
|
2016-06-20 19:15:09 +00:00
|
|
|
|
|
|
|
cd build
|
2016-06-22 18:13:28 +00:00
|
|
|
ctest -j$(nproc)
|
2016-06-20 19:15:09 +00:00
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
To run an individual test manually, run the ctest command with -R
|
|
|
|
(regex matching):
|
2016-06-20 19:15:09 +00:00
|
|
|
|
|
|
|
ctest -R [test name]
|
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
To run an individual test manually and see all the tests output, run
|
|
|
|
the ctest command with the -V (verbose) flag:
|
2016-06-20 19:15:09 +00:00
|
|
|
|
|
|
|
ctest -V -R [test name]
|
|
|
|
|
|
|
|
To run an tests manually and run the jobs in parallel, run the ctest
|
|
|
|
command with the -j flag:
|
|
|
|
|
|
|
|
ctest -j [number of jobs]
|
|
|
|
|
|
|
|
There are many other flags you can give the ctest command for better control
|
|
|
|
over manual test execution. To view these options run:
|
2016-06-15 20:54:53 +00:00
|
|
|
|
2016-06-20 19:15:09 +00:00
|
|
|
man ctest
|
2016-06-16 17:55:11 +00:00
|
|
|
|
2016-06-22 18:13:28 +00:00
|
|
|
|
2012-03-14 18:58:27 +00:00
|
|
|
Building the Documentation
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Prerequisites
|
|
|
|
-------------
|
|
|
|
|
2014-08-06 15:16:21 +00:00
|
|
|
The list of package dependencies for building the documentation can be
|
|
|
|
found in doc_deps.deb.txt:
|
2012-03-14 18:58:27 +00:00
|
|
|
|
2014-05-21 04:56:05 +00:00
|
|
|
sudo apt-get install `cat doc_deps.deb.txt`
|
2012-03-14 18:58:27 +00:00
|
|
|
|
|
|
|
Building the Documentation
|
|
|
|
--------------------------
|
|
|
|
|
2014-08-06 15:16:21 +00:00
|
|
|
To build the documentation, ensure that you are in the top-level
|
|
|
|
`/ceph directory, and execute the build script. For example:
|
2012-03-14 18:58:27 +00:00
|
|
|
|
2014-05-21 04:56:05 +00:00
|
|
|
admin/build-doc
|
2013-11-26 15:14:22 +00:00
|
|
|
|