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.
93 This fio engine allows you to test CEPH messenger transport layer, without
94 any disk activities involved.
96 To build fio_ceph_messenger:
98 ./do_cmake.sh -DWITH_FIO=ON
100 make fio_ceph_messenger
102 If you install the ceph libraries to a location that isn't in your
103 LD_LIBRARY_PATH, be sure to add it:
105 export LD_LIBRARY_PATH=/path/to/install/lib
107 To view the fio options specific to the messenger engine:
109 ./fio --enghelp=libfio_ceph_messenger.so
111 The ceph_conf_file= option requires a ceph configuration file (ceph.conf),
112 see ceph-messenger.conf and ceph-messenger.fio for details.
116 ./fio ./ceph-messenger.fio