Weekly status #145


Weekly status for the week of the 20th April to the 26th of April.

Introduction

The highlight of the past week was the release of LXD 4.0.1 which is the first bugfix release in the new 4.0 LTS series.

LXD

Also for LXD last week, some new features were added:

First, the ability to use push and relay modes when copying images between nodes has been added. This is useful when the node you want to copy the image to is not directly reachable between the two nodes.

On the VM side, we have now added cephfs support so that cephfs directories can now be shared with a VM via 9p (the same way that local directories are shared). Also for VMs, we have added basic NUMA layout matching, which now mimics the NUMA layout of the host in the guest for cases where
specific CPUs have been pinned. LXD also now announces itself in SMBIOS.

The proxy device has also gained support for allowing instances to access the published proxy port in NAT mode. This includes the local instance that the proxy device is attached to. It is achieved using hairpin NAT rules and enabling hairpin mode on the instance’s bridge port when needed. In order for other instances to be able to access the published proxy port the br_netfilter kernel module needs to be loaded and enabled (which LXD does not do automatically to avoid passing bridge traffic through the host’s firewall which may cause unexpected network traffic blocking).

There have also been the usual set of bug fixes and improvements:

For VMs a race condition that was making lxc restart intermittently fail has been fixed. The lxd-agent has also had improvements to its systemd units to allow systemd to know when the lxd-agent has fully started and completed its initialisation. Allowing for other units to more reliably depend on it. There has also been a fix for the cloud-init templates generated by LXD to ensure that the default network device name is correctly recognised and configured.

For containers, a crash when starting an instance when using network priority has been fixed. A fix for cgroup memory controller detection has also been added.

On the storage side, a series of improvements have been added around the theme of ensuring that block backed volumes are created using the correct size, rather than the default size. For instance, now when VMs are migrated their volumes are re-created at the original size, rather than the pool’s default volume size on the target. Similarly, when creating a new block backed volume from a cached image volume, if the pool’s volume.size setting has changed since the cached image volume was created, this is now recognised and the old cached volume is deleted and regenerated at the new size.

LXC

On the LXC side a couple of small fixes were added. First an issue that was causing netlink warnings to be logged by the kernel when using ipvlan NICs was fixed. And an AppArmor policy tweak to allow systemd access to /proc/sys/kernel/random/boot_id was also added.

LXCFS

A small change to silence errors when no memory limit is found was added.

Distrobuilder

A change to support the VM network interface template changed mentioned above for LXD was added to allow different default network interface names in cloud-init based on instance type.

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

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.

  • Virtual machine support
  • Distrobuilder virtual machine support
  • 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.

LXD

LXC

LXCFS

Distrobuilder

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.

Ubuntu

  • Nothing to report this week

Snap

  • Included pci/usb databases
  • Added lxd.lxc-to-lxd
  • Bumped to LXD 4.0.1