Skip to content

nvx-rs: aggregate exports for clones #857

Description

Parent: #836 (#833). Needs: stage 1 (#834), and #540 in NVX's OpenVMM pin. Removes: one directory export per clone.

Goal. A clone exports what a cold boot exports: an aggregate of up to 256 host directories and files, each read-only or read-write, with OpenVMM's hidden, re-exposed and writable paths and the owner mode.

Today, after stage 1:

Implementation:

  1. Host: the clone plan takes any ExportPlan that filesystem::plan builds. The restore attaches it to the dormant slot as an aggregate, through microvm: at a platform restore, attach an aggregate export to the dormant filesystem slot #540, rendered as a cold launch renders it. The binds keep their child indices.
  2. Guest: no change. It mounts the filesystem tag at its agent-only root, and MAPS binds the host's sources, as at a cold boot.
  3. Record: no change. The export plan's identity covers its children, and the mapping count stays 1 to 4,096.

Tests, in the test adapter's CI hook on KVM, MSHV and WHP:

  • one template restored with an aggregate of several directories and a file, read-only and read-write children, and hidden and re-exposed paths;
  • a mapped object that changed since planning, refused before launch;
  • a clone without an export keeps the slot dormant.

Guide (#591's numbering): 2.1.4 (the export at restore), 3.6.2, 3.6.9 and 3.6.10 (an aggregate on the dormant slot). The interim rule leaves the guide.

Done when: merged, with the interim rule's tests replaced by these.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions