The VSS service is a bit of black magic for me. How can they backup a huge amount of data in just a few seconds? After reading some Technet articles, here are my notes:
The Volume Shadow Copy Service (VSS) is the service that allows shadow copies.
Requestors: i.e the Backup software, Backup Exec, or DPM
Writers: applications like SQL, Exchange
Providers: SANs
You could create a shadow copy and transport to another server for quick backups, data mining (you could run queries on real data without degrading the performance), and for testing.
Steps:
1. Backup software (requestor) contacts the VSS service to request a copy
2. VSS coordinates with the writers to tell them to prepare to freeze the data to create the copy. If the application has any data still in memory or buffer, it is written, so a clean state can be used for a copy.
3. The application stops for a few seconds and a point in time snapshot is done
4. VSS tells the application the copy is done and you now continue to write data again
With this method, the responsibility for data is shifted from the backup application to the application owner. This makes sense the developers should know best what to backup and how to back it up.
VSS uses the order to select the provider:
1. Hardware provider
2. Software provider
3. System software provider
There is still a bit of voodoo magic, like: Can the change journal really create a copy that fast? But after reading the articles, I do have a better understanding of VSS.