microsoft / microsoft/openvmm

Persist FUSE and virtio-fs state with attachment revalidation

Open
#4,441 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1.9k
Forks
238
Avg merge
1d 15h
Merged PRs (30d)
100

Description

Tracking issue: MicroVM support and private snapshot restore.

Motivation

The guest-visible FUSE session and virtio-fs queues cannot be reconstructed safely
by reconnecting a host directory alone. Restored protocol state must agree with
the exported filesystem and its access policy, and stale host handles must not
silently identify a different file or grant a broader attachment.

Proposed Scope

  • Persist the FUSE session and virtio-fs device/queue state required by the
    supported snapshot contract.
  • Define treatment of node identities, open handles, and pending requests at the
    capture boundary, rejecting unsupported states explicitly.
  • Reconstruct and revalidate live filesystem attachments, including export roots,
    access modes, and the identity requirements of restored protocol state.
  • Use the shared attachment-preparation contract introduced for networking and
    participate in its acknowledged activation and cleanup sequence.
  • Document the consistency assumptions for externally mutable host filesystems.

Acceptance Criteria

  • Focused tests round-trip supported FUSE and queue state and reject malformed
    or incompatible state without panics.
  • Replaced, missing, or incompatible host objects fail revalidation rather
    than silently acquiring another object's identity or broader permissions.
  • A VMM test captures and restores during active filesystem I/O, then verifies
    data access, request completion, and the documented handle semantics.
  • Failure during attachment reconstruction releases opened resources and does
    not activate a partially restored device.
  • Combined console, network, and filesystem restore is exercised through
    cargo xflowey vmm-tests-run; unit coverage alone does not close this issue.
  • The Guide states which live-attachment states are supported and what host
    filesystem changes invalidate a restore.

Dependencies

Keep this PR after network reconstruction so both devices use the same preparation
and failure contract.

Non-Goals

This issue does not snapshot the host filesystem itself or provide point-in-time
consistency for arbitrary external writers. Dormant devices and choosing a new
filesystem attachment at restore time are separate work.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with 00-microvm.md and dependency D02 on network persistence and shared attachment preparation. Then trace the existing VMM snapshot and restore flow, using cargo xflowey vmm-tests-run as the integration entry point. Done means supported FUSE and virtio-fs state restores safely, invalid attachments fail without partial activation, and the Guide documents supported states and invalidating host changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
infrastructure, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.