It’s correct, all storage pools are always mounted in /var/lib/lxd/storage-pools, that makes it so we can do kernel security policies, migration tools, backup tools and in general give user instructions that will work regardless of configuration.
When a source is configured, LXD will simply bind-mount that source onto the normal storage pool path and then continue operating as normal, that’s what those mount entries represent.
I recently updated from LXD 3.0.3 (deb) to 4.2 (snap) under Ubuntu 18.04 LTS. I have two storage pools with btrfs backend on two differnent lvm volumes.
Before I ran lxd.migrate, the storage-pools have been mounted under /var/lib/lxd/storage-pools like described above, after the migration everything works, but the pools are not visible as mounts on the host system.
What happend here? Are the pools and the root-filesystems not accessible from the host anymore?
No, the mounts of the filesystems are not visible at all on the host. The directory /var/snap/lxd/common/lxd/storage-pools/default for example exists but is empty.
hi Stephane ( @stgraber ) your response here leads me to extrapolate that if one uses an alternative location, the benefits you listed like policies, tools etc. cannot be leveraged. is there a recommended way to use a mount with more space if default storage pool location is running out of space?
You can bind-mount (through /etc/fstab) another path for your /var/snap/lxd which will then hold everything at that other location. Just don’t ever use symlinks and keep in mind that setting up such a bind-mount will take a reboot to make sure that all mount namespaces are correctly updated.