web-dev-qa-db-ja.com

LXD管理のコンテナー(ZFS上)が別のコンテナーを削除すると消える

ストレージにZFSデータセットを使用して、Xenialサーバーにいくつかのコンテナーをセットアップしました(これが関連するかどうかはわかりません。後で説明します)。彼らはすべてうまくいきました。

それらの1つを再起動しようとしていますmail-server取得しました

error: Error calling 'lxd forkstart mail-server /var/lib/lxd/containers /var/log/lxd/mail-server/lxc.conf': err='exit status 1'
Try `lxc info --show-log mail-server` for more info

そして私が見るログを見て

        lxc 20160518112750.405 ERROR    lxc_conf - conf.c:mount_rootfs:807 - No such file or directory - failed to get real path for '/var/lib/lxd/containers/mail-server/rootfs'
        lxc 20160518112750.405 ERROR    lxc_conf - conf.c:setup_rootfs:1221 - failed to mount rootfs
        lxc 20160518112750.405 ERROR    lxc_conf - conf.c:do_rootfs_setup:3611 - failed to setup rootfs for 'mail-server'

私が確認したとき、これは驚くべきことではありません

$ Sudo ls -l /var/lib/lxd/containers/mail-server.zfs
total 0

ただし、別のコンテナーをチェックしても同じです。

$ Sudo ls -l /var/lib/lxd/containers/smb-server.zfs
total 0

butコンテナは現在実行中です:

$ lxc list
+---------------+---------+--------------------------------+------+------------+-----------+
|     NAME      |  STATE  |              IPV4              | IPV6 |    TYPE    | SNAPSHOTS |
+---------------+---------+--------------------------------+------+------------+-----------+
| smb-server    | RUNNING | 192.168.2.11 (eth0)            |      | PERSISTENT | 2         |
+---------------+---------+--------------------------------+------+------------+-----------+
| mail-server   | STOPPED |                                |      | PERSISTENT | 0         |
+---------------+---------+--------------------------------+------+------------+-----------+
| ub-test       | STOPPED |                                |      | PERSISTENT | 0         |
+---------------+---------+--------------------------------+------+------------+-----------+
| www-server    | STOPPED |                                |      | PERSISTENT | 1         |
+---------------+---------+--------------------------------+------+------------+-----------+

$ lxc exec smb-server -- /bin/bash
root@smb-server:~# ls -l /
total 88
drwxr-xr-x   2 root   root    173 May 17 10:10 bin
drwxr-xr-x   3 root   root      3 Apr 20 17:58 boot
drwxr-xr-x   9 root   root    480 May 17 21:40 dev
...

www-serverも実行されていて、lsには何も表示されていませんでした。停止すると、同じ理由で、再起動できなくなります。 rootfsがまだ見つかっている唯一のコンテナub-test

$ Sudo ls -l /var/lib/lxd/containers/ub-test.zfs
total 22
-rw-r--r--  1 lxd    messagebus 1425 Apr 20 18:45 metadata.yaml
drwxr-xr-x 22 100000     100000   22 Apr 22 11:38 rootfs
drwxr-xr-x  2 lxd    messagebus    7 Apr 20 18:45 templates

確かに私は思いのままに立ち止まることができます。


この変更の理由について私の唯一の推測は(私がそれを思い出すことができる唯一のことmightおそらくこの問題に影響を与える)は私が昨日別のコンテナーを削除したことです、ub-test2。私はまだその痕跡を見ることができます:

$ Sudo zfs list
NAME                                                                                            USED  AVAIL  REFER  MOUNTPOINT
tank                                                                                      2.80T  2.44T    96K  /tank
tank/lxd                                                                                  4.71G  2.44T    96K  none
tank/lxd/containers                                                                       3.34G  2.44T    96K  none
tank/lxd/containers/smb-server                                                         2.31G  2.44T  2.59G  /var/lib/lxd/containers/smb-server.zfs
tank/lxd/containers/mail-server                                                            279M  2.44T   746M  /var/lib/lxd/containers/mail-server.zfs
tank/lxd/containers/ub-test                                                                485M  2.44T   952M  /var/lib/lxd/containers/ub-test.zfs
tank/lxd/containers/www-server                                                             289M  2.44T   757M  /var/lib/lxd/containers/www-server.zfs
tank/lxd/deleted                                                                           702M  2.44T    96K  none
tank/lxd/deleted/images                                                                    702M  2.44T    96K  none
tank/lxd/deleted/images/f4c4c60a6b752a381288ae72a1689a9da00f8e03b732c8d1b8a8fcd1a8890800   702M  2.44T   702M  none
tank/lxd/images                                                                            704M  2.44T    96K  none
tank/lxd/images/d23ee1f4fd284aeaba6adeb67cccf7b871e96178d637fec96320aab7cc9634b1           704M  2.44T   704M  /var/lib/lxd/images/d23ee1f4fd284aeaba6adeb67cccf7b871e96178d637fec96320aab7cc9634b1.zfs

