Weekly status #146


Weekly status for the week of the 27th April to the 3rd of May.

Introduction

The bulk of the LXD changes this past week continue on from last week’s work on setting storage volume sizes correctly when creating volumes from cached image volumes, migrations and backup restores. These patches deal with several issues that have become more frequent when using virtual machines as the storage volumes created need to be sufficient size to have the source disk images unpacked into them.

  • Regeneration of cached image volumes when the storage pool’s volume.size setting is smaller than the cached image volume size and the volume.block.filesystem setting doesn’t allow file system shrinking.
  • Regeneration of cached virtual machine config volumes when the storage pool’s volume.block.filesystem has changed since the image volume was created.
  • VM backup restores now create volumes on the target host based on the raw size of the disk image size inside the tarball, rather than using the storage pool’s volume.size setting.
  • Improvements to the storage drivers to make them behave consistently with each other when setting volume size during volume create and quota/size modification.

Several other storage improvements have been made:

  • Files that disappear during a container export are now ignored (as they were previously before the export system was modified to use Go’s tar writer). A warning is logged.
  • A hang when specifying an invalid value to the --compression option when doing an instance export has been fixed. You now get an error.
  • Refreshing multiple images by providing multiple image fingerprints to the lxc image refresh command now works.
  • LXD now detects an existing Ubuntu ZFS setup and offers to use it during lxd init.

We have also added support for the --expanded flag to the lxc config get command so that you can retrieve individual configuration settings for an instance after expanding the profiles being used. The old behaviour of lxc config get remains unchanged and will continue to return non-expanded config.

The resources API now returns the permanent MAC address of an interface if it can, rather than the user specified one.

Virtual machine NUMA layout configuration is now restricted to x86_64 architectures only.

Finally for LXD, the database layer has been given a cleanup so that its function names are using a consistent naming convention.

On the LXC front, there were more cgroupv2 fixes. LXC now mounts the cgroupv2 filesystem before starting the container, this allows us to start OSes where the init system inside the container does not yet mount the cgroupv2 filesystem itself, even though it supports it.

LXCFS has had a fix to the cgroup cpuset value so that if CPUs are limited this is reflected in /sys/devices/system/cpu/online.

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

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

  • 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.

Ubuntu

  • Nothing to report this week

Snap

  • Nothing to report this week