Configure MRS to Efficiently and Consistently Move Mailbox’s

One questions I receive often is around Mailbox Replication in Exchange 2010. And at first I didn’t think I really needed to write this post. Why you might ask? Well like many of you I initially thought well you only will use it once in a while. Say when you are actually migrating your users from an older version of Exchange to a newer.

But as I thought about this and as more questions came in. I found that this is an important topic. Not only because many people are still in the process of migrating to Exchange 2010. But many organizations may spread the load of users between databases once in a while. and or move users between databases for one reason or another.

And since you can move a user with out much impact to them. As well as the fact that offline defrag is not recommended and moving user to a new database is the best method for this. I am seeing more and more people moving users around between servers then ever before. This means MRS plays a very heavy role in moving those users.

There are several great articles that explain MRS and what it is doing. http://technet.microsoft.com/en-us/library/dd298174.aspx. As well as some that explain how to throttle MRS http://technet.microsoft.com/en-us/library/ff963524.aspx. However none of them have really taken the time to explain how making adjustments affects the MRS and how to spread the load between CAS servers to make this more efficient.

There are several key settings that I usually play with when trying to optimize MRS configurations.

They are:

MaxActiveMovesPerSourceMDB = “5”
MaxActiveMovesPerTargetMDB = “2”
MaxActiveMovesPerSourceServer = “50”
MaxActiveMovesPerTargetServer = “5”
MaxTotalMovesPerMRS = “100”

The file is located under Program files\Microsoft\Exchange Server\V14\Bin\msexchangeMailboxReplication.exe.config

image

You can open the file with notepad the settings you need to change are under MRSConfiguration. Many people often mistakenly change the settings under “Mailbox Replication Service configuration” The one in Yellow is the one you do not want to change.

<!– Mailbox Replication Service configuration

   Setting Name – Default, MinValue, MaxValue
   
    MaxRetries – 60, 0, 1000
    MaxCleanupRetries – 5, 0, 100
    RetryDelay – 00:00:30, 00:00:10, 00:30:00
    MaxMoveHistoryLength – 2, 0, 100
    MaxActiveMovesPerSourceMDB – 5, 0, 100
    MaxActiveMovesPerTargetMDB – 2, 0, 100
    MaxActiveMovesPerSourceServer – 50, 0, 1000
    MaxActiveMovesPerTargetServer – 5, 0, 1000
    MaxTotalMovesPerMRS – 100, 0, 1024
    FullScanMoveJobsPollingPeriod – 00:10:00, 00:03:00, 1.00:00:00
    MinimumTimeBeforePickingJobsFromSameDatabase – 00:00:04, 00:00:00, 01:00:00
    ServerCountsNotOlderThan – 00:10:00, 00:00:00, 01:00:00
    MRSAbandonedMoveJobDetectionTime – 01:00:00, 01:00:00, 12:00:00
    BackoffIntervalForProxyConnectionLimitReached – 00:30:00, 00:00:30, 1.00:00:00
    DataGuaranteeCheckPeriod – 00:00:10, 00:00:01, 02:00:00
    DataGuaranteeTimeout = 00:30:00, 00:00:00, 12:00:00
    DataGuaranteeLogRollDelay = 00:01:00, 00:00:00, 12:00:00
    EnableDataGuaranteeCheck = false, false, true
    DisableMrsProxyCompression = false, false, true
    DisableMrsProxyBuffering = false, false, true
    MinBatchSize = 100, 2, 1000
    MinBatchSizeKB = 256, 16, 16384
  –>
 
  <MRSConfiguration
    MaxRetries = “60”
    MaxCleanupRetries = “5”
    MaxStallRetryPeriod = “00:15:00”
    RetryDelay = “00:00:30”
    MaxMoveHistoryLength = “2”
    MaxActiveMovesPerSourceMDB = “5”
    MaxActiveMovesPerTargetMDB = “2”
    MaxActiveMovesPerSourceServer = “50”
    MaxActiveMovesPerTargetServer = “5”
    MaxTotalMovesPerMRS = “100”
    FullScanMoveJobsPollingPeriod = “00:10:00”
    MinimumTimeBeforePickingJobsFromSameDatabase = “00:00:04”
    ServerCountsNotOlderThan = “00:10:00”
    MRSAbandonedMoveJobDetectionTime = “01:00:00”
    BackoffIntervalForProxyConnectionLimitReached = “00:30:00”
    DataGuaranteeCheckPeriod = “00:00:10”
    DataGuaranteeTimeout = “00:30:00”
    DataGuaranteeLogRollDelay = “00:01:00”
    EnableDataGuaranteeCheck = “true”
    DisableMrsProxyCompression = “false”
    DisableMrsProxyBuffering = “false”
    MinBatchSize = “100”
    MinBatchSizeKB = “256” />
