[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GSoC introduction: Rust vhost-user-scsi device
From: |
Gaelan Steele |
Subject: |
GSoC introduction: Rust vhost-user-scsi device |
Date: |
Tue, 18 May 2021 19:10:31 -0700 |
Hello all,
I'm Gaelan Steele, one of QEMU's Google Summer of Code students this
year. My mentor (Sergio Lopez) has asked me to introduce myself and my
project here.
As you all may know, QEMU supports virtio-scsi in one of two ways: it
can use a built-in C implementation, running in the main QEMU process,
or delegate to another implementation over vhost-user. We have an
existing proof-of-concept vhost-user-scsi implementation in contrib/
that passes requests through to an iSCSI target, but we don't have
such an implementation for a local disk image. My goal is to write
one, in Rust. This has a few primary advantages over the existing
in-process SCSI implementation:
* Security - SCSI is a complex binary protocol - a fairly large attack
surface. By moving the SCSI implementation into a separate process in
a memory-safe language, we both reduce the risk of bugs in the first
place, and make it possible to sandbox the vhost-user-scsi process,
reducing the potential impact even if the process is compromised.
* Reusability - the plan is for this implementation to live with the
rust-vmm project, where it can be used by QEMU but also by any other
VMM that speaks vhost-user.
* Performance - living in a separate process might allow some
optimizations that would be difficult to implement within QEMU proper.
My minimum goal is to implement enough of SCSI for the guest to be able
to mount a block device read-only; if I have time, I'll also implement
write support, add support for forwarding to an iSCSI target, and spend
time benchmarking and optimizing the new implementation.
We're currently in GSoC's "community bonding period", which I'll use
to get acquainted with the community and the rust-vmm codebase, and
nail down any toolchain issues. The coding period proper starts June 7
and continues for 10 weeks until August 16.
Finally, a bit about me: I'm an undergraduate computer science student
at the University of St Andrews, Scotland; physically, I'm at home in
the Pacific Northwest USA for the summer. I've been contributing to
open source for about a decade now.
Thanks for welcoming me into your community!
Gaelan Steele
- GSoC introduction: Rust vhost-user-scsi device,
Gaelan Steele <=