Я установил несколько контейнеров на сервере Xenial, используя набор данных ZFS для хранения (я не уверен, что это важно, мы доберемся до этого).
Попытка перезапустить один из них, 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
, но этот контейнер в настоящее время running:
$ 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, и как только я его остановил, я больше не могу запускать его снова по той же причине. Единственный контейнер, который я еще могу найти, 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
Я действительно могу остановиться и начать по желанию.
My только догадываться о причине этого изменения (единственное, что я могу вспомнить, что может повлиять на эту проблему) заключается в том, что я удалил еще один контейнер вчера 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-server, www-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
Я все еще не могу представить, что пошло не так, но запуск sudo zfs mount -a исправил проблему (как упоминалось выше, наборы данных ZFS действительно существовали - как видно из их использования хранилища - они были просто отключены по какой-либо причине) для каждого контейнера не работает.
Остановка www-server, я мог бы также установить свою точку монтирования с той же командой, а затем снова запустить ее.
NB Если кто-нибудь сможет объяснить причину этой ошибки в ближайшие пару дней, я приму их ответ. В противном случае я оставлю этот ответ для всех, кто сталкивается с такой же проблемой (хотя запуск всех контейнеров остановил меня от перезагрузки, что также устранило проблему), поскольку все наборы данных ZFS монтируются при запуске - так как этот вопрос далеко не критический).
Увидели это сегодня на новой установке Xenial, также после удаления некоторых контейнеров за день до этого.
Удаление точки монтирования /var/lib/lxd/containername.zfs (rm), а затем запуск zfs mount -a исправил ее [!d1 ]
Довольно смущающе, что вы не можете удалить контейнер, не беспокоясь о том, что точки монтирования закручиваются!