oxidecomputer / oxidecomputer/propolis

disks: want to be able to differentiate "kinds"

Open
#1,004 1 comment 1 reaction 1 assignee View on GitHub

@iximeow is already working on this.

Since Jan 6, 2026.

guest-os local storage storage
Dominant language
Rust
Stars
270
Forks
42
Avg merge
4d 5h
Merged PRs (30d)
6

Description

all NVMe disks are not created equal: the characteristics of disks backed by Crucible, a file, in-memory, 9pfs, etc, all vary wildly. in the product, the only disk types (currently) are the typical Crucible-backed distributed disks and "local" volumes that are from Propolis' perspective a file-backed disk with a particular file that has desirable performance properties. a VM can have one or all of these things at the same time!

it would be nice as a guest to tell which disks you have. that is, it would be nice for nvme list in a Linux guest to tell you enough that you should put your critical data on the Crucible volume mounted at /dev/nvme2n1 and your more ephemeral information on the local volume at /dev/nvme1n1. that might be an NVMe model number, that might be a PCI device ID, could be both!

since Omicron is really what knows what a local volume is, rather than pointing Propolis at any other random file on a sled, it seems like Nexus ought to set an informative model number, but it probably makes sense for Propolis to own the device ID selection. it would be really weird for propolis-api to let you specify whatever random PCI device ID for a disk, but that comes at the cost of Propolis not really knowing if the file backing a disk is a magic fast volume "file" or a normal file on a ZFS filesystem. the latter isn't something we'll use in the product, so that might be an OK ambiguity.

could have sworn we had an issue for this, but I couldn't find one!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.