Skip to content

Snapshot/restore workstream, stage 5: templates and clones in NVX's adapter, and acceptance #837

Closed
5 of 5 issues completed

Description

Parent: #816. Stage: 5 of the snapshot/restore workstream (#833). Needs: stage 1 (#834); stage 3 (#836), with the fallback below; and from the NVX library wiring workstream (#816): #817, #818, #820, #821 and #624.

Goal. NVX's own adapter (its CLI, its Rust init and NVXC) gets platform clones through the shared libraries, with every stage 3 feature from the start, so NVX never uses the interim rules. Then both adapters pass the acceptance on KVM, MSHV and WHP with the released runtime.

Schedule. This stage plans for every stage 3 item. If an OpenVMM change still isn't in NVX's pin when the rest of this stage is ready, the stage proceeds under that item's interim rule, which the shared host library enforces. The feature follows in a small PR under this issue once the item lands: the CLI's template semantics for #849 and #850, and the scenarios in #854. #855 still needs every stage 3 item.

Network. The first release with clones serves ingress, host loopback and forwards, as cold boots do (#850).

Dependencies on the NVX library wiring workstream (#816):

Issue in #816 Needed by For
#821 #851 NVXC v2 with a validated Ready, which embeds ReadyActivation and reserves the Activate request's type
#817 #852 NVX's Rust layered init, which gets template mode, repair and activation
#818 #853 nvx-rs sandbox's image formats and protected paths, which the clone commands extend
#820 #853 The guest build ID, which NVX's adapter supplies to the compatibility key
#624 #855 The acceptance harness, which the platform-clone acceptance extends

PRs, in order:

PR issue Delivers Needs
#851 Activate, and the restore transaction in Ready, in NVXC v2 Stage 1; #821
#852 Template mode, repair and activation in NVX's init #851, stage 3 or the fallback; #817
#853 nvx-rs sandbox's template and clone commands #852; #818, #820
#854 NVX's clone scenarios and documentation #853
#855 Acceptance for both adapters #854, every stage 3 item; #624

Tests. NVX's adapter on KVM, MSHV and WHP: EROFS and GPT over tmpfs and scratch from one template; shorter images; CPU and memory targets; per-clone network policies; aggregate exports; each failure status; reattach; the guest binaries' and initramfs's sizes, before and after.

Acceptance. #855's: both adapters run platform clones end to end through the shared code, with bundled serving the release that includes this work.

Activity

  1. changed the title [-]Platform clones, stage 5: templates and clones in NVX's adapter, and acceptance[/-] [+]Snapshot/restore workstream, stage 5: templates and clones in NVX's adapter, and acceptance[/+] on Oct 24, 2026
  2. esaurez commented on Nov 1, 2026

    @esaurez
    ContributorAuthor

    Rescoped by the nvx-rs slimming workstream (#1076). NVX's binaries get snapshots through the slim library: NVXC's capture and activate messages and a blocking restore driver (#1113), nvx-cli's snapshot commands (#1114), nvx-init's capture and restore (#1117), and smoke tests on real VMs (#1118). The release has the Fresh tier only. The test adapter's side of #855 goes with the adapter (#1119).

  3. ppenna commented on Nov 13, 2026

    @ppenna
    Contributor

    Completed on feature/nvx-refactor, as rescoped above for #1076. The groups that deliver it have merged and closed as completed:

    The release has the Fresh tier only. This issue's PR issues, #851 to #855, planned the template and platform-clone design that the rescope replaced, so they are closed as not planned, each with what replaced it.

    The push CI run at 367f7fe4d0, which contains all of them, passed, including those scenarios on KVM, MSHV and WHP: https://github.com/microsoft/nvx/actions/runs/43363710885. dev receives it when feature/nvx-refactor lands there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions