| ; Running xNVMe/fio on a Zoned Device |
| ; |
| ; Writes 1GB at QD1 using 4K BS and verifies it. |
| ; |
| ; README |
| ; |
| ; This job-file is intended to be used as: |
| ; |
| ; # Use the built-in io_uring engine to get baseline numbers |
| ; fio examples/xnvme-zoned.fio \ |
| ; --section=default \ |
| ; --ioengine=io_uring \ |
| ; --sqthread_poll=1 \ |
| ; --filename=/dev/nvme0n1 |
| ; |
| ; # Use the xNVMe io-engine engine with Linux backend and io_uring async. impl. |
| ; fio examples/xnvme-zoned.fio \ |
| ; --section=default \ |
| ; --ioengine=xnvme \ |
| ; --sqthread_poll=1 \ |
| ; --xnvme_async=io_uring \ |
| ; --filename=/dev/nvme0n1 |
| ; |
| ; # Use the xNVMe io-engine engine with Linux backend and libaio async. impl. |
| ; fio examples/xnvme-zoned.fio \ |
| ; --section=default \ |
| ; --ioengine=xnvme \ |
| ; --xnvme_async=libaio \ |
| ; --filename=/dev/nvme0n1 |
| ; |
| ; # Use the xNVMe io-engine engine with SPDK backend, note that you have to set the Namespace-id |
| ; fio examples/xnvme-zoned.fio \ |
| ; --section=default \ |
| ; --ioengine=xnvme \ |
| ; --xnvme_dev_nsid=1 \ |
| ; --filename=0000\\:01\\:00.0 |
| ; |
| ; NOTE: The URI encoded in the filename above, the ":" must be escaped. |
| ; |
| ; On the command-line using two "\\": |
| ; |
| ; --filename=0000\\:01\\:00.0 |
| ; |
| ; Within a fio-script using a single "\": |
| ; |
| ; filename=0000\:01\:00.0 |
| ; |
| ; NOTE: If you want to override the default bs, iodepth, and workload, then |
| ; invoke it as: |
| ; |
| ; FIO_BS="512" FIO_RW="verify" FIO_IODEPTH=16 fio examples/xnvme-zoned.fio \ |
| ; --section=override |
| ; |
| ; To reset all zones on the device to EMPTY state aka. wipe the entire device. |
| ; |
| ; # zoned mgmt-reset /dev/nvme0n2 --slba 0x0 --all |
| ; |
| [global] |
| zonemode=zbd |
| rw=write |
| size=1G |
| iodepth=1 |
| bs=4K |
| direct=1 |
| thread=1 |
| ramp_time=1 |
| norandommap=1 |
| verify=crc32c |
| ; Avoid accidentally creating device files; e.g. "/dev/nvme0n1", "/dev/nullb0" |
| allow_file_create=0 |
| ; |
| ; NOTE: If fio complains about zone-size, then run: |
| ; |
| ; # zoned info /dev/nvme0n1 |
| ; |
| ; The command will provide the values you need, then in the fio-script define: |
| ; |
| ; zonesize=nsect * nbytes |
| ; |
| ;zonesize= |
| |
| [default] |
| |
| [override] |
| rw=${FIO_RW} |
| iodepth=${FIO_IODEPTH} |
| bs=${FIO_BS} |