For those who've wound up in this scenario and have found this forum, I hope you read all the answers because Choppers is wrong - IT_Architect is correct.
You need to remove snapshots starting with the snapshot CLOSEST to the base disk.. that is, the snapshot nearest the top of the list in the snapshot manager window. This will minimize the need for free space during the snapshot removal process.
If you followed Choppers method, you'd need a ton of free space available in order to remove all the snapshots successfully - something you probably don't have if you are looking at a chain of 15 open snapshots!
Think about it... only disk changes since the base disk are stored in the first snapshot file. The second snapshot file contains changes since the first snapshot file. The 3rd snapshot only contains changes since the 2nd snap file. The base disk file will NEVER get larger than it's allocated size. Each snapshot file can grow to be the same size as the base disk. See example below
base disk (100 GB)
- snap1 (5 GB)
- snap2 (3 GB)
- snap3 (15 GB)
All the changed disk block that have been stored in snap1 are contained in the base disk. It's just that these blocks have changed since the snapshot was started so they're stored in the snap1 file.
Conversely, the snap3 file is 15 GB and all it's changes cannot possibly be contained in the smaller 3GB snap2 file. If you delete the snap3 snapshot first, it's changes will be merged into the snap2 file. The smallest that snap2 could possibly be is 12 GB after this process and that's assuming that 3 GB of the changes in the snap3 file are the exact same disk blocks in the snap2 file. This is best case scenario.
To make matters worse, during the removal of the snap3 snapshot, the snap3 file remains on the datastore until the snapshot has successfully been removed. Thus, the best case scenario is that you'll use at least 12GB of MORE DISK space in order to remove the snap3 snapshot... but you'll probably need more than that.
That's why you start deleting snapshots closest to the base disk because the base disk file will never grow larger (unless it was thin-provisioned, but that's a different can of worms).