Skip to content

microvm: at a platform restore, attach an aggregate export to the dormant filesystem slot #540

Description

Parent: #835 (#833). Unblocks: #857.

Goal. A platform template captures a dormant filesystem slot. At restore, OpenVMM attaches to it either one directory, as today, or an aggregate of host directories and files, validated as at a cold launch, before any vCPU runs. Clones then export what cold boots export.

Today (NVX's pin, 79a501b6):

  • The slot's backend is an aggregate, one directory or dormant (openvmm/openvmm_entry/src/microvm/config.rs:570-628). A cold launch validates an aggregate's children: their kinds, access modes, hidden, re-exposed and writable paths, the owner mode, and limits (openvmm/openvmm_entry/src/cli_args/microvm.rs:441-542, :1066-1117).
  • A snapshot that captured an aggregate restores only with the same children, names and modes (openvmm/openvmm_entry/src/microvm/filesystem.rs:997-1027).
  • A dormant slot accepts only --mount at restore (:983-995), and a test checks that an aggregate is refused (:2008-2017).

Expected behavior:

  • At a restore of a platform snapshot whose slot is dormant, --mount-aggregate with its --mount-child options, and their --mount-deny, --mount-allow, --mount-write and --mount-owner policy, attach an aggregate to the slot, validated as at a cold launch.
  • No device is added: the slot's device ID, tag, MMIO, IRQ, features and queues stay as captured. The saved command line doesn't change, and OpenVMM exposes no layout: the guest learns of the export over its own control channel.
  • --mount, or no attachment, behaves as today. A snapshot that captured an attachment keeps its exact-match rules, and workload and instance snapshots are unchanged.
  • Refused: an aggregate on a snapshot without the dormant slot's version, and children that a cold launch would refuse.

Tests: VMM tests that restore a dormant slot with an aggregate of directory and file children, with mixed modes and policies; invalid aggregates, refused; snapshots with a captured attachment, and older snapshots, unchanged.

NVX pin: a PR that moves NVX's OpenVMM pin and adds a VMM-level snapshot scenario, as for the other changes in #835.

Replaces this issue's earlier plan: no guest-observable layout, no attachment receipts (#548), and no dependency on #543 (closed) or #544 (the performance workstream).

Activity

  1. changed the title [-]OpenVMM prerequisite: attach aggregate virtio-fs to a dormant platform snapshot slot[/-] [+]microvm: at a platform restore, attach an aggregate export to the dormant filesystem slot[/+] on Oct 24, 2026
  2. added 20 commits that reference this issue on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions