Where is a snap stored and how can I change that?

To move the snap storage to a separate disc you would set a mount point to your alternative location for either /var/lib/snapd/snaps or one of the parent components of that chain, e.g. /var/lib or /var. The compressed file-system of each snap is stored in that folder in a squashfs file, one for each snap.

To move the user-level storage to a separate disc, which is useful if a snap downloads a large data chunk like steam would do, then you would need to set a mount point to your alternative location for either /home/your-user/snap or a parent component of that chain, e.g. /home.

Note that you can’t use a symbolic link in place of the /var/lib/snapd or $HOME/snap because the apparmor confinement cannot automatically update itself to point to the target of that link, as that would open a security hole.

3 Likes