Я настроил LXD, используя существующий пул ZFS. Затем я создал контейнер, который работает правильно. LXD знает о хранилище ZFS, потому что создал там два каталога: контейнеры и образы. Кроме того, "lxc info" отображает имя пула ZFS.
Однако каталоги в пуле ZFS пусты. Фактические файлы были сохранены в /var/lib/lxd.
Что я здесь упускаю?
решение1
Вот как это выглядит для контейнеров:
root@nsn7:~# zfs list -r nsn7/lxd/containers
NAME USED AVAIL REFER MOUNTPOINT
nsn7/lxd/containers 2,95G 259G 19K /nsn7/lxd/containers
nsn7/lxd/containers/lds-xenial 2,68G 259G 3,16G /var/lib/lxd/containers/lds-xenial.zfs
nsn7/lxd/containers/maas-trusty 214M 259G 214M /var/lib/lxd/containers/maas-trusty.zfs
nsn7/lxd/containers/maas-trusty-virbr1 57,0M 259G 570M /var/lib/lxd/containers/maas-trusty-virbr1.zfs
Обратите внимание, где смонтирован каждый набор данных zfs, выше и в этом выводе, запрашивая конкретно параметры, связанные с монтированием:
root@nsn7:~# zfs get all nsn7/lxd/containers/maas-trusty|grep mount
nsn7/lxd/containers/maas-trusty mounted yes -
nsn7/lxd/containers/maas-trusty mountpoint /var/lib/lxd/containers/maas-trusty.zfs local
nsn7/lxd/containers/maas-trusty canmount on default
решение2
Я сам это видел в начале, когда позволил LXD настроить раздел ZFS для меня, а затем вернулся к нему, чтобы задать точку монтирования, но, как вы говорите, он был пуст.
У вас уже есть ответ, предоставленный Андреасом (и вы должны принять его как таковой), но просто для ясности, если это не очевидно:
LXD монтирует отдельные пути в то же место, что и при использовании DIR, /var/lib/lxd/(containers/images)
а установка точки монтирования в корне настроенного вами пула ZFS не даст вам видимости этих папок, как можно было бы ожидать в «традиционной» файловой системе.
При первом взгляде на это не совсем понятно, но работает так, как задумано.