10,000 foot view of a snapshot.
A snapshot gives the appearance of a frozen copy of the file system. The snapshot is ideal for making a backup, because no files are added, deleted, renamed, nor modified in the snapshot. So the backup will be an accurate copy of what the file system looked like at the time of the snapshot.
I said the “appearance of a frozen copy”. In reality the snapshot and the live file system are sharing all the files. But if the live file system creates a new file, it does not appear in the snapshot. If the live file system modifies a file, the snapshot keeps the original unmodified storage, and the live system allocates new storage for the modifications. If the live file system deletes a file, the snapshot keeps the file and all of its original storage and data.
But if a file is unchanged, the snapshot and the live file system are sharing the same file and storage.
so when a snapshot is first created, the snapshot uses very little storage. As time goes on, and the live file system creates, modifies, deletes files, the storage used exclusively by the snapshot grows. If the snapshot lives long enough, it my use considerable amounts of storage, maintaining the appearance of the file system at the time the snapshot was created.
Again, this is a very high level snapshot description. Actual details may defer from my description. And multiple snapshots over time implementation details is even more fun.
NOTE: I do NOT work on Apple’s APFS. But I have been working on several different Unix based file systems since the mid-90’s. Some of them implemented snapshots. My explanation is based on my work experience.