Design volume attach and detach for existing VMs #129

Open
opened 2026-09-15 06:55:35 +00:00 by a73x · 0 comments
Owner

Currently claims attach only inside the VM-create transaction. Releasing a claim requires deleting the VM and waiting for reaping. #122 already identifies existing-VM attachment as a separate design decision.

Design deliverables

  • Choose and document stopped-VM attachment versus live hotplug for the initial scope, with a cloud-hypervisor/vfkit capability matrix.
  • Specify API operations and lifecycle states, including guest unmount/quiescence requirements before detach.
  • Preserve tenant isolation, single-VM ownership, host pinning and stable device identity/order.
  • Define when detach actually releases ownership; cover offline agents, failures, retries and restarts without allowing simultaneous writers.
  • Produce an implementation plan and verification scenarios, including retained data after detach/reattach.

Keep existing create-time attachment behavior available. References: internal/server/store/volumes.go; internal/agent/cloudhv/cloudhv.go; internal/agent/vfkit/vfkit.go.

Currently claims attach only inside the VM-create transaction. Releasing a claim requires deleting the VM and waiting for reaping. #122 already identifies existing-VM attachment as a separate design decision. ## Design deliverables - Choose and document stopped-VM attachment versus live hotplug for the initial scope, with a cloud-hypervisor/vfkit capability matrix. - Specify API operations and lifecycle states, including guest unmount/quiescence requirements before detach. - Preserve tenant isolation, single-VM ownership, host pinning and stable device identity/order. - Define when detach actually releases ownership; cover offline agents, failures, retries and restarts without allowing simultaneous writers. - Produce an implementation plan and verification scenarios, including retained data after detach/reattach. Keep existing create-time attachment behavior available. References: internal/server/store/volumes.go; internal/agent/cloudhv/cloudhv.go; internal/agent/vfkit/vfkit.go.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
a73x/eitri#129
No description provided.