How to migrate 3 TB of Public Folder data into Ex 2013 with QMM/DMM (Quest/Dell Migration Manager). Part 1: Setting things up

It will not be easy so be prepared. It will be very tedious job requiring lots of “babysitting”. And it will be time consuming. The end result of how long it’s going to take to complete will of course vary and I am sure if you read the below outline of my experience, it will save you quite a bit of time. But don’t plan to finish it in less than at least 6 weeks. Start way ahead of when you plan to migrate your first users. Happy migrations! 😉

SOURCE Ex 2003/2007/2010

1. Perform Source Exchange org PF Tree Discovery. Know Each PF Root Total Size (including all subfolders!) and replicas. You can use (Get-PublicFolderStatistics -Identity $Item -Server $Server).TotalItemSize and add-up all subfolders or use Quest MessageStats (aka UCCM Unified Communications Command Suite)

  1. Plan QMM PF Sync Job Pairs. Each root’s subfolders need to have replicas in the same store as root, otherwise things will get too complicated. Amount of Source PF Stores will determine amount of QMM PF Sync Jobs, for example below PF structure defines 6 QMM PF Sync Jobs. The more – the better, because each job can sync with the rate of ~ 1 GB per hour and in our example we can hope to achieve 6 GB per hour. Far realistic rate however would be ~ 2 – 3 GB per hour on average, here is one of the PF reports I was running to capture sync progress and exhibiting per hour sync rate of ~ 4.4 Gb per hour:

    a1sx2_Original1_ert1

    Of course in-the-moment sync rate depends on many factors, one of which is PF data “density” – you can have lots of folders with few messages or few folders with many large messages. It takes more time to create folder, assign ACEs, mail-enable it etc. vs just extract and create 1,000th of messages.

FIRST

Root1 (PFDB1) 1 GB

Root2 (PFDB1) 2 GB

SECOND

Root3 (PFDB2) 2 GB

Root4 (PFDB2) 20 GB

THIRD

Root5 (PFDB3) 2 GB

FOURTH

Root6 (PFDB4) 5 GB

FIFTH

Root7 (PFDB5) 1 GB

Root8 (PFDB5) 1 GB

SIXTH

Root9 (PFDB6) 0.5 GB

Root10 (PFDB6) 0.5 GB

  1. Create QMM PF Admin Mailboxes on MDBs associated with each PF DB replica store participating in migration. In our example we need to create 6 PF Admin Mailboxes each looking at the corresponding PF MDB.
  2.  In QMM project associate each Source Exchange server holding PF DB with the corresponding Agent Host where PFSA (PF Source Agent) will run. In addition for each such Exchange server assign unique PF Admin Mailbox pre-created earlier.

TARGET Ex 2013

  1. Create MDBs dedicated to keep PF Hierarchy Mailboxes. It’s better to keep them separate from the regular user’s mailboxes.
  2. Plan how many mailboxes to have per each PF MDB. As of Ex 2013 CU7, MS recommends not to exceed 50% of 100 GB PF Mailbox limit, so roughly plan 50 GB per single mailbox. I’d then  allocate for example 10 PF mailboxes per database. Also consult with all the latest Ex 2013 PF limitations – how many hierarchy mailboxes to have, each mailbox size, how many PFs per mailbox etc.
    “Limits for Public Folders”
    https://technet.microsoft.com/en-us/library/dn594582(v=exchg.150).aspx
  3. Create First Public Folder Mailbox which will be Primary Hierarchy. Don’t migrate any content into it, just keep it for hierarchy purposes.

New-Mailbox -PublicFolder -Name “PFMBX1” -Database PFDB1

  1. Create additional Secondary Hierarchy Public Mailboxes depending on how much data being migrated

New-Mailbox -PublicFolder -Name “PFMBX2” -Database PFDB1

New-Mailbox -PublicFolder -Name “PFMBX3” -Database PFDB1

New-Mailbox -PublicFolder -Name “PFMBX4” -Database PFDB1

New-Mailbox -PublicFolder -Name “PFMBX20” -Database PFDB2

  1. Create 1st-level folder structure per Source PF Tree. Can stuff more than one folder into the mailbox, all depends on the resulting size

New-PublicFolder -Name Root1 -Path “” -Mailbox “PFMBX2”

New-PublicFolder -Name Root2 -Path “” -Mailbox “PFMBX3”

New-PublicFolder -Name Root3 -Path “” -Mailbox “PFMBX4”

New-PublicFolder -Name Root8 -Path “” -Mailbox “PFMBX8”

New-PublicFolder -Name Root9 -Path “” -Mailbox “PFMBX8”

New-PublicFolder -Name Root10 -Path “” -Mailbox “PFMBX8”

  1. ***Set PF MBX quotas (Optional. MS Engineer actually advised not to set PF MDB limits during migration while I see no specific problems with it as long as you plan for it properly. When mailbox reaches the quotas limit, PFTA fails to import messages into the store and logs the error, I have seen it happening. Reducing mailbox or lifting quota fixes this condition)

Set-Mailbox -Identity “PFMBX1” -IssueWarningQuota 44.5GB -ProhibitSendQuota 47.75GB -ProhibitSendReceiveQuota 50GB -UseDatabaseQuotaDefaults $false

Set-Mailbox -Identity “PFMBX1” -MaxSendSize 25MB -MaxReceiveSize 25MB

  1. Create QMM PF Admin Mailboxes per each QMM PF Sync Job (6 in our example)
  2. Associate each Target Ex 2013 server (obviously in our example need to have at least 6 Ex 2013 servers, can be in a DAG) with Agent Host running PFTA (PF Target Agent). In addition for each such Exchange server assign unique PF Admin Mailbox pre-created earlier
  3. Assign the Primary Public Folder Hierarchy Mailbox to each Target Public Folder Admin Mailbox(-es)

Set-Mailbox -Identity “QMMPFAdminMBX1” -DefaultPublicFolderMailbox “PFMBX1”

……

Set-Mailbox -Identity “QMMPFAdminMBX6” -DefaultPublicFolderMailbox “PFMBX1”

  1. Create QMM PF Sync Jobs
  2. Under each QMM PF Sync Job create Sync Collections. I normally create jobs as 2-way PF Sync “just in case” however not starting reverse agents PFSA (Target Agent Host) / PFTA (Source Agent Host)

FIRST JOB

Root1 – Root1

Root2 – Root2

SECOND JOB

Root3 – Root3

Root4 – Root4

THIRD JOB

Root5 – Root5

FOURTH JOB

Root6 – Root6

FIFTH JOB

Root7 – Root7

Root8 – Root8

SIXTH JOB

Root9 – Root9

Root10 – Root10

Example:

b2ap3_thumbnail_2015-03-21_12-10-00

  1. Latest QMM v 8.11 by default has setting to mail enable folders if Source folder is visible in the GAL. This way you’ll lose mail enabled status on many PFs. Change this in QMM to mail enable Target folder if Source folder is also mail enabled.
  2. Start PFSA (Source Agent Host) / PFTA (Target Agent Host) Agents and begin monitoring the logs.
  3. Monitor Ex 2013 PF Hierarchy mailboxes size. It will actually match fairly well to the summary size of all the root folders syncing into each mailbox.

In the next article I will cover what to do if the mailbox reaches the limit (50 GB in our context), as sometimes Root folder can already be more than 50 GB, and splitting it into many collections is too complicated. So when in QMM PF Sync collection you map RootX with the total size of 150 GB into a single hierarchy mailbox and its size approaches 50 GB, be ready to embrace Ex 2013 PF Moves, I promise it will be lots of fun … I mean struggle just begun 🙂