It appears that this has been an issue for over 10 years now, and there is yet a resolution to be had.
Once you fill up the available shadow copy storage allocated, then push a lot of disk I/O's, your snapshots will eventually be deleted and you will incur data loss.
Here is how:
When one first creates a VSS snapshot, it shows 50GB of available shadow storage space, which is great:
C:\Users\root>vssadmin list shadowstorage vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool (C) Copyright 2001-2013 Microsoft Corp. Shadow Copy Storage association For volume: (E:)\\?\Volume{8a5b0a31-7564-491e-a150-2fc8889ae217}\ Shadow Copy Storage volume: (E:)\\?\Volume{8a5b0a31-7564-491e-a150-2fc8889ae217}\Used Shadow Copy Storage space: 0 bytes (0%)Allocated Shadow Copy Storage space: 50 GB (0%) Maximum Shadow Copy Storage space: 38.2 TB (100%)
But as time goes by, this will fill up and then the VSS service will only try and stay ahead by about 300MB.
So what happens if you push too many I/O's, and the VSS service can't allocate space faster than it is writing? Does it re-allocate the space requested when the disk is idle? No. Does it pause the disk if it needs to allocate more shadow storage? No.
It will simply DELETE ALL of your snapshots.
Eventually, you will fill up the 50GB of shadow copy allocated storage, like so:
C:\Users\root>vssadmin list shadowstorage vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool (C) Copyright 2001-2013 Microsoft Corp. Shadow Copy Storage association For volume: (E:)\\?\Volume{8a5b0a31-7564-491e-a150-2fc8889ae217}\ Shadow Copy Storage volume: (E:)\\?\Volume{8a5b0a31-7564-491e-a150-2fc8889ae217}\Used Shadow Copy Storage space: 50 GB (0%)Allocated Shadow Copy Storage space: 50.3 GB (0%) Maximum Shadow Copy Storage space: 38.2 TB (100%)
And from this point on, it will barely stay ahead, except by a measly 300MB, which isn't much when you're dealing with large volumes (the one above is about 40TB).
Here's a snapshot that is just waiting to disappear any day now...
C:\Users\root>vssadmin list shadowstorage vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool (C) Copyright 2001-2013 Microsoft Corp. Shadow Copy Storage association For volume: (E:)\\?\Volume{8a5b0a31-7564-491e-a150-2fc8889ae217}\ Shadow Copy Storage volume: (E:)\\?\Volume{8a5b0a31-7564-491e-a150-2fc8889ae217}\ Used Shadow Copy Storage space: 151 GB (0%) <-- any moment my snapshot could be destroyed!Allocated Shadow Copy Storage space: 151 GB (0%) Maximum Shadow Copy Storage space: 38.2 TB (100%)
Note that it stops showing decimals after 100GB, but I timed it as the space increases and the allocated space is still staying around 300MB ahead of the used space.
If you happen to write too many I/O's, you will get this in your event log and ALL of your snapshots will be deleted.
This is not acceptable, and I've seen it on multiple systems from Windows Server 2008 through Windows Server 2016. I need a resolution to this issue because we have customer data at stake, and we cannot move forward unless we know, for a fact, that snapshots will not be magically deleted because the hard drive decided to be slow one day, for some arbitrary reason.
I've also read the Microsoft suggestion of putting the shadow storage on another volume. That is a band aid and NOT a good solution, as that could also incur failures. If for some reason the SAN becomes unavailable, you will lose your snapshots. If for some reason the disk degrades on the second volume, you will lose your snapshots. If for some reason the second volume runs out of space, you will lose your snapshots.
It might also be worth mentioning that the registry setting MinDiffAreaFileSize was also suggested by Microsoft, but that does nothing to alleviate the issue.