About: Exchange VSS Writer - Exchange backup and restore

API Interface: COM Library (IUnknown only)

Business Logic: Exchange Backup.

Language Support: Unmanaged C++, .NET.

Direct Property Access: N/A.

Product Versions: Exchange 2003 and later.

 
  

Summary:

The Volume Shadow Copy Service for Windows provides a facility for applications to backup and restore data within another application or Windows. It's a COM based API that allows developers to build Requestors, Writers and Providers. All versions of post Exchange Server 2003 and later ship an Exchange Writer, third party developers can write a custom Requestor to pull data from Exchange and write the backup output using a Provider. VSS backup is built into several Microsoft products.

Points of Interest:

  • The Microsoft Messaging Developer Support team supports application developers creating Requestors that target the Exchange Writer specifically, If a customer is not the developer of the Requestor than the customer should engage the third party vendor as their first line of support. Microsoft developer support engineers can work with a customer who does not own the backup code but does have the product's developers engaged.

    See: Overview of the Microsoft third-party storage software solutions support policy
     

  • For product support Microsoft Exchange Administration support team can assist a customer if our customer has the third party engaged and is attempting to either perform a backup or a restore operation.
  • Support for developing a backup requester is done per product. This blog post is geared to the Exchange writer.

Some basic terms:

Requestor - A Requestor is a backup application which targets all Writers or a specific Writer. The API is generic enough that a developer can write a Requestor, and that Requestor can work against all Writers in a generic sense. However, some Writers may support features that other Writers don't. For example, the Exchange 2007 Writer supports the ability for a Requestor to restore the data in a location other than the original location. Although this feature was available in the VSS API, Exchange 2003's Writer did not implement it.

Writer - A Writer is a application or service that ensures that it's data is quiescent and stable. It cooperates with Requestors and Providers through the Shadow Copy Interface. The Exchange Writer ensures that when a Requestor performs a backup or a restore that the data is in a state that allows for properly recovery.

Providers - A provider is another piece of the VSS model. It is responsible for running volumes and creating the shadow copies. They usually are created for a specific piece of hardware but Microsoft provides a default one. Our team does not support these directly but they may be involved in a backup or restore operation.

More Information:

There was a lot of changes made between the Exchange 2003 and Exchange 2007 Writers, here is a short list:

The Exchange 2003 Writer was implemented as a Singleton. Therefore, multiple backup's running in parallel on the same Storage Group is not supported. Exchange 2007 supports this.

Exchange 2007 Writer supports the ability for a Requestor to restore the data in a location other than the original location. Although this feature was available in the VSS API, Exchange 2003's Writer did not implement it.

Exchange 2007 comes with two Writers. One for the Store and one to allow for replication.

** Note - There were no significant changes to the Exchange 2010 Writer over the 2007 Writer.

Here is a list of changes for Exchange 2013

The two Exchange Writers were once again merged back into one Writer.

There is no longer a Writer that "resides" in the Microsoft Exchange Information Store (Store.exe). It now resides in the Microsoft Exchange Replication Service (msexchangerepl.exe). There is no longer a reason to differentiate by instance name.

A common misconception is that VSS_E_WRITERERROR_RETRYABLE is not an error it's a status. The purpose of the status is to report that the current backup failed, but future attempts may succeed without reconfiguration. It's very common for backup vendors not to attempt to perform a backup when encountering this return value.

Backgrounders:

MSDN Reference (Exchange 2007 VSS)
https://msdn.microsoft.com/en-us/library/aa579095(EXCHG.80).aspx

MSDN Reference (Exchange 2010 VSS)
https://msdn.microsoft.com/en-us/library/dd877010(EXCHG.140).aspx

Exchange writer in Exchange 2013
https://msdn.microsoft.com/en-us/library/office/bb204080(v=exchg.150).aspx

Build backup and restore applications for Exchange 2013
https://msdn.microsoft.com/en-us/library/office/aa579284(v=exchg.150).aspx

[MSDN] Volume Shadow Copy Service
https://msdn.microsoft.com/en-us/library/bb968832.aspx

Exchange Server 2003 data backup and Volume Shadow Copy services
https://support.microsoft.com/en-us/kb/822896

Everything You Need to Know About Exchange Backups* - Part 1
https://blogs.technet.com/b/exchange/archive/2012/06/04/everything-you-need-to-know-about-exchange-backups-part-1.aspx

Everything You Need to Know About Exchange Backups* - Part 2
https://blogs.technet.com/b/exchange/archive/2012/06/14/everything-you-need-to-know-about-exchange-backups-part-2.aspx

Everything You Need to Know About Exchange Backups* - Part 3
https://blogs.technet.com/b/exchange/archive/2012/07/09/everything-you-need-to-know-about-exchange-backups-part-3.aspx

Also see:

About: Exchange APIs to backup and restore data
https://blogs.msdn.com/b/webdav_101/archive/2015/06/01/about-exchange-apis-to-backup-and-restore.aspx