</configuration>

So let me get to the meat of this blog. I want to try to give you some examples of the settings and explain how and why they are setup. But first I have to make a couple of things clear. We have to understand a few things about nomenclature as the military calls it or just definitions.

  • MaxActiveMovesPerSourceMDB = “5” This Is specific to a source database pretty obvious
  • MaxActiveMovesPerTargetMDB = “2” Again this is self explanatory. it is how many moves will you be able to send to the target Database
  • MaxActiveMovesPerSourceServer = “50” this is how many moves that you can do from a source server
  • MaxActiveMovesPerTargetServer = “5” This is how many moves you can do per target server. Now here is the interesting part we are specifically talking MBX servers. So if you have CAS and MBX separated and have 2 CAS but 4 MBX then you have 4 target servers. This applys to sourceserver as well.
  • MaxTotalMovesPerMRS = “100” this is how many total moves a single MRS instance (meaning CAS server) 

Scenario

Lets say you have 2 Exchange 2003 servers each servers has 5 databases on it. You are moving to an environment that has 3 CAS servers with 4 MBX servers. Each with 5 DB on it. (yes I know Multi-role is the way to go. But I wanted to use this as an example). My desire would be to have 5 mailboxes move from each database. and take advantage of all CAS servers to move the users.

MaxActiveMovesPerSourceMDB = “5”
MaxActiveMovesPerTargetMDB = “5”
MaxActiveMovesPerSourceServer = “25”
MaxActiveMovesPerTargetServer = “25”
MaxTotalMovesPerMRS = “20”

Now the question I have for you is will I actually move 100 at a time. the answer is no. I have 25 per source server and only have 3 source servers so the max I would ever hit is 75. If I had left the MaxTotalMovesPerMRS at 100 then only 1 CAS server would try to handle all the moves so it would appear that things are not distributing correctly. Will it always work out to distribute it evenly? Well you have to believe MRS is smart enough to always keep it going.

OK so how smart is MRS. I always had this Idea in my head that MRS was really intelligent and would dynamically pick users from here there and every where to try to move as many as it can.

Well it is not that smart. Basically if I have 50 users distributed evenly across 5 Databases. What will happen is MRS will make a list of users for each database (not sure about how it orders that list yet). Then it will start trying to move those users. There is no intelligence to try to determine which ones are bigger than the other or who should move first. it just makes the list.  So as each database finishes it’s list then that will decrement the number being moved so in larger moves it will not always be a perfect distribution. you should expect it to be a close to even distribution to start but usually very quickly things start to vary.

The key is keeping it as distributed across the CAS servers.

Hope this helps make someone’s job easier. Be sure to check out the MSPFE Blog http://blogs.technet.com/b/mspfe/ there are a ton of good blogs with great information.  Remember to take advantage of your Premier agreement and have a PFE come on site to help with your needs.

Unknown's avatar

About Mitch Roberson

Having worked as a consultant at multiple VAR’s as well as Microsoft. Mitch has had the experience of Seeing a multitude of environments. As well as working with both Network, Systems and Security teams. This has allowed him to broaden his knowledge in many areas of IT. Because of this broad experience it has driven him to an almost fanatical desire to have visibility in his environments so he can understand what is happening with in an environment. He still is responsible for day to day operations of Active Directory, Exchange, and much more. But his passion is to learn how applications communicate so he can decrease mean time to resolution.
This entry was posted in Exchange and tagged , , , , . Bookmark the permalink.

Leave a comment