4 Ceph uses the fio workload generator and benchmarking utility.
5 (https://github.com/axboe/fio.git)
7 FIO tool is automatically fetched to build/src/fio, and build if necessary.
12 The fio engine for rbd is located in the fio tree itself, so you'll need to
15 If you install the ceph libraries to a location that isn't in your
16 LD_LIBRARY_PATH, be sure to add it:
18 export LD_LIBRARY_PATH=/path/to/install/lib
20 To build fio with rbd:
22 ./configure --extra-cflags="-I/path/to/install/include -L/path/to/install/lib"
25 If configure fails with "Rados Block Device engine no", see config.log for
26 details and adjust the cflags as necessary.
28 If ceph was compiled with tcmalloc, it may be necessary to compile fio with:
30 Otherwise fio might crash in malloc_usable_size().
32 To view the fio options specific to the rbd engine:
36 See examples/rbd.fio for an example job file. To run:
38 ./fio examples/rbd.fio
43 This fio engine allows you to mount and use a ceph object store directly,
44 without having to build a ceph cluster or start any daemons.
46 Because the ObjectStore is not a public-facing interface, we build it inside
47 of the ceph tree and load libfio_ceph_objectstore.so into fio as an external
50 To build fio_ceph_objectstore run:
52 ./do_cmake.sh -DWITH_FIO=ON
54 make fio_ceph_objectstore
56 This will fetch FIO to build/src/fio directory,
57 compile fio tool and libfio_ceph_objectstore.so.
59 If you install the ceph libraries to a location that isn't in your
60 LD_LIBRARY_PATH, be sure to add it:
62 export LD_LIBRARY_PATH=/path/to/install/lib
64 To view the fio options specific to the objectstore engine:
66 ./fio --enghelp=libfio_ceph_objectstore.so
68 The conf= option requires a ceph configuration file (ceph.conf). Example job
69 and conf files for each object store are provided in the same directory as
74 ./fio /path/to/job.fio
79 By default FIO can be compiled with support for RADOS.
80 When ceph is installed in your system default compilation of FIO includes RADOS ioengine.
81 If you installed ceph in any other place (cmake -DCMAKE_INSTALL_PREFIX=${CEPH_INSTALL_ROOT} ..) you can build FIO following way:
83 LIBS="-lrados -ltcmalloc" LDFLAGS="-L${CEPH_INSTALL_ROOT}/lib" EXTFLAGS="-I${CEPH_INSTALL_ROOT}/include" \
85 LIBS="-lrados -ltcmalloc" LDFLAGS="-L${CEPH_INSTALL_ROOT}/lib" EXTFLAGS="-I${CEPH_INSTALL_ROOT}/include" \
88 "-ltcmalloc" is necessary if ceph was compiled with tcmalloc.