Back to the news overview

LXD 2.21 has been released

20th of December 2017

The changes in this release include


  • The lxc start/stop/restart/pause commands now accept a new --all flag.
  • Introduced a new infiniband device type which supports physical
    passthrough of Infiniband devices as well as SR-IOV allocated cards.
  • Added a new security.devlxd configuration key to control the
    presence of /dev/lxd inside the container.
  • Added support for incremental memory copy with container live-migration.
    This is controlled by a set of new migration.incremental.memory
    configuration keys.
  • A new boot.stop.priority configuration key can be used to control
    container shutdown order when LXD is brought down.
  • LXD users that use MAAS to manage their networks can now have LXD
    directly drive MAAS, recording all containers in MAAS and setting up
    static allocations in MAAS managed subnets.
    This is controlled with the maas.api.url and maas.api.key
    daemon keys as well as the maas.subnet.ipv4 and maas.subnet.ipv6
    network interface configuration keys.


  • client: URL escape all user input (Issue #4077)
  • doc: Add example to create an storage pool from existing LVM thinpool.
  • doc: Fix markdown escaping for prlimits
  • doc: Update LVM documentation to cover scalability issues
  • extra: Fix some profile autocompletions
  • i18n: Update translations from weblate
  • lxc: Detect first-run based on conf file not dir (Issue #4112)
  • lxc/exec: Update help to cover shell behavior
  • lxc/shell: Switch to using su -l (Issue #4036)
  • lxd-benchmark: Change the default count of containers from 100 to 1
  • lxd/certificates: Add missing name value (Issue #4080)
  • lxd/console: Adapt to new liblxc changes
  • lxd/containers: Actually return an error
  • lxd/containers: Add new disk-{char,block} path format
  • lxd/containers: Add new unix-{char,block} path format
  • lxd/containers: Escape paths fstab style (Issue #4064)
  • lxd/containers: Fix insertNetworkDevice()
  • lxd/containers: Fix race condition in shutdown (Issue #4102)
  • lxd/containers: Fix typo in prlimit error
  • lxd/containers: Log auto-start errors (Issue #4054)
  • lxd/containers: Only init the config if needed
  • lxd/containers: Skip non-existing Nvidia GPU devices (Issue #4044)
  • lxd/containers: Skip sockets in tarballs
  • lxd/daemon: Fix unsetting https address
  • lxd/daemon: Properly cache the storage information (Issue #4025)
  • lxd/dameon: Add LXD_EXEC_PATH to override execPath
  • lxd/devlxd: Cleanup in preparation for events
  • lxd/devlxd: Properly lock the internal struct
  • lxd/migration: Add handler for CRIU feature checking
  • lxd/migration: Default to pre-copy migration if CRIU supports it
  • lxd/migration: Move pre-dump check to its own function
  • lxd/migration: Remove obsolete TODO comment
  • lxd/networks: Extend allowed character set for interfaces (Issue #4042)
  • lxd/patches: Skip containers that don't have a devices dir
  • lxd/patches: Update to new device name scheme
  • lxd/storage: Use HostPath for dir/btrfs
  • lxd/storage/zfs: Fix argument order of zfs get commands
  • lxd/storage/zfs: Fix storage pool import (Issue #4056)
  • lxd/storage/zfs: Make sure to allow devices, setuid and exec (Issue #4084)
  • Makefile: Better detect sqlite3.h (Issue #4078)
  • shared/idmap: Fix handling of hardlinks
  • shared/util: Add EscapePathFstab() (Issue #4064)
  • shared/utils: Deal with symlinks (Issue #4097)
  • tests: Adapt to changes in console API behavior
  • tests: Deal with missing ttyS0/ttyS1 (on s390x)
  • tests: Skip console tests on lower liblxc versions
  • travis: Limit to just Go 1.9

Try it for yourself

This new LXD release is already available for you to try on our demo service.


The release tarballs can be found on our download page.