vhost-device-scsi

This is a Rust implementation of a vhost-device-scsi daemon.

Usage

Run the vhost-device-scsi daemon:

vhost-device-scsi -r --socket-path /tmp/vhost-user-scsi.sock /path/to/image.raw /path/to/second-image.raw ...

Run QEMU:

qemu-system-x86_64 ... \ -device vhost-user-scsi-pci,num_queues=1,param_change=off,chardev=vus \ -chardev socket,id=vus,path=/tmp/vhost-user-scsi.sock \ # must match total guest meory -object memory-backend-memfd,id=mem,size=384M,share=on \ -numa node,memdev=mem

Limitations

We are currently only supporting a single request queue and do not support dynamic reconfiguration of LUN parameters (VIRTIOSCSIF_CHANGE).

Features

This crate is a work-in-progress. Currently, it's possible to mount and read up to 256 read-only raw disk images. Some features we might like to add at some point, roughly ordered from sooner to later: