Current recommended LXD version for 16.04

Hi All,

I have a large Ubuntu 12.04/LXC based production environment which I finally can migrate to something more recent and more importantly, supported.

I am leaning heavily towards 16.04, as I feel it is mature and mostly has been through almost all infantile issues, unlike 18.04. Opinions on this are welcome too.

My issue is this. 16.04 comes with LXD 2.0.11. I do not think I specifically need any specific feature from 3.0.x right now. On the other hand, I would like to keep my options open for clustering for example, but not at the expense of stability.

What would you recommend as a good compromise between stability and features at this point in time?

I think that Ubuntu 16.04 is a fine choice for now. Support is until 2016+5=2021.

In Ubuntu 18.04, LXD is currently at version 3.0.1 and soonish it will get 3.0.2. Higher revision numbers are better because more bugs are found and being fixed.

In any case, I suppose you will perform a test migration with lxc-to-lxd to verify that all containers can be converted. If you get any errors, report them so that they get fixed.

After the migration to LXD 2.0.11, you can choose to migrate to LXD 3.0.x.

1 Like

Thanks for your response Simos.

Actually, I am not looking into migrating current LXCs, but rather rebuild them, which is why I feel a bit free to start with the version I want.

If I understand correctly, you are suggesting 3.0.x?

If you are rebuilding, the go for Ubuntu 18.04.1 with LXD 3.0.2. Currently, 3.0.2 is in the bionic-backports repository and very shortly it will appear as an update in bionic-updates.
3.0.2 fixes some bug fixes over 3.0.1.
In addition, there are some useful features over LXD 2.0.

1 Like

Thanks again Simos,

To be honest I am a little apprehensive going for 18.04 at this time. I think it requires quite the learning curve with things like netplan. Would you say LXD 3.0.x on 16.04 from snap is considered stable?

The snap package has channels with the 2.0.x line, the 3.0.x stable line and the 3.5 (soon 3.6) stable line. All are supported, just the 3.5/3.6 requires to follow the updates every couple of months or so.

If you are more familiar with 16.04, you can go for the snap package with the 3.0.x stable line.
Some users have reported that the snap package, which does auto updates when such updates are available, got issues during such an update. Normally the updates are transparent and do not even restart the containers. I did not get any issues though.

1 Like

Yeah, good point about the automatic updating. That’s one more thing making me nervous in production…

Is there any backports package for 3.0.x in 16.04? Should I build from source otherwise?

Here is the output of snap info lxd. Shows in a single page the current full story of the snap package lxd.

$ snap info lxd
name:      lxd
summary:   System container manager and API
publisher: Canonical✓
contact:   https://github.com/lxc/lxd/issues
license:   unset
description: |
  LXD is a container manager for system containers.
  
  It offers a REST API to remotely manage containers over the network, using
  an image based workflow and with support for live migration.
  
  Images are available for all Ubuntu releases and architectures as well as
  for a wide number of other Linux distributions.
  
  LXD containers are lightweight, secure by default and a great alternative
  to virtual machines.
commands:
  - lxd.benchmark
  - lxd.buginfo
  - lxd.check-kernel
  - lxd.lxc
  - lxd
  - lxd.migrate
services:
  lxd.activate: oneshot, enabled, inactive
  lxd.daemon:   simple, enabled, active
snap-id:      J60k4JY0HppjwOjW8dZdYc8obXKxujRu
tracking:     candidate
refresh-date: 2 days ago, at 11:23 GMT+1
channels:                                
  stable:        3.5         (9010) 69MB -
  candidate:     3.6         (9129) 69MB -
  beta:          ↑                       
  edge:          git-452e483 (9194) 69MB -
  3.0/stable:    3.0.2       (8715) 65MB -
  3.0/candidate: 3.0.2       (9043) 68MB -
  3.0/beta:      ↑                       
  3.0/edge:      git-4be2099 (9199) 68MB -
  2.0/stable:    2.0.11      (8023) 28MB -
  2.0/candidate: 2.0.11      (8023) 28MB -
  2.0/beta:      ↑                       
  2.0/edge:      git-f3e2b11 (9148) 26MB -
installed:       3.6         (9129) 69MB -

Notice the channels. There is a stable channel with LXD 3.5, and a candidate channel with LXD 3.6.
Also, there is 3.0/stable with LXD 3.0.2 (as in Ubuntu 18.04) and 2.0/stable with LXD 2.0.11 (as in Ubuntu 16.04).
The last line says what you have installed, and I have installed LXD 3.6 (currently from candidate) because I am hardcore.

If you have Ubuntu 16.04, you get by default LXD 2.0.x (currently LXD 2.0.11). However, you can also enable the xenial-backports repository which will give you access to LXD 3.0.x (currently LXD 3.0.1) from Ubuntu 18.04. Ideally, I would suggest to wait a tiny bit more until LXD 3.0.2 is released and use that version. LXD 3.0.2 is currently in bionic-proposed and should soon make it to both bionic-updates and xenial-backports.

When enabling a backports repository, you would need to study carefully https://help.ubuntu.com/community/UbuntuBackports The reason being that you would only want to grab LXD (and dependencies) from backports but probably not anything else. If you are still unsure after your read the UbuntuBackports page, ask here for more.

1 Like

That was very thorough! Thanks again Simos. Ευχαριστώ!

1 Like