Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

OpenVMM: support sandbox blocks, networking, and supplied RAM in the microVM management RPC

Aperta
#760 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
grpc, linux, python

Direzione di ricerca

Read the control frontends design linked in the issue, then inspect the management RPC protocol and server handling for DevicesConfig, MicrovmSnapshotConfig, MemoryConfig, and VirtioFs. Compare those settings and validation rules with the command-line options for sandbox blocks, networking, RAM backing files, and aggregate filesystems. Done means the acceptance tests cover capture and restore in both directions and the gRPC reference documents the new fields.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The management RPC, OpenVMM's TTRPC and gRPC vmservice endpoint, has created, captured, and restored microVMs since 7ec02fec6, but only for part of the machine that the command line supports. A microVM with sandbox blocks or a network device, one with a caller-supplied RAM backing file, or one that shares an aggregate host filesystem can only be launched, captured, and restored from the command line. The design describes both frontends as equivalent; see 5.2.1 Control Frontends. Except for the control console, these limits come from missing protocol fields and server handling, not from a design constraint.

Missing in the management RPC

  • Sandbox blocks. DevicesConfig has no field for the fixed-role microVM blocks, and its former virtio_blk field is reserved. MicrovmSnapshotConfig has no snapshot tier, block identity mode, storage generation, or scratch restore mode. Restore rejects these snapshots with "TTRPC restore does not support microVM sandbox-block snapshots".
  • Network device. Creation accepts only the fixed virtio-fs and virtio-console devices, so a request cannot configure the microVM NIC or its network profile, egress and ingress policy, host-loopback access, proxy, or forwards. Restore rejects network attachments with "ttrpc restore does not yet expose microVM network attachments".
  • Supplied RAM backing file. MemoryConfig has no backing-file field, so the server always creates the RAM file itself. The command line also accepts --memory file=PATH, which capture publishes by copying.
  • Host filesystem policy. VirtioFs carries one directory with one access mode. Aggregate shares, file children, allowed, denied, and writable paths, and caller ownership are command-line only, and restore rejects an aggregate with "ttrpc restore does not expose an aggregate microVM filesystem".

Out of scope

  • Control console. 7ec02fec6 rejects it deliberately, because the management endpoint cannot provide an authenticated broker attachment. Supporting it needs a separate design for delivering the control capability.

Acceptance

  • The protocol carries every launch, capture, and restore setting that the command line accepts for these devices, and the server validates them with the command line's rules instead of a second copy.
  • VMM tests capture and restore over TTRPC with sandbox blocks for each snapshot tier, with a network device, with a supplied RAM backing file, and with an aggregate host filesystem.
  • A snapshot captured over the RPC restores from the command line, and the reverse.
  • The gRPC reference describes the new fields.
Lingua principale
Python
Stelle
408
Fork
28
Merge medio
16h 18m
PR unite (30g)
332

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/nvx

Tutte le issue di microsoft/nvx

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.