そこにも/var/lib/lxd/containers/mail-server.zfs(およびsmb-serverwww-server)は、ストレージ(約280M)を使用していますが、lsは何も返さないので、この問題は、ZFSマウントがうまくいかなかったことが原因であると思われます。私の最初の動きは、システム全体を再起動し、それによって問題が解決するかどうかを確認することでしたが、それによって、最後に実行されていたコンテナーも停止し、問題のトラブルシューティングが難しくなるのではないかと心配です。


参考までに、これが私のコンテナのストレージディレクトリです。

$ Sudo ls -l /var/lib/lxd/containers
total 37
lrwxrwxrwx 1 root   root      41 Apr 25 09:19 smb-server -> /var/lib/lxd/containers/deluge-ub1604.zfs
drwxr-xr-x 2 root   root    4096 Apr 25 09:19 smb-server.zfs
-rw-r--r-- 1 root   root   19011 May 18 11:46 lxc-monitord.log
lrwxrwxrwx 1 root   root      39 May 18 02:02 mail-server -> /var/lib/lxd/containers/mail-server.zfs
drwxr-xr-x 2 100000 100000  4096 May 18 02:02 mail-server.zfs
lrwxrwxrwx 1 root   root      35 Apr 22 11:38 ub-test -> /var/lib/lxd/containers/ub-test.zfs
drwxr-xr-x 4 100000 100000     5 Apr 22 11:37 ub-test.zfs
lrwxrwxrwx 1 root   root      38 May 17 09:31 www-server -> /var/lib/lxd/containers/smb-server.zfs
drwxr-xr-x 2 100000 100000  4096 May 17 09:31 www-server.zfs
1
Jonathan Y.

すべてのXenialコンテナサーバーで同じ問題が発生したことをお伝えします(5)。

問題にさらに情報を追加するために、mountを入力したときにマウントが表示されなくなりました。

zfs mount -aと入力すると、実行されていないコンテナのみがマウントされ、実行中のコンテナでは次のエラーが発生します。"filesystem 'lxd/containers/container_name' is already mounted"

したがって、問題を完全に修正するには、最初にコンテナを停止してからzfs mount -aを発行する必要があります。

結論として、これらのzfsマウントにタイムアウトが発生したか、何らかのcronジョブがそれらを何らかの方法で削除しましたが、これは間違いなくバグです。

うまくいけば、これはコンテナを損傷しませんでした...

3
Zike

何がうまくいかなかったのかまだ想像できませんが、Sudo zfs mount -aすべてのコンテナが実行されていない場合の問題を修正しました(前述のように、ZFSデータセットは存在しました(ストレージの使用から明らかなように、何らかの理由でアンマウントされました)。

停止中www-server、同じコマンドを使用してマウントポイントを修正してから、再起動することもできます。

N.B。このエラーの背後にある原因を今後数日で誰かが説明できれば、私は彼らの答えを受け入れます。それ以外の場合は、同じ問題が発生した他の人のためにこの回答を残します(ただし、コンテナーを実行しているだけで再起動できなくなったため、問題も修正されました-すべてのZFSデータセットが起動時にマウントされるため、 -したがって、この問題は重大ではありません)。

1
Jonathan Y.

これは、前日にいくつかのコンテナを削除した後でも、新しいXenialインストールで今日見ました。

/var/lib/lxd/containername.zfsマウントポイント(rm)を削除してからzfs mount -aを実行すると修正されました

マウントポイントがめちゃくちゃになることを心配せずにコンテナーを削除できないことはかなり困惑します!

0
Arni J