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
|
|
|
|
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
|
|
|
|
SubmittingPatches 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.
|
|
|
|
|
|
|
|
|
|
|
|
Building Ceph
|
2012-03-14 18:58:27 +00:00
|
|
|
=============
|
2012-04-05 18:43:11 +00:00
|
|
|
|
2012-03-14 18:58:27 +00:00
|
|
|
To prepare the source tree after it has been git cloned,
|
2012-05-03 17:15:21 +00:00
|
|
|
|
|
|
|
$ git submodule update --init
|
2012-04-05 18:43:11 +00:00
|
|
|
|
2012-03-14 18:58:27 +00:00
|
|
|
To build the server daemons, and FUSE client, execute the following:
|
2008-05-07 21:32:55 +00:00
|
|
|
|
2012-03-14 18:58:27 +00:00
|
|
|
$ ./autogen.sh
|
|
|
|
$ ./configure
|
|
|
|
$ make
|
2008-05-07 21:32:55 +00:00
|
|
|
|
|
|
|
(Note that the FUSE client will only be built if libfuse is present.)
|
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
Dependencies
|
|
|
|
------------
|
|
|
|
|
|
|
|
The configure script will complain about any missing dependencies as
|
|
|
|
it goes. You can also refer to debian/control or ceph.spec.in 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 and avoid libfcgi-dev
|
|
|
|
$ ./configure --without-tcmalloc # avoid google-perftools dependency
|
|
|
|
|
|
|
|
|
|
|
|
Building packages
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
You can build packages for Debian or Debian-derived (e.g., Ubuntu)
|
|
|
|
systems with
|
2008-03-18 16:31:04 +00:00
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
$ sudo apt-get dpkg-dev
|
|
|
|
$ dpkg-checkbuilddeps # make sure we have all dependencies
|
|
|
|
$ dpkg-buildpackage
|
2008-03-18 16:31:04 +00:00
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
For RPM-based systems (Redhat, Suse, etc.),
|
2008-05-13 15:45:13 +00:00
|
|
|
|
2012-04-11 19:33:57 +00:00
|
|
|
$ rpmbuild
|
2012-03-14 18:58:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
Building the Documentation
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Prerequisites
|
|
|
|
-------------
|
2012-05-03 17:15:21 +00:00
|
|
|
To build the documentation, you must install the following:
|
2012-03-14 18:58:27 +00:00
|
|
|
|
2012-05-03 17:15:21 +00:00
|
|
|
- python-dev
|
|
|
|
- python-pip
|
2013-04-25 19:10:41 +00:00
|
|
|
- python-virtualenv
|
2012-05-03 17:15:21 +00:00
|
|
|
- doxygen
|
2012-03-14 18:58:27 +00:00
|
|
|
- ditaa
|
2012-05-03 17:15:21 +00:00
|
|
|
- libxml2-dev
|
|
|
|
- libxslt-dev
|
|
|
|
- dot
|
2012-03-14 18:58:27 +00:00
|
|
|
- graphviz
|
|
|
|
|
2012-05-03 17:15:21 +00:00
|
|
|
For example:
|
2012-03-14 18:58:27 +00:00
|
|
|
|
2013-04-25 19:10:41 +00:00
|
|
|
sudo apt-get install python-dev python-pip python-virtualenv doxygen ditaa libxml2-dev libxslt-dev dot graphviz
|
2012-03-14 18:58:27 +00:00
|
|
|
|
|
|
|
Building the Documentation
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
To build the documentation, ensure that you are in the top-level `/ceph directory, and execute the build script. For example:
|
|
|
|
|
|
|
|
$ admin/build-doc
|
|
|
|
|
|
|
|
|
|
|
|
Build Prerequisites
|
2013-08-26 16:05:00 +00:00
|
|
|
===================
|
|
|
|
|
|
|
|
|
|
|
|
debian-based
|
|
|
|
------------
|
2012-05-03 17:15:21 +00:00
|
|
|
To build the source code, you must install the following:
|
|
|
|
|
|
|
|
- automake
|
|
|
|
- autoconf
|
2013-06-13 05:25:04 +00:00
|
|
|
- pkg-config
|
2012-05-03 17:15:21 +00:00
|
|
|
- gcc
|
|
|
|
- g++
|
2013-06-13 05:25:04 +00:00
|
|
|
- make
|
2012-05-03 17:15:21 +00:00
|
|
|
- libboost-dev
|
|
|
|
- libedit-dev
|
|
|
|
- libssl-dev
|
|
|
|
- libtool
|
|
|
|
- libfcgi
|
|
|
|
- libfcgi-dev
|
|
|
|
- libfuse-dev
|
|
|
|
- linux-kernel-headers
|
2012-03-14 18:58:27 +00:00
|
|
|
- libcrypto++-dev
|
2012-07-19 18:18:19 +00:00
|
|
|
- libaio-dev
|
|
|
|
- libgoogle-perftools-dev
|
|
|
|
- libkeyutils-dev
|
2012-09-23 23:58:46 +00:00
|
|
|
- uuid-dev
|
|
|
|
- libatomic-ops-dev
|
2012-10-31 18:34:13 +00:00
|
|
|
- libboost-program-options-dev
|
2012-11-27 23:21:40 +00:00
|
|
|
- libboost-thread-dev
|
2013-01-26 21:18:01 +00:00
|
|
|
- libexpat1-dev
|
2013-02-27 13:43:19 +00:00
|
|
|
- libleveldb-dev
|
2013-03-02 07:32:54 +00:00
|
|
|
- libsnappy-dev
|
2013-06-13 05:25:04 +00:00
|
|
|
- libcurl4-gnutls-dev
|
2013-06-24 21:50:07 +00:00
|
|
|
- python-argparse
|
Add 'ceph-rest-api'
ceph-rest-api is a Python WSGI module for accessing the Ceph cluster.
It supports most of the commands supported by the ceph CLI,
appropriately translated to HTTP GET/PUT requests. It is not a
truly RESTful interface.
Not supported at this moment: "tell", "pg <pgid>", and "daemon"
commands.
Configuration options are specified in ceph.conf, specified with
-c/--conf or obtained from $CEPH_CONF, /etc/ceph/ceph.conf,
~/.ceph/ceph.conf, or ./ceph.conf.
-n/--name specifies the client name, used for the cluster
authentication key and for the ceph.conf section name (default
is client.restapi).
restapi keyring = <keyring file>
restapi public addr = listenIP:port (default 0.0.0.0:5000)
restapi base url = <base path> (default /api/v0.1)
restapi log level = (error, warning, info, debug)
restapi log file = (default /var/log/ceph/<clientname>.log)
Primitive human-level command discovery is supported; GET from
BASEURL (say, http://localhost:5000/api/v0.1) will show an HTML
table of all commands and arguments, method supported, and help strings.
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2013-07-11 00:39:47 +00:00
|
|
|
- python-flask
|
2012-03-14 18:58:27 +00:00
|
|
|
|
2012-05-03 17:15:21 +00:00
|
|
|
For example:
|
2012-03-14 18:58:27 +00:00
|
|
|
|
Add 'ceph-rest-api'
ceph-rest-api is a Python WSGI module for accessing the Ceph cluster.
It supports most of the commands supported by the ceph CLI,
appropriately translated to HTTP GET/PUT requests. It is not a
truly RESTful interface.
Not supported at this moment: "tell", "pg <pgid>", and "daemon"
commands.
Configuration options are specified in ceph.conf, specified with
-c/--conf or obtained from $CEPH_CONF, /etc/ceph/ceph.conf,
~/.ceph/ceph.conf, or ./ceph.conf.
-n/--name specifies the client name, used for the cluster
authentication key and for the ceph.conf section name (default
is client.restapi).
restapi keyring = <keyring file>
restapi public addr = listenIP:port (default 0.0.0.0:5000)
restapi base url = <base path> (default /api/v0.1)
restapi log level = (error, warning, info, debug)
restapi log file = (default /var/log/ceph/<clientname>.log)
Primitive human-level command discovery is supported; GET from
BASEURL (say, http://localhost:5000/api/v0.1) will show an HTML
table of all commands and arguments, method supported, and help strings.
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2013-07-11 00:39:47 +00:00
|
|
|
$ apt-get install automake autoconf pkg-config gcc g++ make libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libaio-dev libgoogle-perftools-dev libkeyutils-dev uuid-dev libatomic-ops-dev libboost-program-options-dev libboost-thread-dev libexpat1-dev libleveldb-dev libsnappy-dev libcurl4-gnutls-dev python-argparse python-flask
|
2013-08-26 16:05:00 +00:00
|
|
|
|
|
|
|
rpm-based
|
|
|
|
---------
|
|
|
|
These are the rpm packages needed to install in an rpm-based OS:
|
|
|
|
|
|
|
|
autoconf
|
|
|
|
automake
|
|
|
|
gcc
|
|
|
|
make
|
|
|
|
libtool
|
|
|
|
python-argparse
|
|
|
|
python-flask
|
|
|
|
libuuid-devel
|
2013-08-26 16:48:56 +00:00
|
|
|
nss-devel
|
2013-08-26 16:05:00 +00:00
|
|
|
fuse-devel
|
|
|
|
gperftools-devel
|
|
|
|
libedit-devel
|
|
|
|
libatomic_ops-devel
|
|
|
|
snappy-devel
|
|
|
|
leveldb-devel
|
|
|
|
libaio-devel
|
|
|
|
boost-devel
|