Propolis VMM userspace for use with illumos bhyve.
Given the current tight coupling of the bhyve-api component to the ioctl
interface presented by the bhyve kernel component, running on recent illumos
bits is required.
Propolis works best (and its CI tests run) on AMD hosts, but it can also be used to run VMs on Intel hosts. Live migration is primarily supported on AMD hosts but may work on Intel hosts as well.
Programs:
- propolis-server: Run a Propolis VM instance, operated via REST API calls (typically by omicron)
- propolis-cli: CLI wrapper interface for
propolis-serverAPI calls - propolis-standalone: Simple standalone program to run a Propolis VM instance, operated via a local config file
Libraries:
- propolis-client: Rust crate for
propolis-serverAPI - propolis: Represents the bulk of the emulation logic required
to implement a userspace VMM. Both
propolis-serverandpropolis-standaloneare built around this.
These are not meant as committed public interfaces, but rather internal implementation details, consumed by Propolis components.
- bhyve-api: API (ioctls & structs) for the illumos bhyve kernel VMM
- dladm: Some thin wrappers around
dladmqueries - propolis-server-config: Type definitions for
propolis-serverconfig file - propolis-standalone-config: Type definitions for
propolis-standaloneconfig file - propolis-types: Publically exposed (via
propolis-server) types, intergral to thepropolislibrary - viona-api: API (ioctls & structs) for the illumos viona driver
Unless otherwise noted, all components are licensed under the Mozilla Public License Version 2.0.