ceph/doc/dev/quick_guide.rst
Loic Dachary b9ddf97a0c documentation: simplify running make check
Encapsulate the compilation steps (install dependencies, autogen.sh,
configure, make check) in the run-make-check.sh script. Update the
developer documentation to point to this script instead of multiple
steps.

It is intended as a tool to help new developer make sure their patch is
sane, it focuses on efficiency (runs make check in parallel if possible)
and coverage (enables docker based tests if possible).

http://tracker.ceph.com/issues/10265 Fixes: #10265

Signed-off-by: Loic Dachary <ldachary@redhat.com>
2014-12-13 15:01:40 +01:00

120 lines
3.1 KiB
ReStructuredText

=================================
Developer Guide (Quick)
=================================
This guide will describe how to build and test Ceph for development.
Development
-----------
The ``run-make-check.sh`` script will install Ceph dependencies,
compiles everything in debug mode and runs a number of tests to verify
the result behaves as expected.
.. code::
$ ./run-make-check.sh
Running a development deployment
--------------------------------
Ceph contains a script called ``vstart.sh`` which allows developers to quickly test their code using
a simple deployment on your development system. Once the build finishes successfully, start the ceph
deployment using the following command:
.. code::
$ cd src
$ ./vstart.sh -d -n -x
You can also configure ``vstart.sh`` to use only one monitor and one metadata server by using the following:
.. code::
$ MON=1 MDS=1 ./vstart.sh -d -n -x
The system creates three pools on startup: `cephfs_data`, `cephfs_metadata`, and `rbd`. Let's get some stats on
the current pools:
.. code::
$ ./ceph osd pool stats
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
pool rbd id 0
nothing is going on
pool cephfs_data id 1
nothing is going on
pool cephfs_metadata id 2
nothing is going on
$ ./ceph osd pool stats cephfs_data
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
pool cephfs_data id 1
nothing is going on
$ ./rados df
pool name category KB objects clones degraded unfound rd rd KB wr wr KB
rbd - 0 0 0 0 0 0 0 0 0
cephfs_data - 0 0 0 0 0 0 0 0 0
cephfs_metadata - 2 20 0 40 0 0 0 21 8
total used 12771536 20
total avail 3697045460
total space 3709816996
Make a pool and run some benchmarks against it:
.. code::
$ ./rados mkpool mypool
$ ./rados -p mypool bench 10 write -b 123
Place a file into the new pool:
.. code::
$ ./rados -p mypool put objectone <somefile>
$ ./rados -p mypool put objecttwo <anotherfile>
List the objects in the pool:
.. code::
$ ./rados -p mypool ls
Once you are done, type the following to stop the development ceph deployment:
.. code::
$ ./stop.sh
Running a RadosGW development environment
-----------------------------------------
Add the ``-r`` to vstart.sh to enable the RadosGW
.. code::
$ cd src
$ ./vstart.sh -d -n -x -r
You can now use the swift python client to communicate with the RadosGW.
.. code::
$ swift -A http://localhost:8000/auth -U tester:testing -K asdf list
$ swift -A http://localhost:8000/auth -U tester:testing -K asdf upload mycontainer ceph
$ swift -A http://localhost:8000/auth -U tester:testing -K asdf list
Run unit tests
--------------
The tests are located in `src/tests`. To run them type:
.. code::
$ make check