Driver (backend)

See also: How to set up the driver, local.driver, Instance, Platform

A driver is the technology through which Multipass emulates a running machine. It corresponds to a hypervisor or intermediary technology to run virtual machines. The driver is sometimes also referred to as “backend”.

Multipass relies on a driver to operate. It supports multiple drivers, but it runs with a single driver at a time. There is a Multipass setting to select the driver: local.driver.

On some platforms, it is possible to select a driver during installation. Until it is manually set, a platform-appropriate default driver is used.

Supported drivers

Different sets of drivers are available on different platforms:

  • On Linux, Multipass can be configured to use QEMU, LXD, and libvirt.
  • On macOS, the options are QEMU and VirtualBox. As of Multipass version 1.13, Hyperkit is no longer available.
  • On Windows, Multipass uses Hyper-V (only available on Windows Pro) or VirtualBox.

Default drivers

When Multipass is installed, the following drivers are selected by default:

  • On Linux, the default driver depends on the host’s architecture:
    • QEMU on amd64
    • LXD on other platforms.
  • On macOS, QEMU is used.
  • On Windows, the default driver depends on the OS version:
    • Hyper-V on Windows Pro
    • VirtualBox on Windows Home

Instance scopes

In general, Multipass instances are tied to a single driver, with the exceptions listed below. The set of instances that were launched with one driver are available only while that driver is in use.

When a new driver is selected, Multipass switches to a separate instance scope. There, the set of existing instances is empty to begin with. Users can launch instances with the same name in different drivers and changes to instances with one driver have no effect on the instances of another.

Nonetheless, instances are preserved across drivers. After switching back to a previously-used driver, Multipass restores the corresponding instance scope. It attempts to restore the state instances were in just before the switch and users can interact with them just as before.

Exceptions

There are two exceptions to the above:

Feature disparities

While we strive to offer a uniform interface across the board, not all features are available on all backends and there are some behaviour differences:

Feature Only supported on… Notes
Native mounts
  • Hyper-V
  • LXD
  • QEMU
This affects the --type option in the mount command).
Extra networks
  • Hyper-V
  • LXD
  • QEMU
  • VirtualBox
This affects the networks command, as well as the --network and --bridged options in launch.
Snapshots
  • Hyper-V
  • QEMU
  • VirtualBox
VirtualBox will be supported starting from version 1.14.
VM suspension
  • Hyper-V
  • libvirt
  • QEMU
  • VirtualBox
This affects the suspend command.

There are also feature disparities depending on the host platform. See Platform for more details.


Errors or typos? Topics missing? Hard to read? Let us know or open an issue on GitHub.

Last updated a month ago. Help improve this document in the forum.