0%

Compile fio with RADOS and RBD ioengine

Binary packages of Fio often don’t come with rado and rbd ioengine. In order to use such ioengine to test Ceph, you need to compile the fio on your own. Below are step by step instructions to build it.

  1. Clond source code
    clone the source code and check out to the specific version you want to compile. (I used fio-3.27)
    1
    2
    git clone git://git.kernel.dk/fio.git
    git checkout fio-3.27
  1. Install dependecy library and compile
    1
    2
    3
    4
    5
    6
    7
    8
    9
    apt install -y librbd-dev
    rados=yes ./configure

    #you should be able to see in the log
    # Rados engine yes
    # Rados Block Device engine yes

    rados=yes sudo make
    rados=yes sudo make install
  1. Verify
    you should be able to see rados and rbd after installation,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $ sudo fio --enghelp
    Available IO engines:
    cpuio
    mmap
    sync
    psync
    vsync
    pvsync
    pvsync2
    null
    net
    netsplice
    ftruncate
    filecreate
    filestat
    filedelete
    posixaio
    falloc
    e4defrag
    splice
    mtd
    sg
    io_uring
    libaio
    rados <<<<<<<
    rbd <<<<<<<

you now run rados ioengine to benchmark Ceph

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# rados.fio
# config file for fio job
[global]
#logging
#write_iops_log=write_iops_log
#write_bw_log=write_bw_log
#write_lat_log=write_lat_log
ioengine=rados
clientname=admin
pool=rados-behnch
#busy_poll=0
rw=randrw
rwmixread=10
bs=1m

[rbd_iodepth32]
iodepth=32
size=12800m

and then execute fio

1
sudo fio rados.fio