Update on some of the issue related to Exchange 2013 CU6:
- Databases unexpectedly fail over in a co-existence environment with E2007
- Exchange Online mailboxes cannot be managed by using EAC after you deploy E2013 CU6
- You cannot route ActiveSync traffic to E2007 mailboxes after you upgrade to E2013 CU6

Overview

Auto reseed is a fascinating subject, introduced for the very first time in Exchange 2013 it meets a need that existed throughout legacy versions. Throughout the previous exchange versions if a disk hosting a mailbox database were to go offline it would mean that the database copy hosted on that disk would be unavailable to exchange as well.

In Exchange 2010 that would have meant one copy to be impacted, with the new storage recommendations of hosting multiple copies per volume the impact of this becomes quite a bit larger. To minimize the risk of copies being reduced for a prolonged period of time “Auto Reseed” was introduced.

Simply put, it will take a spare disk (which you assigned) and assign it to replace the failed disk, automatically reseeding the mailbox databases hosted on the failed disk.

The downside, however, is that the feature doesn’t actually does any of the prerequisite configuration for you. Installing the disk correct, creating the directories and adding spare disks to the system, as well as replacing bad disks, all requires manual actions by an administrator.

Workflow

The primary input condition for the Auto Reseed workflow is a database copy that is in an Failed and Suspended (F&S) state for 15 consecutive minutes. When that condition is detected, the following Auto Reseed workflow is initiated:

Try to resume the database copy up to 3 times, with 5 minute sleeps in between each try. Sometimes, after an F&S database copy is resumed, the copy remains in a Failed state. This can happen for a variety of reasons, so this first step is designed to handle all such cases; AutoReseed will automatically suspend a database copy that has been Failed for 10 consecutive minutes to keep the workflow running. If the suspend and resume actions don’t result in a healthy database copy, the workflow continues.

Next, AutoReseed will perform a variety of pre-requisite checks. For example, it will verify that a spare disk is available, that the database and its log files are configured on the same volume, and in the appropriate locations that match the required naming conventions. In a configuration that uses multiple databases per volume, AutoReseed will also verify that all database copies on the volume are in an F&S state.

Next, AutoReseed will attempt to assign a spare volume up to 5 times, with 1 hour sleeps in between each try.

Once a spare has been assigned, AutoReseed will perform an InPlaceSeed operation using the SafeDeleteExistingFiles seeding switch. If one or more database files exists, AutoReseed will wait for 2 days before in-place reseeding (based on the LastWriteTime of the database file). This provides an administrator with an opportunity to preserve data, if needed. AutoReseed will attempt a seeding operation up to 5 times, with 1 hour sleeps in between each try.

Once all retries are exhausted, the workflow stops. If, after 3 days, the database copy is still F&S, the workflow state is reset and it starts again from Step 1. This reset/resume behavior is useful (and intentional) since it can take a few days to replace a failed disk, controller, etc..

Before you begin

Be aware that it is best to do this in a lab beforehand. The configuration is quite simple but can be very confusing. The naming conventions you use are largely up to you but need to be consistent throughout all nodes in the database availability group. The EDB and log file path have to end in “.db” and “.log” respectively and have to be in certain locations. Additionally the number of copies had to be equal on each disk. You cannot have, say, 4 copies on one disk whilst having 2 on another. So it is important to plan out what the configuration will look like beforehand.

Parameters

Currently there are 3 parameters you need be aware of when configuring Auto Reseed:

AutoDagVolumesRootFolderPath: Under this folder we will create mount points for the disk we assign to our exchange servers

AutoDagDatabasesRootFolderPath: This folder will be hosting the mount points for our databases.

AutoDagDatabaseCopiesPerVolume: With this parameter we specify the number of database copies each volume will host.

As you can see things already can be quite confusing and we have not even started configuring the feature! It is easiest to remember that each volume you specify for the auto reseed feature will have multiple mount points, except for our spare disk(s).

The values I used in my lab are as follows:

AutoDagVolumesRootFolderPath:C:\ExchVol

AutoDagDatabasesRootFolderPath: C:\ExchDBs

AutoDagDatabaseCopiesPerVolume: 2

I will have 3 disks configured, 2 disks hosting databases and 1 spare disk. My database availability group is name “DAG”.Each active disk will host 2 databases, for 4 databases in total. Naming is simple and they are as follows:

The third and last disk will be a spare disk and needs to be tied to the folder “C:\ExchVols\Volume3”

Mountvol.exe c:\ExchVols\Volume3 \\?\Volume (GUID)

Yes, you noticed that correctly, there are drives associated with multiple folders and that is what confuses most people! This structure is necessary for Exchange to pick up on the configuration correctly.

Step 4:Creating the database directories

It’s important to do this step after associating the disks with their folders as creating them before doing this step is going to cause pain as you won’t be able to do so.

Step 6:Rinse and repeat!

Each of the steps 1 to 4 needs to be repeated on every node in the database availability group. That means creating all of the directories, identically, and associating the disks with the right folder(s).

Step 7:Creating the database copies

Once the nodes have been configured correctly we can create the copies (in my case it’s a 2 node database availability group)

Auto Reseed recovery

As configuring it is just not enough I went a step further and disconnected the disk mounted hosting DB01 and DB03 (Volume1). I did this through removing the disk from Hyper-v (they are attached as SCSI disks, allowing for hot swapping).

When running the “get-mailboxdatabasecopyStatus” cmdlet we can see that our database has gone in to “Failed and suspended” status.

Running “get-mailboxdatabase” we can add to that and see that our databases for the failed volume are now active on our second node.

After our workflow went through the motions we can see that it had assigned the spare disk and seeded the database.

This should get completed within 15-30 minutes of detecting the issue, saving the administrator a whole heap of trouble of having to worry about replacing disks, uptime, risks calculations etc… Theoretically you could get away with having only quarterly scheduled replacement times for disks and not get in to trouble for it. Obviously, that is not a recommendation to make (seriously!) but Auto Reseed is a nifty feature that can help prioritize work and keep our nights sleep to a full night.

For some reason the 2013 mailbox breaks the legacy users sync. Microsoft is aware and working on an interim update. Current workarounds are either forwarding all traffic directly to the Exchange 2007 CAS server or reverting back to a previous update

There’s an issue with CU6 for Exchange 2013 in coexistence mode with exchange 2007. Quite specifically if you have it installed you might experience unexpected database failovers if you have a delegate on 2007 attempting to open a 2013 mailbox.

The issue is known and an interim update should be getting released soon. The current work around is to disable MAPI access to the Exchange 2013 server and use OWA until the update is available.

Another exchange related function (who could guess!) I recently finished is this one. It will download the exchange setup file and install the role you require to be installed. You have to provide the role you want to install, the exchange version and the organization name. Works for 2010 and 2013. Might update this in the future to include RU installations.

I’m not taking full credit for this one. This script was originally made by someone else (and as soon as I find the link to that post I’ll put it up!) to prepare for Exchange 2010 on windows 2008 and 2008 R2.

I’ve updated it for server 2012 and Exchange 2013, converted it to a function and make you choose th