Weekly status for the week of the 21st of September to the 27th of September.
Introduction
LXD
There were two new features added to LXD in the past week.
Custom volume backups
Firstly you can now create custom volume backups and restore them. This is achieved by the introduction of two new CLI commands:
lxc storage volume export <pool> <volume> <backup file>
lxc storage volume import <pool> <backup file>
e.g.
lxc storage volume export default myvol /home/user/myvol_backup.tar.gz
lxc storage volume delete default myvol
lxc storage volume import default /home/user/myvol_backup.tar.gz
There are also option flags on the export
command to create an optimised backup format (if the the storage pool supports it, although like instance exports this means you can only import the backup into the same pool type) and to export only the volume (and not the snapshots if there are any).
Also on the back front, the storage location for backup files has been moved from $LXD_DIR/backups
to $LXD_DIR/backups/instances
for instance backups and $LXD_DIR/backups/custom
for custom volume backups, so as to avoid any conflicts when exporting a custom volume that has same name as an instance.
OVN network restrictions
The second feature added this past week was the addition of a new project option restricted.networks.uplinks
to enforce which parent networks can be used as the uplink for OVN networks. This feature requires the project to have the restricted
setting set to true
, and by default will prevent OVN networks from using all parent networks (those that are in the default project). The setting accepts a comma delimited list of allowed parent networks that can be used.
We have also added three user experience improvements when creating OVN networks inside projects. Firstly if you are in the non-default project then when running lxc network create
we now assume you mean to create an OVN network (i.e --type=ovn
) as this is the only type of network allowed in projects. Secondly when creating an OVN network, the uplink parent network is guessed based on the available networks in the default project or those specified in the projectâs restricted.networks.uplinks
setting. If only one network is available then it is automatically used to populate the network=<parent network>
setting. If there are multiple networks available you are still required to specify it as normal. Finally when creating an OVN network in a LXD cluster, as there are no per-node settings, you now do not need to create the pending network on each node first (using the --target
flag).
The sum of those changes means that inside projects one can now create a network simply using lxc network create <name>
and a private OVN network will be created with an uplink network selected based on the projectâs settings.
Also on the OVN networking front, we have added detection of the underlay networkâs MTU size and now select automatically set the overlay networkâs bridge.mtu
setting when creating a new network (if not specified). The MTU detection takes into account both the MTU of the network interface used by the underlay network as well as the IP protocol used by the geneve tunnels between each node (as IPv6 packets are larger than IPv4 packets and so the maximum supported MTU for overlay networks must be smaller if IPv6 is used for the geneve tunnels).
There have also been the usual selection of bug fixes and smaller improvements:
- Cephfs storage volume quotas were not being applied when specified on new volumes (rather than set after initial creation).
- An issue that meant the local mount path was not created correctly for ceph volumes used inside projects when being moved has been fixed.
- memory.swappiness wasnât being properly detected, this is now fixed on cgroupv1 systems.
- Project selection has been improved when using
lxc remote add
to automatically pick the correct project to use (when there is only one project available).
LXC
We have removed the deprecated settings of StandardOutput
and StandardError
from the lxc systemd units.
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
- Backup: Custom storage volumes export & import
- Instance: Moves backups from shared.VarPath(âbackupsâ) to shared.VarPath(âbackupsâ, âinstancesâ)
- Documentation tweaks
- Network: Improve error message when parent ânetworkâ option not specified for OVN networks
- Network: Donât require --target arg when adding networks in a cluster that donât require per-node config
- lxd: Ensure all use of db.InstanceFilter defines instance type
- api: Add projects_networks
- doc/storage: no need to escape underscore in bash examples
- seccomp: improve bpf support detection
- Network: Adds optimal MTU detection for bridge.mtu setting based on OVNâs underlay MTU and address family
- Network: Enforce RBAC permission manage-networks for managing networks
- doc/projects: Sort config keys
- network: Only add pseudo pending node records when in cluster in networksPost
- Project: Adds features.networks to default project on fresh DB create
- lxd/storage/cephfs: Fix quota on new volumes
- lxc/remote: Add project selection logic
- lxd/networks: Allow network deletion in projects
- Network: Pick default network type based on project
- Network: Adds project restricted.networks.uplinks setting and auto sets OVN network when only 1 uplink available
- lxd/instances: Fix ceph cluster target move
- lxd/cgroup: Fix memory.swappiness detection
- lxd/db: Adds boolean support to doDbQueryScan
- Backup: Splitting up backup package into smaller files and common struct
- Backup: Fixes backup dir creation when using custom daemon storage volumes
- Improve RBAC handling
- Backup: Change Type field type in index.yaml to own backup.Type
LXC
LXCFS
- Nothing to report this week
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
- Cherry-picked a large amount of LXD bugfixes