Weekly status for the week of 17th April to 23rd April.
Introduction
This past week saw the addition of our final LXD roadmap feature for this cycle, the ability to automatically relocate instances running on remote shared storage to a different cluster member when the member it was running on fails. There has also been a focus on bug fixes to reduce our backlog of issues.
Job openings
Canonical Ltd. strengthens its investment into LXD and is looking at building multiple squads under the technical leadership of @stgraber.
As such, we are looking for first line managers (highly technical) and individual contributors to grow the team and pursue our efforts around scalability and clustering.
All positions are 100% remote with some travel for internal events and conferences.
For more info please see LXD related openings at Canonical Ltd (2022-2023)
LXD
New features:
- Added support for automated cluster instance healing when using instances on remote shared storage pools (Ceph). This allows for instances to be automatically relocated to an online cluster member when the cluster member it was running on fails.
Improvements:
- Added AppArmor profile for
rsync
invocations to improve security. - Exposed total memory and disk in state API.
- Avoid rewriting the
backup.yaml
file when each instance snapshot is removed as part of an instance delete (as the file will be removed as part of the instance delete anyway).
Bug fixes:
- Fixed issue with the
forkdns
AppArmor profile. - Fixed issue that left
ovn
NIC devices non-functional after live VM migration. - Fixed issue with nested NIC ordering during instance start and stop to ensure that the parent NIC(s) are started first and stopped last.
- Fixed issue that delayed instance forceful stop (
lxc stop -f <instance>
) when an active file SFTP session was in progress. Now the active SFTP session is terminated during a forceful stop. - Fixed issue with
lxc query
that returned an EOF error for empty files. - Fixed issue that was causing all profile info from a project to be added to instance exports. Now only profile info for the profiles the instance is using are added to the export
backup.yaml
file. - Fixed issue with concurrent snapshot operations causing errors when updating the
backup.yaml
file in the parent instance. - Fixed issue where the incorrect struct type was being returned from the
/1.0/storage-pools/<pool>/buckets/<bucket>/key/<key>
, it now returns theapi.StorageBucketKey
type. - Fixed issue with instance creation operation timeout when the host system I/O is slow and image unpack takes longer than the default 30s operation timeout. The operation timeout on instance creation is now removed.
- Skip DHCP and OVN IP range overlap check when DHCP is disabled on
bridge
networks. If the network config key{ipv4,ipv6}.ovn.ranges
was set, LXD was previously checking if these ranges overlap with configured{ipv4,ipv6}.dhcp.ranges
. This led to an erroneous validation of DHCP ranges if{ipv4,ipv6}.dhcp=false
. - Fixed issue with VMs not starting with
bridged
,ovn
,routed
andp2p
NICs when using QEMU >= 7.2. This disables the vhost-net acceleration, which was previously generating a warning but subsequently started causing an assert crash in QEMU 7.2 and above. It is unlikely that disabling the vhost acceleration will cause a performance regression because the warnings meant it was not working previously anyway. We intend to enable the vhost accelerator in the future.
LXC
Bug fixes:
- Backported fix for CVE-2022-47952 to the LXC 4.0 branch.
- Fixed stuck I/O in mainloop when using io_uring.
- Renamed functions which clash with libsystemd as when statically linking against both liblxc and libsystemd, some function names conflict.
LXD Charm
Improvements:
- Make network and storage pool creation optional by adding
lxd-init-network
andlxd-init-storage
config keys.
YouTube videos
The LXD team is running a YouTube channel with live streams covering LXD releases and weekly videos on different aspects of LXD. You may want to give it a watch and/or subscribe for more content in the coming weeks.
https://www.youtube.com/lxd-videos
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.
- 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
- AppArmor profile for rsync
- Small tweaks around regexp usage
- Doc: update metrics documentation
- lxd/apparmor: fix AppArmor forkdnsProfile
- Device: Add support for live VM cluster member move for
ovn
NICs - Device: Start non-nested OVN NICs before nested OVN NICs
- Comment fixes
- doc: Fix OVN peers doc incorrectly listing a ports option
- Device: Fix device sorting of nested NICs
- Instance: Forcefully stop SFTP forkfile processs when forcefully stopping container
- Added fix to detect EOF error on queries and retry with plain text
- Automated cluster healing
- Instance: Only add profiles the instance is using to backup config
- instance: stop API races while creating/deleting snapshots
- API: Storage bucket fixes
- instance: no timeout on the operationlock for creating an instance
- Add Total fields to InstanceStateDisk and InstanceStateMemory
- lxd/apparmor/rsync: Fix transferring instances including snaps
- Network: Skip
bridge
ovn/dhcp range overlap check when DHCP is off - Instance: Fixes deadlock when deleting a VM that has snapshots
- Instance: Disable vhost accelerator for veth based NICs in QEMU >= 7.2
- lxd/apparmor/rsync: Fix snap use inside of containers
LXC
- Patching an incoming CVE (CVE-2022-47952)
- mainloop: fix stuck when io_uring is enabled
- rename functions which clash with libsystemd’s
LXCFS
- Nothing to report this week
Distrobuilder
- Nothing to report this week
LXD Charm
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