snapshots share data
The internal backup disk of infamous host erlangen is a 2TB SSD. It readily holds some 330(!) full backups of erlangen’s 480GB home directory with a total size of 158TB. This indeed works because snapshots are sharing data. Disk usage of backup disk:
In addition to Karl’s advice on how to look at how much space you actually have on a btrfs volume, you can use the ‘snapper’ command to get information about the snapshots on the system and to manage them. By default, your user won’t have permissions to look at that - you’ll have to use sudo (or su -) to be root. You can modify the configuration to allow your user to have permission to manage snapshots without becoming root by editing /etc/snapper/configs/root - the file is well-commented and easy to understand for letting your non-root user account be able to make those changes.
You may well find some older snapshots that you want to get rid of - the snapper list command will show you the snapshots on the filesystem, and you can remove the ones you know you don’t need with snapper rm and the snapshot number (or a range).
Snapshots share disk space as long as data was not modified between them. Ten consecutive snapshots of a 1G file will consume exactly 1G on disk in total, not 10G.
You can compare it with hard links, except snapshots share space on sub-file granularity.