Introduction
This month’s LXD release comes with a lot of bugfixes and performance improvements, especially for those using LXD clustering.
Feature wise, this release has a lot of improvements for those using the proxy
device type first introduced in LXD 3.0, foundation work for image download improvements in nested environments and closes a big gap in our storage story by allowing containers to be copied and moved between pools.
The changes in this release include
Features:
- Added a new API to /dev/lxd allowing for direct download of public
and cached images from the host (requires security.devlxd.images) - Added support for copying and moving containers between storage pools
- Big improvements to the proxy device:
- Unix socket support (including OOB packets)
- UDP support
- Port ranges for UDP and TCP
- New simplified cluster join API
Bugfixes:
- client: Enable TCP KeepAlive
- doc: Add links to REST API
- doc: Fix typo in api-extensions.md
- i18n: Update translations from weblate
- i18n: Update translation templates
- lxc: Properly handle --target in copy and move
- lxc/{import,export}: Deal with snap paths
- lxc/move: Support config and profile overrides
- lxd: Cleanup logging
- lxd: Drop manual GC calls
- lxd: Fix some format strings
- lxd: Improve error messages
- lxd/cluster: Broadcast profile changes to other cluster nodes
- lxd/cluster: Fix bad database query when updating storage pools
- lxd/cluster: Improve error on bad target
- lxd/cluster: Improve errors and docs for member-specific config keys
- lxd/cluster: Redirect container/snapshost publish to the relevant member
- lxd/cluster: Serialize reads to the cluster database
- lxd/containers: Assume device node for older NVIDIA GPUs
- lxd/containers: Don’t update MAAS for snapshots
- lxd/containers: Fix fd leak in metadata
- lxd/containers: Manually release the liblxc structs
- lxd/forkmount: Ignore ENOENT and EINVAL on umount2()
- lxd/maas: Allow starting with MAAS offline
- lxd/maas: Make errors more readable
- lxd/migrate: Remove debug residuals
- lxd/migration: Don’t pass -vP to a hidden rsync
- lxd/nsexec: Prevent fd leak
- lxd/nsexec: Simplify attach_userns()
- lxd/storage/lvm: Fix mixup between pool name and VG name
- lxd/storage/lvm: Rename default thinpool to LXDThinPool
- lxd/storage/zfs: Improve defaults
- lxc-to-lxd: Respect LXD_SOCKET environment variable
- lxd-p2c: Add rsync version check
- lxd-p2c: Allow overriding rsync args
- lxd-p2c: Better report rsync errors
- lxd-p2c: Delete containers on failure
- lxd-p2c: Handle target URL smarter
- lxd-p2c: Ignore missing arg errors
- lxd-p2c: Send rsync output to stderr
- shared: Add abstract unix socket helpers
- shared/eagain: Handle EINTR
- shared/idmap: Allow uidmaps to be parsed from alternate roots
- tests: Fix broken alternate TLS server cert in integration tests
- tests: Reduce ceph pg_num down to 1
Try it for yourself
This new LXD release is already available for you to try on our demo service.
Downloads
The release tarballs can be found on our download page.