Subtask #6664
openTasks #7112: Teuthology performance testing tracker
Add fio task for RBD performance testing
0%
Description
We need a task to run fio. Should be fairly similar to the rados bench task in substance and style.
We will want to be able to specify the following options:
1) test time
2) io depth
3) io type (read, write, randread, randwrite)
4) io engine
5) op size
6) file size
In addition, we may want to further specify the RBD pool size, replication level, etc. We may also want to be able to specify both RBD and underlying OSD read ahead, nr_requests, etc. There are potentially additional settings that we will want to specify at the kernel RBD or QEMU/KVM level regarding RBD cache, noshare, etc but that likely should be done in a more generic place.
Updated by Mark Nelson over 10 years ago
Also, we must ensure that before any read takes place the entire file is written out in it's entirety. That may mean always deleting data files between tests or prefilling the test file before tests are run.
Updated by Danny Al-Gaaf over 10 years ago
JFYI: we are currently writing a fio backend for RBDs to run performance tests directly with fio on RBDs via librbd. This is may interesting for you too.
This allows you to run comparable tests with fio on RBDs handeld via: kernel RBD, fuse, libvirt/qemu and on the library.
The backend is basically working, but not complete yet. We will announce it as soon as we finished it. You can find the current state here:
https://github.com/TelekomCloud/fio/blob/rbd-engine/engines/rbd.c
Updated by Danny Al-Gaaf about 10 years ago
The basic implementation for a rbd engine is now part of fio upstream.
I work currently on extending the options to be able to create/delete a RBD directly from fio for automated test. But the engine is already working.