paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

ubuntuのLXDが勝手にsnap版LXDになって起動できなくなった

1日の終わりに以前コンテナにインストールしたrogue cloneを数回プレイしているのですが、
昨日プレイしようとしたらコンテナとの接続が切れていて、再接続もできませんでした。

ログを見る限りなぜかaptでインストールしたLXDがsnap版LXDに切り替わっており、
socketのエラーでコンテナに接続できなくなったというものです。

家の環境だし重要なデータは入っていなかったので結局snap版を再インストールしたのですが、ちょっと事象をメモしておきます。

環境

ubuntu20.04LTSのgnomeデスクトップ環境です。

自動アップデートはONにしてます。

masashi@PC-ubuntu:~$ lsb_release -a ; uname -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal
Linux PC-ubuntu 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

事象

rogue用に常時コンテナに入っているターミナルがあるのですが、昨日切れていました。
まあいいかと思って再接続しようしたら以下のメッセージ。

masashi@PC-ubuntu:~$ sudo lxd init
Error: Failed to connect to local LXD: Get "http://unix.socket/1.0": dial unix /var/snap/lxd/common/lxd/unix.socket: connect: no such file or directory

syslog

何かヒントないかと思ったらsyslogファイルにこんなメッセージが。

snap版LXDが勝手に起動してapt版LXDを止めた?

Feb  2 00:48:15 PC-ubuntu systemd[1]: Mounting Mount unit for lxd, revision 19188...
Feb  2 00:48:15 PC-ubuntu systemd[1]: Mounted Mount unit for lxd, revision 19188.
Feb  2 00:48:18 PC-ubuntu systemd[1]: snap.lxd.daemon.unix.socket: Succeeded.
Feb  2 00:48:18 PC-ubuntu systemd[1]: Closed Socket unix for snap application lxd.daemon.
Feb  2 00:48:18 PC-ubuntu systemd[1]: Stopping Service for snap application lxd.daemon...
Feb  2 00:48:30 PC-ubuntu lxd.daemon[630563]: => Stop reason is: snap refresh
Feb  2 00:48:30 PC-ubuntu lxd.daemon[630563]: => Stopping LXD
Feb  2 00:53:51 PC-ubuntu lxd.daemon[630563]: ==> Forcefully stopping LXD after 5 minutes wait
Feb  2 00:53:51 PC-ubuntu lxd.daemon[630563]: ==> Stopped LXD
Feb  2 00:53:51 PC-ubuntu systemd[1]: snap.lxd.daemon.service: Succeeded.
Feb  2 00:53:51 PC-ubuntu systemd[1]: Stopped Service for snap application lxd.daemon.
Feb  2 00:54:18 PC-ubuntu systemd[1]: Listening on Socket unix for snap application lxd.daemon.
Feb  2 00:54:18 PC-ubuntu systemd[1]: Starting Service for snap application lxd.activate...
Feb  2 00:54:19 PC-ubuntu lxd.activate[631871]: => Starting LXD activation
Feb  2 00:54:19 PC-ubuntu lxd.activate[631871]: ==> Loading snap configuration
Feb  2 00:54:19 PC-ubuntu lxd.activate[631871]: ==> Checking for socket activation support
Feb  2 00:54:20 PC-ubuntu lxd.activate[631871]: ==> Setting LXD socket ownership
Feb  2 00:54:20 PC-ubuntu lxd.activate[631871]: ==> Checking if LXD needs to be activated
Feb  2 00:54:21 PC-ubuntu systemd[1]: Started Service for snap application lxd.daemon.

しかも何かのセッティングを始めています。
一体なにをやってるんだ…

Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: => Preparing the system (19188)
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Loading snap configuration
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Setting up mntns symlink (mnt:[4026532491])
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Setting up kmod wrapper
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Preparing /boot
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Preparing a clean copy of /run
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Preparing /run/bin
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Preparing a clean copy of /etc
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Preparing a clean copy of /usr/share/misc
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Setting up ceph configuration
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Setting up LVM configuration
Feb  2 00:54:59 PC-ubuntu lxd.daemon[632871]: ==> Rotating logs
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: ==> Setting up ZFS (0.8)
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: ==> Escaping the systemd cgroups
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: ====> Detected cgroup V1
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: ==> Escaping the systemd process resource limits
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: ==> Disabling shiftfs on this kernel (auto)
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: Closed liblxcfs.so
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: Running destructor lxcfs_exit
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: Running constructor lxcfs_init to reload liblxcfs
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: mount namespace: 5
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: hierarchies:
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   0: fd:   6:
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   1: fd:   7: name=systemd
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   2: fd:   8: cpu,cpuacct
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   3: fd:   9: freezer
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   4: fd:  10: net_cls,net_prio
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   5: fd:  11: devices
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   6: fd:  12: memory
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   7: fd:  13: pids
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   8: fd:  14: cpuset
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:   9: fd:  15: perf_event
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:  10: fd:  16: rdma
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:  11: fd:  17: blkio
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]:  12: fd:  19: hugetlb
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: Kernel supports pidfds
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: Kernel does not support swap accounting
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: api_extensions:
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - cgroups
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - sys_cpu_online
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_cpuinfo
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_diskstats
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_loadavg
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_meminfo
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_stat
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_swaps
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - proc_uptime
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - shared_pidns
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - cpuview_daemon
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - loadavg_daemon
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: - pidfds
Feb  2 00:55:00 PC-ubuntu lxd.daemon[1846]: Reloaded LXCFS
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: => Re-using existing LXCFS
Feb  2 00:55:00 PC-ubuntu lxd.daemon[632871]: => Starting LXD

IPアドレス

コンテナブリッジのエラーも出ていたのでIPアドレスも見てみました。

Feb  2 00:54:47 PC-ubuntu lxd.daemon[632370]: Error: Failed to load network "lxdbr0": Duplicate config row found for key "dns.mode" for network ID 1

IPを確認すると下記のコンテナブリッジインターフェースが無くなっていました。
初期化されてしまった?

3: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fe:03:28:f7:83:09 brd ff:ff:ff:ff:ff:ff
    inet 10.94.47.1/24 scope global lxdbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::9093:88ff:fed2:ce29/64 scope link 
       valid_lft forever preferred_lft forever

これはlxd initで作られるものなので、この時点で復旧は不可能と思い再インストールの決意を固めました。

コンテナのパス

起動エラーとは関係ないかもしれませんが、コンテナのパスも変わっていました。
これも勝手にマイグレーションされたということになります。

ディレクトリ名の通りsnapが絡んでいますね。

  • 以前の
/var/lib/lxd/containers/
  • 今回の
/var/snap/lxd/common/lxd/containers

エラーは見切れずここまで

大したエラーログも残せずすみませんが、結局LXDの復旧優先で全消しで再インストールしました。
なので解析はここまでです。

勝手にsnap版になったので再インストール時はsnapでインストールしました。
こっちの方を押してるんですかね?

自動アップデートを有効にしていたからですが、Linuxでもこんなことあるんですね。
同じパッケージが別々のマネージャで存在するときは気を付けないといけませんね。

使っていないコンテナもあったので、取り急ぎ再構築はdebianとfirefly iiiを行います。

firefly iiiのデータが消えたのはちょっと痛いですが、消す前にコンテナのディレクトリをコピーしておいたので復旧できたらまた書きます。

debianrogueもいいスコアが消えてしまったのは残念です。
あ、あとDokuwikiのデータも消えちゃいましたね。
勉強ログがなくなってしまった。
でも身についてるからそんなに問題ないのでこれも作り直しかな。

オペミスやハードウェア障害ではないのにデータ消失は悲しいですね。