Weekly status #185

Weekly status for the weeks of the 8th of February to the 14th of February.


Now that @mbordere is maintaining the Dqlite, Go-dqlite and Raft repositories, we have added sections tracking changes to those repositories below.


The new features that have landed this past week are:

  • VM stateful stop, start and snapshots using the the --stateful flag. As part of this we have also re-worked the lxd-agent systemd units to not require an active mount back to the host. This is so we can avoid having a virtiofs mount inside all VMs (which currently prevents stateful operations due to qemu limitations). Instead it copies the agent to a tmpfs mount and then unmounts the virtiofs mount at start up.
  • Added Ceph storage pool setting ceph.rbd.features to enable access to additional Ceph volume creation settings which the underlying ceph tools and kernel modules expose (this varies based on the version of ceph being used).
  • Added support for setting images.* and backups.* server config keys on a per-project basis.
  • Initial Network ACL API endpoints and associated lxc network acl commands (although at this time none of the network drivers support ACLs so it cannot be used yet).

The following improvements and bugs have also been fixed:

  • Worked around kernel IPVLAN cleanup issues by getting LXD to move the IPVLAN interface back to the host and deleting it on container stop.
  • Worked around an issue that occurred on some SR-IOV NICs (broadcom in this case) that required the VF interfaces to have an explicit MAC set, now where the user has not provided one we set it to a random one at instance start.
  • Added support for live updating NIC fields when using network property. This has not been possible up until this point due to an issue that considered the config keys inherited from the network as NIC changes which triggered a full device remove and re-add rather than a live update.
  • Improved cluster heart-beating in LXD to not run concurrent heartbeats and adds additional logging to aid debugging of heartbeat issues.


  • The lxc.net.[i].script.down hooks are now passed the FDs of the container namespaces (via environment variables, like the existing .stop hook) to allow hooks to access the container’s namespaces before the network is taken down.
  • If the iw command cannot be found an error is now returned.
  • Continued hardening of cgroups and fd-only codepaths.


  • An issue with memory spikes on nodes where IO to persistent storage is consistently slow has been fixed.

Youtube channel

We’ve started a Youtube channel with live streams covering LXD releases and its use in the wider ecosystem.

You may want to give it a watch and/or subscribe for more content in the coming weeks.

Contribute to LXD

Ever wanted to contribute to LXD but not sure where to start?
We’ve recently gone through some effort to properly tag issues suitable for new contributors on Github: Easy issues for new contributors

Upcoming events

  • Nothing to report this week

Ongoing projects

The list below is feature or refactoring work which will span several weeks/months and can’t be tied directly to a single Github issue or pull request.

  • Distrobuilder Windows support
  • Virtual networks in LXD
  • Various kernel work
  • Stable release work for LXC, LXCFS and LXD

Upstream changes

The items listed below are highlights of the work which happened upstream over the past week and which will be included in the next release.




  • Nothing to report this week


Dqlite (RAFT library)

Dqlite (database)

  • Nothing to report this week

Dqlite (Go bindings)

  • Nothing to report this week

Distribution work

This section is used to track the work done in downstream Linux distributions to ship the latest LXC, LXD and LXCFS as well as work to get various software to work properly inside containers.


  • LXCFS 4.0.7 was uploaded to Ubuntu 21.04
  • LXC 4.0.6 was uploaded to Ubuntu 21.04


  • lxc: Cherry-picked upstream bugfixes
  • lxd: Cherry-picked upstream bugfixes
1 Like