Brussels / 4 & 5 February 2023


vhost-user-blk: a fast userspace block I/O interface

vhost-user-blk is a userspace block I/O interface that has traditionally been used to connect software-defined storage to hypervisors. This talk covers how any application that needs fast userspace block I/O can use vhost-user-blk and its advantages over network protocols. A client library called libblkio is available for C and Rust applications will be introduced. The protocol is also summarized for those wishing to understand how it works or implement it from scratch.

This talk is intended for developers interested in connecting applications to SPDK or qemu-storage-daemon and those who want to know more about software-defined storage interfaces.

  • Local block storage interfaces
    • Kernel vs userspace
    • Notifications vs polling
    • Message-passing vs zero-copy
  • What is vhost-user-blk?
    • Implemented by qemu-storage-daemon and SPDK
    • virtio-blk and VIRTIO
  • How to connect using libblkio (C/Rust)
  • How to implement a server using libvhost-user (C) or vhost-user-backend (Rust)
  • How to integrate with the Linux kernel block layer using VDUSE


Photo of Stefan Hajnoczi Stefan Hajnoczi