Back to the news overview

LXD 2.9 release announcement

15th of February 2017

The changes in this release include

New features:

  • Introduce the LXD storage management API
    • Allows for multiple storage pools in LXD
    • Pools can be used to store containers and custom volumes
    • New /1.0/storage-pools API (see
    • New "lxc storage" set of commands
    • Updated "lxd init" to support creating storage pools
  • Allow setting network interface name with "lxc network attach"
  • New "lxc file delete" command and API
  • Ability to append to rather than overwrite a file through the API
  • New "ipv4.dhcp.expiry" and "ipv6.dhcp.expiry" config options for DHCP lease time


  • doc: Clarify PUT vs PATCH (Issue 2873)
  • doc: Note that LXD assumes full control over its ZFS dataset
  • doc: Update to match current DB schema
  • lxc: Don't include spaces in translated strings
  • lxc/list: Fix regression in json output (Issue 2887)
  • lxd/containers: Disable IPv6 on host side veth when bridged (issue 2845)
  • lxd/containers: Don't block resolution on non-existing paths
  • lxd/containers: Don't check the image fingerprint twice
  • lxd/containers: Fix concurrent read/write to s.conns in exec (Issue 2862)
  • lxd/containers: Fix error handling on FileRemove
  • lxd/containers: Set default values for USER, HOME and LANG (Issue 2830)
  • lxd/daemon: Mount a tmpfs under devlxd (Issue 2877)
  • lxd/daemon: Use a tmpfs for shmounts
  • lxd/db: Actually enable foreign keys per connection
  • lxd/db: Raise DB lock timeout to 30s, retry every 30ms (Issue 2826)
  • lxd/db: Rely on CASCADE (Issue 2844)
  • lxd/db: Remove some extra cleanup code
  • lxd/devlxd: Fix extraction of fd from UnixConn with go tip
  • lxd/images: Fix partial image fingerprint matches
  • lxd/images: Move imagesDownloading out of the daemon struct
  • lxd/init: Don't check the storage backend twice
  • lxd/migration: Clarify CRIU related errors
  • lxd/migration: Don't report migration success on failure
  • lxd/nsexec: Close *DIR stream returned by fdopendir()
  • lxd/nsexec: Free allocated memory
  • lxd/storage/btrfs: Fix recursive subvol deletion
  • lxd/storage/zfs: Simplify device tracking logic
  • Makefile: Use system libsqlite3 if available
  • network: Skip ip6tables clear on non-ipv6 hosts (Issue 2842)
  • shared: Forward user-agent and other headers on redirect (Issue 2805)
  • shared/api: Use consistent json and yaml field names
  • shared/simplestreams: Always prefer squashfs when available
  • shared/utils: Don't do chown on windows
  • shared/utils: FileCopy should also keep owner
  • shared/utils: FileCopy should keep the same mode
  • tests: Add golint for shared/api
  • tests: Avoid a zfs race
  • tests: Empty and validate network tables
  • tests: Fix typo
  • tests: Properly cleanup in template testsuite
  • tests: Switch to use gofmt instead of "go fmt"
  • tests: The monitor can exit on its own (ignore kill failure)

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.