Configuration and Management
OpenVMM's configuration and management interfaces are currently unstable, incomplete, lightly documented, and broadly speaking - not particularly "polished".
These interfaces are strictly for dev use only.
Refer to the OpenVMM disclaimer for more context.
At the moment, OpenVMM exposes 3 distinct configuration and management interfaces.
- CLI: Used to configure and launch a single VM
- This allows configuring static VM resource assignments, such as the number of processors, RAM size, UEFI, graphic console, etc.. as well as what devices are exposed to the Guest, such as a virtual NIC, Storage, vTPM, etc..
- Interactive console: Used to interact with a VM at runtime
- This interface allows users to perform core VM operations such as stop, restart, save, restore, pause, resume, etc.. as well as things like storage hot-add, VTL2 servicing, running Inspect queries, etc..
- gRPC / ttrpc: A very WIP set of APIs for configuring and interacting with VMs
Missing Functionality (non-exhaustive)
The following is a non-exhaustive list of notable management features that OpenVMM is currently missing.
Feature | Status |
---|---|
Suspend / Resume a VM | OpenVMM's existing save/restore infrastructure theoretically supports this, but the end-to-end flow has not been wired up to any management interface at the moment. |
Snapshots | OpenVMM has core infrastructure for performing save/restore operations, but there are gaps in device support (notably: no support for storage snapshots). |
Managing multiple running VMs |
OpenVMM currently runs a single VM per-process. It is not yet clear whether OpenVMM will support managing multiple VMs via a single OpenVMM process, or if OpenVMM will rely on external management tools (e.g: `libvirt`) interfacing with its existing APIs in order to launch and manage multiple VMs. |
If a feature is missing from this list, please check if the feature is being tracked via a Issue on the OpenVMM GitHub, and/or submit a PR adding it to this list.