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.
- Clond source code
clone the source code and check out to the specific version you want to compile. (I usedfio-3.27
)1
2git clone git://git.kernel.dk/fio.git
git checkout fio-3.27
- Install dependecy library and compile
1
2
3
4
5
6
7
8
9apt 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
- 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