To answer this question we need to establish how LVM works. This is the gist of it;
A Volume Group consists of several Physical Volumes, or
pvs. They are again divided into extents. Each extent take up a fixed amount of space on the physical volume - which is specified when creating the Volume Group (or uses a default).
When you create a Logical Volume, you specify how large you want it to be. This allocates the amount of extents in the Volume Group needed to have access to the specified amount of disk space.
Now, you may start to use that volume for something. When you create a snapshot of the volume - you can specify that the snapshot is of a size smaller than the volume you 'copy'. This works because the snapshot-volume references all the extents of the first volume, and only use the newly allocated extents to store the differences between the two. You can tell how much of the snapshot is utilized with the
So, it takes a really short time to take a snapshot, because LVM only creates references to the extents of the first volume - and doesn't copy any data at all.
As a side effect of this, if the difference is larger than the allocated amount of extents - the snapshot is void - and you will see a lot of error messages in dmesg (which are harmless for the first volume).
I hope this helps.