oxidecomputer / oxidecomputer/propolis

instantiate devices from migration payload

Open
#668 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
270
Forks
42
Avg merge
4d 5h
Merged PRs (30d)
6

Description

During a migration, the current logic requires the target instance to be initialized with devices exactly matching the source. Those devices are then "rehydrated" with the migration payloads exported from the source, when that phase of the migration occurs. After discussions with @gjcolombo and others, one recurring conclusion was that it'd be nice if we could instantiate the devices directly from the migration payload.

Doing so would require some restructuring, particularly around what resources are required by each respective device when it is created. Viona, for example, requires the underlying vnic resource for initialization today. Moving it to a model similar to block devices, where it is attached to a "backend" resource prior to being pressed into service, might make sense.

An initialization pattern like this may help free us from demanding that the source and target VM instances adhere to similar internal structures when it comes to device naming, etc.

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.

Research direction

The issue names migration payload handling, device initialization, Viona, vNIC resources, and block devices, but no files, tests, or entry points. Start by tracing those areas and determine the resource requirements for each device; done would mean devices can be instantiated directly from migration payloads without requiring source and target instances to have matching internal structures.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.