Internships/ProjectIdeas/VhostUserSCSIRust: Difference between revisions
(Created page with "=== vhost-user-scsi device server in Rust === '''Summary:''' Implement a vhost-user-scsi device server in Rust The vhost-user protocol allows driving a virtio process from...") |
|||
Line 13: | Line 13: | ||
* [https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg00800.html "Why QEMU should move from C to Rust"] | * [https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg00800.html "Why QEMU should move from C to Rust"] | ||
* [https://github.com/rust-vmm/vhost/ vhost crate in Rust-VMM, which includes support for vhost-user] | * [https://github.com/rust-vmm/vhost/ vhost crate in Rust-VMM, which includes support for vhost-user] | ||
* [https:// | * [https://gitlab.com/virtio-fs/virtiofsd-rs/ vhost-user-fs device server in Rust] | ||
'''Details:''' | '''Details:''' |
Latest revision as of 08:39, 29 March 2021
vhost-user-scsi device server in Rust
Summary: Implement a vhost-user-scsi device server in Rust
The vhost-user protocol allows driving a virtio process from a separate process. This is better from a security perspective, as it allows to implement a better privilege separation policy, but also makes possible to implement the device personality using a foreign programming language (QEMU is mainly written in C) and to experiment with optimization features that would be hard to deploy inside QEMU itself.
There are already a number of crates in the rust-vmm umbrella project that provide a framework for writing vhost-user device servers in Rust, and some device servers implementations such as vhost-user-blk, vhost-user-net and vhost-user-fs.
This project consists in writing a vhost-user-scsi device server in Rust that's able to serve multiple virtual LUNs, each one backed by a different disk image or iSCSI target. If time allows, benchmarks should also be provided comparing its performance against the integrated virtio-scsi implementation.
Links:
- Vhost-user protocol documentation
- "Why QEMU should move from C to Rust"
- vhost crate in Rust-VMM, which includes support for vhost-user
- vhost-user-fs device server in Rust
Details:
- Skill level: Intermediate
- Language: Rust
- Mentor: Sergio Lopez <slp@redhat.com>