CCI-MOC / lsvd-rbd

Log Structured Virtual Disk
GNU General Public License v2.0
8 stars 5 forks source link

Integrate fio & bdevio with SPDK backend and RBD/LSVD as part of GitHub actions #31

Open knikolla opened 4 months ago

knikolla commented 4 months ago

Outgrowth of #30

knikolla commented 2 months ago

Made progress getting bdevio tests to run on a RBD (non LSVD backend)

Starting bdevio with the -w flag starts SPDK and awaits RPC calls to configure the bdev and perform tests.

knikolla@mini:~/workdir/lsvd-rbd/subprojects/spdk$ sudo ./test/bdev/bdevio/bdevio -w
[2024-07-17 14:35:29.565108] Starting SPDK v24.01 git sha1 0786843 / DPDK 23.11.0 initialization...
[2024-07-17 14:35:29.565192] [ DPDK EAL parameters: bdevio --no-shconf -c 0x7 --huge-unlink --no-telemetry --log-level=lib.eal:6 --log-level=lib.cryptodev:5 --log-level=user1:6 --iova-mode=pa --base-virtaddr=0x200000000000 --match-allocations --file-prefix=spdk_pid2453401 ]
[2024-07-17 14:35:29.588585] app.c: 798:spdk_app_start: *NOTICE*: Total cores available: 3
[2024-07-17 14:35:29.671994] reactor.c: 937:reactor_run: *NOTICE*: Reactor started on core 1
[2024-07-17 14:35:29.672094] reactor.c: 937:reactor_run: *NOTICE*: Reactor started on core 2
[2024-07-17 14:35:29.672099] reactor.c: 937:reactor_run: *NOTICE*: Reactor started on core 0
[2024-07-17 14:40:48.163231] bdev_rbd.c:1359:bdev_rbd_create: *NOTICE*: Add Ceph0 rbd disk to lun
I/O targets:
  Ceph0: 2048000 blocks of 512 bytes (1000 MiB)

     CUnit - A unit testing framework for C - Version 2.1-3
     http://cunit.sourceforge.net/

Suite: bdevio tests on: Ceph0
  Test: blockdev write read block ...passed
  Test: blockdev write zeroes read block ...passed
  Test: blockdev write zeroes read no split ...passed
  Test: blockdev write zeroes read split ...passed
  Test: blockdev write zeroes read split partial ...passed
  Test: blockdev reset ...passed
  Test: blockdev write read 8 blocks ...passed
  Test: blockdev write read size > 128k ...passed
  Test: blockdev write read invalid size ...passed
  Test: blockdev write read offset + nbytes == size of blockdev ...passed
  Test: blockdev write read offset + nbytes > size of blockdev ...passed
  Test: blockdev write read max offset ...passed
  Test: blockdev write read 2 blocks on overlapped address offset ...passed
  Test: blockdev writev readv 8 blocks ...passed
  Test: blockdev writev readv 30 x 1block ...passed
  Test: blockdev writev readv block ...passed
  Test: blockdev writev readv size > 128k ...passed
  Test: blockdev writev readv size > 128k in two iovs ...passed
  Test: blockdev comparev and writev ...passed
  Test: blockdev nvme passthru rw ...passed
  Test: blockdev nvme passthru vendor specific ...passed
  Test: blockdev nvme admin passthru ...passed
  Test: blockdev copy ...passed

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites      1      1    n/a      0        0
               tests     23     23     23      0        0
             asserts    130    130    130      0      n/a

Elapsed time =    0.220 seconds
  Ceph0: 2048000 blocks of 512 bytes (1000 MiB)

Tests can be performed with

# Configure RBD backend
root@mini:/home/knikolla/workdir/lsvd-rbd/subprojects/spdk# sudo ./scripts/rpc.py bdev_rbd_register_cluster rbd_cluster
root@mini:/home/knikolla/workdir/lsvd-rbd/subprojects/spdk# sudo rbd create foo --size 1000
root@mini:/home/knikolla/workdir/lsvd-rbd/subprojects/spdk# sudo ./scripts/rpc.py bdev_rbd_create -b Ceph0 rbd foo 512

# Run tests
root@mini:/home/knikolla/workdir/lsvd-rbd/subprojects/spdk# export PYTHONPATH="$PATH:`pwd`/python"
root@mini:/home/knikolla/workdir/lsvd-rbd/subprojects/spdk# ./test/bdev/bdevio/tests.py perform_tests -b Ceph0