Extending NBD for sparse files

This proposal has been rejected.


One Line Summary

Summary of ongoing work to enhance the Network Block Device (NBD) protocol to better handle sparse files in the context of qemu


The Network Block Device (NBD) protocol is a relatively simple setup that allows user space applications to provide access to managed storage in a way that the kernel can then treat as a raw block device. Because of its simplicity, it is the backend of choice in the qemu project for exposing a variety of disk image formats related to virtualization, both locally and across a network. However, when it comes to virtualization, many disk images are inherently sparse, and the existing NBD specification is rather inefficient in handling such files.

This talk will explore various proposals for enhancing the NBD protocol for better sparse file support, as well as give status updates on multiple implementations of NBD to demonstrate that such proposals are worthwhile, all while maintaining backwards compatibility to older servers and clients that are not aware of the extensions. It will also serve to get feedback on which proposals are worth pursuing further, and to spark more discussion on ways to improve the protocol while still keeping the core implementation simple.


qemu, NBD, sparse files


  • Eblake

    Eric Blake

    Red Hat


    Eric Blake is a core contributor to the qemu and libvirt projects, with over 6 years of experience as a software engineer at Red Hat. Other open source contributions include work for gnulib and the Cygwin platform. His interests include virtualization and cross-platform compatibility.

    He has previously spoken at Linux Plumbers Conference in 2012, on the topic of sparse file handling.

Leave a private comment to organizers about this proposal