Archive | March 2014

Veeam: A VSS critical writer has failed

While deploying Veeam Backup & Replication recently for a customer, we came across the following error message while backing up a domain controller:

Unable to release guest. Error: Unfreeze error: [Backup job failed.
Cannot create a shadow copy of the volumes containing writer’s data.
A VSS critical writer has failed. Writer name: [NTDS]. Class ID: [{b2014c9e-8711-4c5c-a5a9-

3cf384484757}]. Instance ID: [{bcc3ddec-3a1b-4bbd-bb5c-2da62e9bcb4d}]. Writer’s state: [VSS_WS_FAILED_AT_POST_SNAPSHOT]. Error code: [0x800423f4].]
veeamerror

Running VSSAdmin List Writers showed in fact that the NTDS Writer was in an Error state with [11] Failed, “Non-retryable error”.

The issue was due to a conflict with Shadow Protect, which was also doing VSS Backups.  As Veeam was going to be replacing ShadowProtect, the fix for this was to remove the Shadow Protect VSS Provider:

First re-run the ShadowProtect backup which restored the NTDS Writer to a Ready State.
veeamerror1

Open Regedit
Browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Providers\
You should see the GUID {24602736-bed9-4619-91b0-243447c6409c} listed.  Clicking on it shows “StorageCraft Volume Snapshot Software Provider”
veeamerror3
Backup this registry key, then delete it.
veeamerror2
Open Windows services and restart the “Volume Shadow Copy” service. It may be stopped to begin with, that’s okay.
Check and see if the provider is gone from: vssadmin list providers
Reboot the server when next possible.

Re-run Veeam backup and all should be successful!

Remove Exchange 2010 Archive Database from Provisioning

After creating an Archive Database in Exchange 2010, you find that Exchange will put new user mailboxes on this database, in order to balance mailboxes across stores.  The easiest way to avoid this is to exclude the Archive Database from your mailbox provisioning.

Using Exchange 2010 Powershell, get a list of your mailbox databases by running Get-MailboxDatabase:
1ExcludeArchiveDB
Once you confirm the name of your archive database, exclude it from automatic provisioning by running the following PowerShell command: Set-MailboxDatabase -Identity “Archive Database” -IsExcludedFromProvisioning $True
2ExcludeArchiveDB