Weekly status #173


Weekly status for the week of the 2nd of November to the 8th of November.

Introduction

Last Friday the LXD team presented their 6 month roadmap plan which is available to watch here:

https://www.youtube.com/watch?v=sVWl6O-XAyY

The slides detailing the plans are also available.

LXD

This past week we have been focusing on fixing bugs and improving the documentation.

The OVN networking driver gained the ability to use a bridge network uplink that uses an openvswitch bridge rather than a native bridge (bridge.driver=openvswitch).

Virtual machines now convert (and round) the limits.memory setting to mebibytes when setting the live memory limit. This now aligns with the existing conversion that was happening at boot time and fixes an issue that prevented fully dynamically growing the memory back to the boot time memory size.

A fix was also added to improve the resilience of the newly added virtiofs support for VMs when passing a directory share into a VM guest. LXD uses the virtiosfsd process on the host to expose the directory to the VM guest, and there was a non-zero time delay between starting that process and the socket file being created (which Qemu requires to start). So we now wait for longer for that socket file to appear and fail to start with a clear error message if it doesn’t appear for some reason.

The documentation around limits.memory.swap has been clarified (as well as a a related and more detailed explanation of swap memory reporting for containers in the LXCFS repo, see below).

The storage subsystem saw quite a bit of work on edge case bugs (and will continue to receive additional work this coming week too).

Firstly, when creating a new storage pool the default storage pool size calculation is now aligned to the same logic that is used when creating a storage pool as part of the lxd init command.

Secondly, the logic used when creating (and recreating) optimised image volumes (on storage pools that support that feature) has been refreshed to allow VM instances to be created with root disks smaller than the pool’s cached image volume. This can occur when creating a VM that uses a profile with a root disk device that has a size property specified.

Finally on the storage side, for the LVM storage pool driver, the lvm.thinpool_name setting was changed to be a so-called “cluster member local” key, meaning that when using LVM storage pool in a cluster environment, each cluster member can use a different value for this key.

There has also been a focus on improving our support for cgroupv2, by moving all hardcoded cgroup references into an abstraction that we can then use with automated testing to ensure that the cgroup features work with different cgroup versions.

LXC

Work for LXC this passed week focused on improving support for seccomp, specifically making the seccomp notifier non-blocking.

LXCFS

A long running issue (on and off) was the way that LXCFS emulates swap (both used and available) for a container in various different scenarios. There isn’t a way to achieve exact parity compared to the way swap is reported on the host with the functionality available in the kernel’s cgroups. So compromises have had to be made.

The behaviour and explanations for the compromises made have now been documented here.

LXCFS has then been modified to align with the policy described in that document.

Youtube channel

We’ve started a Youtube channel with a couple of live streams so far.
You may want to give it a watch and/or subscribe for more content in the coming weeks.

https://www.youtube.com/channel/UCuP6xPt0WTeZu32CkQPpbvA

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.

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

1 Like