Brussels / 1 & 2 February 2020


LXD for mixed system containers and VM workloads

Introducing LXD's new virtual machine feature

LXD is most known as a system container manager, offering a simple user experience and images for most Linux distributions. It also offers a simple REST API, network and storage management, project views and easy clustering to dozen of hosts.

Over the past few months, LXD has now grown the ability to run virtual machines alongside containers, using the exact same REST API and configuration. This presentation will cover that new feature, why it was done, where it's at now and where we're going with it, as well as provide a quick demo of setting up a small LXD cluster and running both containers and virtual machines on it.

LXD is an open source system container manager, developed by the team behind LXC, written in Go and that's been around for over 5 years now. It's widely used both on servers, running the backend of services such as Travis-CI and on everyday devices like Chromebooks. Containers are created from images with prebuilt images available for most Linux distributions.

Multiple hosts can easily be clustered together to form one large virtual host, exposing the exact same API as a single host would. Storage pools and networks can also be created and managed through LXD and resources can be segmented into projects.

With the addition of virtual machine support (through qemu), it is now possible to manage a mixed deployment of virtual machines and containers, sharing the same configuration, storage and networks. With the use of our built-in agent, the exact same operations that are normally possible against a container also become possible against virtual machines, including executing commands, transferring files, ...

Existing API clients for LXD can also now drive both containers and virtual machines without any API changes required.


Photo of St├ęphane Graber St├ęphane Graber