mirror of
https://github.com/rust-vmm/vhost-device.git
synced 2026-01-07 11:37:40 +00:00
Bumps the vhost-device group with 14 updates: | Package | From | To | | --- | --- | --- | | [clap](https://github.com/clap-rs/clap) | `4.4.18` | `4.5.0` | | [thiserror](https://github.com/dtolnay/thiserror) | `1.0.56` | `1.0.57` | | [tempfile](https://github.com/Stebalien/tempfile) | `3.9.0` | `3.10.0` | | [anstyle](https://github.com/rust-cli/anstyle) | `1.0.5` | `1.0.6` | | [cfg-expr](https://github.com/EmbarkStudios/cfg-expr) | `0.15.6` | `0.15.7` | | [clap_builder](https://github.com/clap-rs/clap) | `4.4.18` | `4.5.0` | | [clap_derive](https://github.com/clap-rs/clap) | `4.4.7` | `4.5.0` | | [clap_lex](https://github.com/clap-rs/clap) | `0.6.0` | `0.7.0` | | [either](https://github.com/rayon-rs/either) | `1.9.0` | `1.10.0` | | [indexmap](https://github.com/indexmap-rs/indexmap) | `2.2.2` | `2.2.3` | | [strsim](https://github.com/rapidfuzz/strsim-rs) | `0.10.0` | `0.11.0` | | [thiserror-impl](https://github.com/dtolnay/thiserror) | `1.0.56` | `1.0.57` | | [unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation) | `1.10.1` | `1.11.0` | | [winnow](https://github.com/winnow-rs/winnow) | `0.5.37` | `0.5.39` | Updates `clap` from 4.4.18 to 4.5.0 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.4.18...clap_complete-v4.5.0) Updates `thiserror` from 1.0.56 to 1.0.57 - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.56...1.0.57) Updates `tempfile` from 3.9.0 to 3.10.0 - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.9.0...v3.10.0) Updates `anstyle` from 1.0.5 to 1.0.6 - [Commits](https://github.com/rust-cli/anstyle/compare/v1.0.5...v1.0.6) Updates `cfg-expr` from 0.15.6 to 0.15.7 - [Release notes](https://github.com/EmbarkStudios/cfg-expr/releases) - [Changelog](https://github.com/EmbarkStudios/cfg-expr/blob/main/CHANGELOG.md) - [Commits](https://github.com/EmbarkStudios/cfg-expr/compare/0.15.6...0.15.7) Updates `clap_builder` from 4.4.18 to 4.5.0 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.4.18...v4.5.0) Updates `clap_derive` from 4.4.7 to 4.5.0 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.4.7...v4.5.0) Updates `clap_lex` from 0.6.0 to 0.7.0 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_lex-v0.6.0...clap_lex-v0.7.0) Updates `either` from 1.9.0 to 1.10.0 - [Commits](https://github.com/rayon-rs/either/compare/1.9.0...1.10.0) Updates `indexmap` from 2.2.2 to 2.2.3 - [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md) - [Commits](https://github.com/indexmap-rs/indexmap/compare/2.2.2...2.2.3) Updates `strsim` from 0.10.0 to 0.11.0 - [Release notes](https://github.com/rapidfuzz/strsim-rs/releases) - [Changelog](https://github.com/rapidfuzz/strsim-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rapidfuzz/strsim-rs/compare/0.10.0...v0.11.0) Updates `thiserror-impl` from 1.0.56 to 1.0.57 - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.56...1.0.57) Updates `unicode-segmentation` from 1.10.1 to 1.11.0 - [Commits](https://github.com/unicode-rs/unicode-segmentation/compare/v1.10.1...v1.11.0) Updates `winnow` from 0.5.37 to 0.5.39 - [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md) - [Commits](https://github.com/winnow-rs/winnow/compare/v0.5.37...v0.5.39) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: anstyle dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: cfg-expr dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: clap_builder dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: clap_derive dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: clap_lex dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: either dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: indexmap dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: strsim dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: thiserror-impl dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: unicode-segmentation dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: winnow dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .. | ||
| src | ||
| test | ||
| ARCHITECTURE.md | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| LICENSE-APACHE | ||
| LICENSE-BSD-3-Clause | ||
| README.md | ||
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 (VIRTIO_SCSI_F_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:
- Write support. This should just be a matter of implementing the WRITE command, but there's a bit of complexity around writeback caching we need to make sure we get right.
- Support more LUNs. virtio-scsi supports up to 16384 LUNs per target. After 256, the LUN encoding format is different; it's nothing too complicated, but I haven't gotten around to implementing it.
- Concurrency. Currently, we process SCSI commands one at a time. Eventually, it'd be a good idea to use threads or some fancy async/io_uring stuff to concurrently handle multiple commands. virtio-scsi also allows for multiple request queues, allowing the guest to submit requests from multiple cores in parallel; we should support that.
- iSCSI passthrough. This shouldn't be too bad, but it might be a good idea to decide on a concurrency model (threads or async) before we spend too much time here.