oxidecomputer / oxidecomputer/omicron

Omicron Live Migration Support

Open
#252 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

customer mvp nexus Sled Agent virtualization
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Tracking issue for Omicron changes necessary to support and manage live migration.

Nexus

  • Durable storage of live migration state (likely tightly coupled with the question "which sled does an instance live on")
  • Client APIs for accessing Sled Agent API
  • Decision-making engine for "when should we actually initiate this process"? Likely influenced by system load, system updates (see #250), but we can make something super simple to start (or explicitly triggered by an internal API).
  • (???) Any networking-related work to ensure that the source/destination propolis instances can actually talk to each other
  • Validation of source/destination versions, to ensure that live migration between the two sleds is actually possible
  • API + expanded instance state for "getting updates from the propolis instances that are actually doing the work of the updates". Nexus probably wants to be aware of "what phase of the migration are we in", and should be notified by source/destination.

Sled Agent

  • Interface to initiate live migration (source propolis instance)
  • Interface to initiate live migration (destination propolis instance). Presumably, the source/dest will talk between each other + send notifications up to Nexus as Propolis moves between stages of live migration, but interfaces will be necessary here for bootstrapping.

Contributor guide

Open the contributing guide

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 no files or tests; start by reviewing the Nexus and Sled Agent sections and tracing the existing instance-location and Propolis control paths. The work is done only when the required live-migration state, initiation interfaces, version validation, networking considerations, and progress updates have been scoped and implemented.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.