Because a colleague of mine noticed that the containers on one of the build machines didn’t work any longer, I investigated.
Oddly enough I noticed how the lxd
package had disappeared. I have no recollection of having done that myself.
Either way, so I checked regarding the PPA and saw that I’m supposed to install the snap package. And so I did snap install lxd
and all seemed fine at first.
Until, of course, I found there were no containers. So I found one of the threads here in the forum and bind-mounted the old location to the new one and LXD seemed happy with that (lxc list
returned the expected list).
I couldn’t run lxd.migrate
, because if complained about the sockets being unavailable (my guess here was that normally lxd.migrate
is run when the .deb
package is still installed and two lxd
daemons are running):
=> Connecting to source server
error: Unable to connect to the source LXD: Get http://unix.socket/1.0: dial unix /var/lib/lxd/unix.socket: connect: no such file or directory
But bind-mounting seems to do the job, so it’s all fine, I reckoned.
Except it wasn’t fine. For starters I can no longer start the containers that are bind-mounted into the new location. Autostart also doesn’t work, but that seems only natural given that the startup of containers fails in general.
$ lxc start sheep01
error: Failed to run: /snap/lxd/current/bin/lxd forkstart sheep01 /var/snap/lxd/common/lxd/containers /var/snap/lxd/common/lxd/logs/sheep01/lxc.conf:
Try `lxc info --show-log sheep01` for more info
so looking at the output of the suggested lxc info --show-log sheep01
I got:
$ lxc info --show-log sheep01
Name: sheep01
Remote: unix://
Architecture: x86_64
Created: 2017/10/31 14:02 UTC
Status: Stopped
Type: persistent
Profiles: default
Log:
lxc sheep01 20180815095750.939 WARN lxc_conf - conf.c:lxc_map_ids:2862 - newuidmap binary is missing
lxc sheep01 20180815095750.939 WARN lxc_conf - conf.c:lxc_map_ids:2868 - newgidmap binary is missing
lxc sheep01 20180815095750.988 WARN lxc_conf - conf.c:lxc_map_ids:2862 - newuidmap binary is missing
lxc sheep01 20180815095750.988 WARN lxc_conf - conf.c:lxc_map_ids:2868 - newgidmap binary is missing
lxc sheep01 20180815095751.257 ERROR dir - storage/dir.c:dir_mount:189 - No such file or directory - Failed to mount "/var/snap/lxd/common/lxd/containers/sheep01/rootfs" on "/var/snap/lxd/common/lxc/"
lxc sheep01 20180815095751.258 ERROR lxc_conf - conf.c:lxc_setup_rootfs:1370 - Failed to mount rootfs "/var/snap/lxd/common/lxd/containers/sheep01/rootfs" onto "/var/snap/lxd/common/lxc/" with options "(null)"
lxc sheep01 20180815095751.258 ERROR lxc_conf - conf.c:do_rootfs_setup:3318 - Failed to setup rootfs for
lxc sheep01 20180815095751.258 ERROR lxc_conf - conf.c:lxc_setup:3382 - Failed to setup rootfs
lxc sheep01 20180815095751.258 ERROR lxc_start - start.c:do_start:1219 - Failed to setup container "sheep01"
lxc sheep01 20180815095751.259 ERROR lxc_sync - sync.c:__sync_wait:57 - An error occurred in another process (expected sequence number 5)
lxc sheep01 20180815095751.673 ERROR lxc_start - start.c:__lxc_start:1887 - Failed to spawn container "sheep01"
lxc sheep01 20180815095751.673 ERROR lxc_container - lxccontainer.c:wait_on_daemonized_start:834 - Received container state "ABORTING" instead of "RUNNING"
lxc sheep01 20180815095751.682 WARN lxc_conf - conf.c:lxc_map_ids:2862 - newuidmap binary is missing
lxc sheep01 20180815095751.683 WARN lxc_conf - conf.c:lxc_map_ids:2868 - newgidmap binary is missing
lxc 20180815095751.711 WARN lxc_commands - commands.c:lxc_cmd_rsp_recv:130 - Connection reset by peer - Failed to receive response for command "get_state"
With no idea what to make of all of that.
Since lxd.migrate
isn’t merely a script I am unsure what other it’s doing than shoveling data from /var/lib/lxd
into /var/snap/lxd/common/lxd
.
What exactly am I doing wrong other than the fact that somehow magically the old (.deb
-based) package disappeared and left the LXD installation in a state that prevents me from using lxd.migrate
?
# snap list && lsb_release -a
Name Version Rev Tracking Publisher Notes
core 16-2.34.3 5145 stable canonical core
lxd 3.3 8011 stable canonical -
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
By bind-mounting the lxd
folder the permissions on that folder become:
drwxr-xr-x 15 lxd nogroup 4096 2018-08-15 08:41 lxd