Skip to content

Add LCOW live migration source and destination APIs#2803

Open
rawahars wants to merge 1 commit into
microsoft:mainfrom
rawahars:lm_service
Open

Add LCOW live migration source and destination APIs#2803
rawahars wants to merge 1 commit into
microsoft:mainfrom
rawahars:lm_service

Conversation

@rawahars

@rawahars rawahars commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduce an end-to-end live-migration workflow for LCOW sandboxes, letting a running sandbox be handed off from a source shim to a destination shim.

  • Add a migration Controller that sequences a single session through a source or destination lifecycle: the source prepares and exports an opaque sandbox snapshot (VM + per-pod state), while the destination imports it, patches each container onto its new IDs, builds the destination VM, transfers memory over a shared socket, and finalizes with a resume or stop.

  • Expose the migration gRPC/ttrpc surface on the LCOW shim service (PrepareAndExportSandbox, ImportSandbox, PrepareSandbox, TransferSandbox, FinalizeSandbox, Cancel, Cleanup, CreateDuplicateSocket, Notifications) and register it alongside the task and sandbox services.

  • Wire migration into the task lifecycle: route destination-side CreateTask for rehydrated containers into a patch path, and reject task mutations (state, delete, kill) while a session is in progress.

  • Add duplicated transport-socket adoption, a subscriber-based progress notification stream, and proto/HCS conversion helpers for migration options and events.

This PR needs #2790 to be merged.

Introduce an end-to-end live-migration workflow for LCOW sandboxes, letting
a running sandbox be handed off from a source shim to a destination shim.

- Add a migration Controller that sequences a single session through a
  source or destination lifecycle: the source prepares and exports an
  opaque sandbox snapshot (VM + per-pod state), while the destination
  imports it, patches each container onto its new IDs, builds the
  destination VM, transfers memory over a shared socket, and finalizes
  with a resume or stop.

- Expose the migration gRPC/ttrpc surface on the LCOW shim service
  (PrepareAndExportSandbox, ImportSandbox, PrepareSandbox, TransferSandbox,
  FinalizeSandbox, Cancel, Cleanup, CreateDuplicateSocket, Notifications)
  and register it alongside the task and sandbox services.

- Wire migration into the task lifecycle: route destination-side CreateTask
  for rehydrated containers into a patch path, and reject task mutations
  (state, delete, kill) while a session is in progress.

- Add duplicated transport-socket adoption, a subscriber-based progress
  notification stream, and proto/HCS conversion helpers for migration
  options and events.

Signed-off-by: Harsh Rawat <harshrawat@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant