| 1 | ; Running xNVMe/fio on a Zoned Device |
| 2 | ; |
| 3 | ; Writes 1GB at QD1 using 4K BS and verifies it. |
| 4 | ; |
| 5 | ; README |
| 6 | ; |
| 7 | ; This job-file is intended to be used as: |
| 8 | ; |
| 9 | ; # Use the built-in io_uring engine to get baseline numbers |
| 10 | ; fio examples/xnvme-zoned.fio \ |
| 11 | ; --section=default \ |
| 12 | ; --ioengine=io_uring \ |
| 13 | ; --sqthread_poll=1 \ |
| 14 | ; --filename=/dev/nvme0n1 |
| 15 | ; |
| 16 | ; # Use the xNVMe io-engine engine with Linux backend and io_uring async. impl. |
| 17 | ; fio examples/xnvme-zoned.fio \ |
| 18 | ; --section=default \ |
| 19 | ; --ioengine=xnvme \ |
| 20 | ; --sqthread_poll=1 \ |
| 21 | ; --xnvme_async=io_uring \ |
| 22 | ; --filename=/dev/nvme0n1 |
| 23 | ; |
| 24 | ; # Use the xNVMe io-engine engine with Linux backend and libaio async. impl. |
| 25 | ; fio examples/xnvme-zoned.fio \ |
| 26 | ; --section=default \ |
| 27 | ; --ioengine=xnvme \ |
| 28 | ; --xnvme_async=libaio \ |
| 29 | ; --filename=/dev/nvme0n1 |
| 30 | ; |
| 31 | ; # Use the xNVMe io-engine engine with SPDK backend, note that you have to set the Namespace-id |
| 32 | ; fio examples/xnvme-zoned.fio \ |
| 33 | ; --section=default \ |
| 34 | ; --ioengine=xnvme \ |
| 35 | ; --xnvme_dev_nsid=1 \ |
| 36 | ; --filename=0000\\:01\\:00.0 |
| 37 | ; |
| 38 | ; NOTE: The URI encoded in the filename above, the ":" must be escaped. |
| 39 | ; |
| 40 | ; On the command-line using two "\\": |
| 41 | ; |
| 42 | ; --filename=0000\\:01\\:00.0 |
| 43 | ; |
| 44 | ; Within a fio-script using a single "\": |
| 45 | ; |
| 46 | ; filename=0000\:01\:00.0 |
| 47 | ; |
| 48 | ; NOTE: If you want to override the default bs, iodepth, and workload, then |
| 49 | ; invoke it as: |
| 50 | ; |
| 51 | ; FIO_BS="512" FIO_RW="verify" FIO_IODEPTH=16 fio examples/xnvme-zoned.fio \ |
| 52 | ; --section=override |
| 53 | ; |
| 54 | ; To reset all zones on the device to EMPTY state aka. wipe the entire device. |
| 55 | ; |
| 56 | ; # zoned mgmt-reset /dev/nvme0n2 --slba 0x0 --all |
| 57 | ; |
| 58 | [global] |
| 59 | zonemode=zbd |
| 60 | rw=write |
| 61 | size=1G |
| 62 | iodepth=1 |
| 63 | bs=4K |
| 64 | direct=1 |
| 65 | thread=1 |
| 66 | ramp_time=1 |
| 67 | norandommap=1 |
| 68 | verify=crc32c |
| 69 | ; Avoid accidentally creating device files; e.g. "/dev/nvme0n1", "/dev/nullb0" |
| 70 | allow_file_create=0 |
| 71 | ; |
| 72 | ; NOTE: If fio complains about zone-size, then run: |
| 73 | ; |
| 74 | ; # zoned info /dev/nvme0n1 |
| 75 | ; |
| 76 | ; The command will provide the values you need, then in the fio-script define: |
| 77 | ; |
| 78 | ; zonesize=nsect * nbytes |
| 79 | ; |
| 80 | ;zonesize= |
| 81 | |
| 82 | [default] |
| 83 | |
| 84 | [override] |
| 85 | rw=${FIO_RW} |
| 86 | iodepth=${FIO_IODEPTH} |
| 87 | bs=${FIO_BS} |