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 thevolume.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
-
Container Camp
- Dates: May 22nd
- Location: online event
- Attendees: @stgraber
- Talks:
- Open Source Summit - North America
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
- lxd/init: Auto-detect and use Ubuntu ZFS setup
- Add
--expanded
to config get - Resolve both core.https_address and cluster.https_address when comparing IPs
- Storage: CEPH Support cached image regeneration
- Storage: Skip missing files during export
- Export: Fixes hang in export when invalid --compression argument passed
- Storage: BTRFS CreateVolumeFromCopy only set volume size when source is image
- Storage: CreateVolumeFromCopy only set volume size from expanded config when source is image
- Cleanup db function names
- Storage: Restore VM generic backups using their original volume size
- Storage: Updates volume size treatment to be consistent across drivers
- Storage: Detect cached image filesystem changes for VM images too
- Cleanup db function names, part 2
- lxc/image: Actually refresh multiple images
- lxd/resources: Use permanent MAC when available
- lxd/qemu: Restrict NUMA layout to x86_64
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