2024-04-16
ZFSとのバージョン不整合で動作しなくなったLXDのバージョンを戻した
Ubuntuサーバをアップデート後に再起動したところ、LXDが動作しなくなった。 原因はZFSとのバージョン不整合。 LXDを旧バージョンに戻したところ動作するようになった。
環境:
エラーが発生
lxcコマンドを実行するとエラーが発生する。
$ lxc list Error: LXD unix socket not accessible: Get "http://unix.socket/1.0": EOF
journalctl -u snap.lxd.daemon
でログを確認。
Apr 13 02:06:04 kiliman lxd.daemon[2137448]: => Preparing the system (28155) Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Loading snap configuration Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Setting up mntns symlink (mnt:[4026532608]) Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Setting up kmod wrapper Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Preparing /boot Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Preparing a clean copy of /run Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Preparing /run/bin Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Preparing a clean copy of /etc Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Preparing a clean copy of /usr/share/misc Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Setting up ceph configuration Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Setting up LVM configuration Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Setting up OVN configuration Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Rotating logs Apr 13 02:06:04 kiliman lxd.daemon[2137448]: ==> Unsupported ZFS version (0.8) (中略) Apr 13 02:06:04 server1 lxd.daemon[2137448]: => Re-using existing LXCFS Apr 13 02:06:04 server1 lxd.daemon[2137448]: ==> Reloading LXCFS Apr 13 02:06:04 server1 lxd.daemon[2137448]: => Starting LXD Apr 13 02:06:04 server1 lxd.daemon[2137608]: time="2024-04-13T02:06:04+09:00" level=warning msg=" - Couldn't find the CGroup blkio.weight, disk priority will be ignored" Apr 13 02:06:04 server1 lxd.daemon[2137608]: time="2024-04-13T02:06:04+09:00" level=warning msg=" - Couldn't find the CGroup memory swap limits will be ignored" Apr 13 02:06:06 server1 lxd.daemon[2137608]: time="2024-04-13T02:06:06+09:00" level=error msg="Failed loading storage pool" err="Required tool 'zpool' is missing" pool=default Apr 13 02:06:06 server1 lxd.daemon[2137608]: time="2024-04-13T02:06:06+09:00" level=error msg="Failed to start the daemon" err="Failed applying patch \"storage_move_custom_iso_block_volumes_v2\": Failed loading pool \"default\": Required tool 'zpool' is missing" Apr 13 02:06:06 server1 lxd.daemon[2137608]: Error: Failed applying patch "storage_move_custom_iso_block_volumes_v2": Failed loading pool "default": Required tool 'zpool' is missing Apr 13 02:06:06 server1 lxd.daemon[2137448]: Killed Apr 13 02:06:06 server1 lxd.daemon[2137448]: => LXD failed to start
"Unsupported ZFS version (0.8)" と表示されている。 LXD 5.21.1 LTS has been released - LXD / News - Ubuntu Community Hub のコメントに同様のメッセージ報告があるため、LXDとZFSバージョンのミスマッチだと判断。 Notes on upgrading when on Ubuntu 18.04 and 20.04 にいくつかの選択肢が書かれているが、現在の環境ではZFSのバージョンは上がらなそうなのでLXDのバージョンを戻すことにした。
LXDのバージョンを戻した
LXDはsnapでインストールしていたので、前バージョンを確認。
$ snap list lxd --all Name Version Rev Tracking Publisher Notes lxd 5.20-f3dd836 27049 latest/stable canonical✓ disabled lxd 5.21.1-43998c6 28155 latest/stable canonical✓ -
現在は28155を使っているが27049が残っていたため、hanhan's blog - snap で古いバージョンをインストールする を参考に27049に戻した。
$ sudo snap revert lxd --revision 27049 2024-04-16T13:17:18+09:00 INFO Waiting for "snap.lxd.daemon.service" to stop. lxd reverted to 5.20-f3dd836
まだ動かない
再起動したところ以下のエラーが出てLXDが起動していなかった。
Apr 16 13:36:45 server1 lxd.daemon[42415]: time="2024-04-16T13:36:45+09:00" level=error msg="Failed to start the daemon" err="Failed to initialize global database: failed to ensure schema: schema version '73' is more recent than expected '69'" Apr 16 13:36:45 server1 lxd.daemon[42415]: Error: Failed to initialize global database: failed to ensure schema: schema version '73' is more recent than expected '69'
原因はデータベースのスキーマバージョンが上がってしまっていること。
データベースを元に戻した
LXDデータベースについて - LXD ドキュメント によるとsnapで入れたLXDの場合、データベースの場所は /var/snap/lxd/common/lxd/database/
とのこと。
データベースを確認した。
/var/snap/lxd/common/lxd/database# ls global global.bak local.db local.db.bak
global.bakをglobalに変更した。 local.db.bakは数年前のものだったので戻さなかった。
# cp -a global global_new # cp -a global.bak global
動作するようになった
再起動したところ動作するようになった。
Apr 16 13:48:41 server1 lxd.daemon[7916]: => Starting LXD Apr 16 13:48:41 server1 lxd.daemon[8077]: time="2024-04-16T13:48:41+09:00" level=warning msg=" - Couldn't find the CGroup blkio.weight, disk priority will be ignored" Apr 16 13:48:41 server1 lxd.daemon[8077]: time="2024-04-16T13:48:41+09:00" level=warning msg=" - Couldn't find the CGroup memory swap accounting, swap limits will be ignored" Apr 16 13:48:48 server1 lxd.daemon[8077]: time="2024-04-16T13:48:48+09:00" level=warning msg="Failed to initialize fanotify, falling back on inotify" err="Failed to initialize fanotify: invalid argument" Apr 16 13:48:51 server1 lxd.daemon[8077]: time="2024-04-16T13:48:51+09:00" level=error msg="Failed to update the image" err="Failed getting remote image info: Failed getting image: The requested image couldn't be found for fingerprint \"debian/10\"" fingerprint=156bab33e052ede274a16cf936be345cdf61c537073b90c83c4c3e869e1244d0 Apr 16 13:48:52 server1 lxd.daemon[7916]: => LXD is ready
ゲストイメージのfingerprintが違うというエラーが出ている。 ゲストを構築する際に使用したイメージのfingerprintが変わってしまっているらしい。
$ lxc image list +-------+--------------+--------+--------------------------------------+--------------+-----------+----------+-------------------------------+ | ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE | UPLOAD DATE | +-------+--------------+--------+--------------------------------------+--------------+-----------+----------+-------------------------------+ | | 156bab33e052 | no | Debian buster amd64 (20240131_05:24) | x86_64 | CONTAINER | 75.74MiB | Jan 31, 2024 at 10:24am (UTC) | +-------+--------------+--------+--------------------------------------+--------------+-----------+----------+-------------------------------+
実害はなさそうなのでこちらは無視することにした。
LXDが勝手にバージョンアップしないようにした
snapで現在のバージョンを保持するように指定した。
$ sudo snap refresh --hold=forever lxd General refreshes of "lxd" held indefinitely