nbdkit-blkio-plugin(1)
π nbdkit-blkio-plugin(1) β the libblkio glow-up π
okay bestie, so this is a page from the NBDKIT manual, and it's about a plugin that makes your high-performance disk stuff β¨happenβ¨. grab a strawberry drink, we're going in π
β¨ NAME β¨
nbdkit-blkio-plugin β the libblkio plugin for NVMe, vhost-user, vDPA, VFIO. that's the whole vibe, no cap π
πΈ SYNOPSIS πΈ
nbdkit blkio [driver=]DRIVER [path=FILENAME] [num-queues=N] ...
π¦ DESCRIPTION π¦
nbdkit-blkio-plugin is an nbdkit(1) plugin that uses libblkio to reach a bunch of different disk sources β the ones that show up for high performance applications and virtualization. the lineup is literally: NVMe, vhost-user, vDPA and VFIO. main character energy, all of them π
so the first parameter after the plugin name? that's the libblkio driver. like, the whole personality of the connection. for example:
nbdkit blkio virtio-blk-vhost-user path=vhost.sock
β β β
plugin driver other parameters
see how that's laid out? plugin, driver, other parameters. iykyk π«Ά
β Driver: nvme-io_uring
nbdkit blkio nvme-io_uring path=/dev/ng0n1
this one connects to an NVMe device and issues commands through Linux io_uring. heads up: it needs Linux β₯ 5.19. not negotiable, sorry bestie π
β Driver: virtio-blk-vfio-pci
nbdkit blkio virtio-blk-vfio-pci path=/sys/bus/pci/devices/0000:00:01.0
connects to a PCI device that implements virtio-blk using VFIO. the path here is the path to the device's sysfs directory (peep lspci(8) if you need it).
β Driver: virtio-blk-vhost-user
nbdkit blkio virtio-blk-vhost-user path=vhost.sock
connects to a vhost-user block device, like the kind qemu-storage-daemon(1) exports. the path is the vhost-user Unix domain socket. example time:
qemu-storage-daemon \
--blockdev driver=file,node-name=file,filename=disk.qcow2 \
--blockdev driver=qcow2,node-name=qcow2,file=file \
--export type=vhost-user-blk,id=export,addr.type=unix,addr.path=vhost.sock,node-name=qcow2,writable=on
look at that. flawless. π§
β Driver: virtio-blk-vhost-vdpa
nbdkit blkio virtio-blk-vhost-vdpa path=chardev
connects to a vDPA device β could be implemented in software (eg. VDUSE) or in hardware, whichever you've got. the path is the vhost-vdpa character device.
β Driver: io_uring
nbdkit blkio io_uring path=FILENAME
ok so technically you can use this driver to access local files and block devices through the libblkio io_uring driver, but ngl it's usually faster and easier to just use nbdkit-file-plugin(1). just saying π
π PARAMETERS π
[driver=]DRIVERβ the name of the libblkio driver to use. this parameter is required, no skipping. thedriver=prefix can be omitted in most cases β see "Magic parameters" in nbdkit(1). β¨PROPERTY=VALUEβ properties likepath,num-entriesetc get translated into libblkio properties. for the complete list you gotta consult the libblkio documentation, that's the source of truth fr.get=PROPERTYβ gets (prints) the value of a property after connecting. the property is fetched and printed in nbdkit debug output, which means you'll need the--verboseflag to actually see it. super useful for debugging, obsessed π«Ά
π FILES π
$plugindir/nbdkit-blkio-plugin.soβ the plugin itself, the whole point. usenbdkit --dump-configto find out where$plugindirlives π
π VERSION π
nbdkit-blkio-plugin first appeared in nbdkit 1.34. a classic, an icon.
π₯ SEE ALSO π₯
nbdkit-file-plugin(1), lspci(8), qemu-storage-daemon(1), https://libblkio.gitlab.io/libblkio, https://libblkio.gitlab.io/libblkio/blkio.html.
go read them, they're giving lore π
π AUTHORS π
Richard W.M. Jones π
β COPYRIGHT β
Copyright Red Hat
π LICENSE π
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met β bestie, these are not optional:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. keep it all, don't trim π€
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Red Hat nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. no name-dropping for clout π«
THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
like, the software is what it is, don't come for Red Hat if it goes sideways, that's the deal π
and that's the page!! ok love u bye β this one was brought to you by nbdkit-1.48.0, dated 2026-08-22 π¦πβ¨
π¦ where this page comes from
- ubuntu stonking: nbdkit 1.48.0-1ubuntu2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms