Cluster beetwen LXD 2.0.11 and 3.0.0

Hi,
I’ve an existing LXD v2.0.11 node. (Ubuntu 16.04)
I’ve just created a new LXD v3.0.0 node on a new server (Ubuntu 18.04)

I would like to join the new server in the existing one node cluster but I’m facing this error:

Error: Failed to retrieve storage pools from the cluster: The server is missing the required "storage" API extension

Is a cluster between a node using v2.0.X and 3.0.0 supposed to work ? I didn’t found any info in the docs.

Thanks :wink:

LXD 2.0.11 does not support clustering.
In fact the failure you get is about the missing ‘lxc storage’ subcommand (and API).

You can easily upgrade to the snap of LXD 3.0,
https://blog.simos.info/how-to-try-lxd-3-0-beta/
and the clustering should work. Note that the post is about the beta version. Now 3.0 is stable, so choose stable 3.0.

All versions in a cluster must match, see also:

And, yes, they must be >= 3.0

Ok, thanks for your replies.
I’ve tried to moved a container from 2.0.11 to 3.0.0 using the lxc move command. It works.
But when I tried to move it back (from 3.0 to 2.0.11), I’m stuck with this error:
Invalid device configuration key for disk: pool

If I check the container config I see that, effectively, there is an additional pool parameter for disk devices in v3.0.0.

devices:
  root:
    path: /
    pool: lxd
    size: 5GB
    type: disk

But as the pool is mandatory in v3.0.0, I can’t remove it. So v2.0.11 do not accept the container.

To me, it sounds like a bug… but is there any trick to move a CT from v3 to v2 ?

A trick would be to move the pool entry to the container’s profile rather than directly on the container. So the 2.0 LXD would have a default profile without the pool entry and the 3.0 LXD would have a default profile with the pool entry.

Containers should then be able to move back and forth by just using that profile.

Thanks for the trick. It works !
I can’t specify the size, but it’s not really a problem as it just to migrate containers to the new server.