Office 365: Exchange Migrations and the data migrated information…
In Office 365 migration batches are the preferred method of establishing mailbox migrations to Office 365. When a migration batch is established the users included in the batch are represented as migration users within the service.
Within the context of each migration user is where we track the migration process. One of the data points contained within the migration process is the DATA MIGRATED tab. When enumerating the users within a migration batch, and selecting a migration user, this information is visible within the portal.
USER@domain.com
Status: Synced
USER@domain.com Skipped item details
Data migrated: 1.4 GB (1,503,707,494 bytes)
Migration rate: 0 B (0 bytes)
Error:
Report: USER@domain.com Download the report for this user
Last successful sync date: 7/2/2018 6:12:47 PM
Status:
Queued duration: 00:00:09.5015268
In-progress duration: 6.04:36:17.0329441
Synced duration: 36.10:02:28.6166962
Stalled duration: 02:12:43.4040899
One of the common questions and comments that I receive is that the DATA MIGRATED field may often reflect sizes that are slightly more to drastically more than the mailbox being migrated. This on occasion leads to confusion about the migration process and the data that was migrated. Here’s an example.
I recently migrated a mailbox from an on premises Exchange 2010 installation. With Exchange 2010 being the source we can already expect that the data migrated to the service to be more than the reported mailbox size due to the inconsistencies in the methods Exchange 2010 reports mailbox sizes. At the time that the mailbox migration completed the following was reported within the migration portal.
user@domain.com
Status: Completed
user@domain.com Skipped item details
Data migrated: 2.485 GB (2,668,722,884 bytes)
Migration rate: 0 B (0 bytes)
Error:
Report: user@domain.com Download the report for this user
Last successful sync date: 7/3/2018 3:14:56 PM
Status:
Queued duration: 00:00:08.5213717
In-progress duration: 01:01:30.1987283
Synced duration: 00:00:00
Stalled duration: 01:21:09.3851867
In this example the data migrated field shows 2.485 GB migrated. If we review the migration statistics associated with the mailbox we can get an idea of the reported mailbox size to be migrated.
PS C:\> Get-MigrationUserStatistics user@domain.com -IncludeReport | Export-Clixml -Path c:\temp\migration.xml
PS C:\> $stats=Import-Clixml -Path C:\temp\migration.xml
PS C:\> $stats.EstimatedTotalTransferSize
1.501 GB (1,612,092,317 bytes)
In this particular instance the estimated mailbox transfer size was 1.5 GB. If we look at the data migrated verses the estimated data transfer size the difference is almost 1 GB difference. Even accounting for reporting inconsistencies from Exchange 2010 mailbox size estimates 1 GB is a significant difference. Why has this happened?
The data migrated field is a summary counter of all data transmissions between Office 365 and the on premises Exchange environment. It is NOT a reflection of the data migrated verses the estimated mailbox size. In this particular instance the mailbox move process was interrupted several times. The interruptions may be the result of throttling, connection problems, or other migration interruptions.
7/3/2018 2:22:35 PM [CO2PR07MB2711] The job has been paused temporarily due to unfavorable server health, with request throttling state: 'StalledDueToTarget_DiskLatency'. It will automatically resume after '7/3/2018 2:23:35 PM'.
7/3/2018 2:28:38 PM [CO2PR07MB2711] The Microsoft Exchange Mailbox Replication service 'CO2PR07MB2711.namprd07.prod.outlook.com' (15.20.930.16 ServerCaps:FFFFFF, ProxyCaps:0FFFC7FD6DFDBF5FFFFFCB07FFFF, MailboxCaps:, legacyCaps:FFFFFF) is examining the request.
7/3/2018 2:28:38 PM [CO2PR07MB2711] Content from the Shard mailbox (Mailbox Guid: 6021ac05-d3f5-4bf4-ad03-f749aa02a1e4, Database: 545e461d-55da-4037-9c3e-d57a539e5e43) will be merged into the target mailbox.
7/3/2018 2:28:38 PM [CO2PR07MB2711] Connected to target mailbox 'live.domain.com\f28fad8a-546d-4965-8bcd-94806d53967d (Primary)', database 'NAMPR07DG170-db053', Mailbox server 'CO2PR07MB2711.namprd07.prod.outlook.com' Version 15.20 (Build 930.0).
7/3/2018 2:28:45 PM [CO2PR07MB2711] Connected to source mailbox 'live.domain.com\f28fad8a-546d-4965-8bcd-94806d53967d (Primary)', database 'DAG-Administration', Mailbox server 'MICHAEL.domain.com' Version 14.3 (Build 382.0), proxy server 'PROXY.domain.com' 15.1.1531.3 ServerCaps:, ProxyCaps:, MailboxCaps:, legacyCaps:0FFD6FFFBF5FFFFFCB07FFFF.
7/3/2018 2:28:47 PM [CO2PR07MB2711] Request processing continued, stage LoadingMessages.
7/3/2018 2:28:47 PM [CO2PR07MB2711] Stage: LoadingMessages. Percent complete: 20.
7/3/2018 2:41:04 PM [CO2PR07MB2711] Stage: CopyingMessages. Percent complete: 85.
7/3/2018 2:41:04 PM [CO2PR07MB2711] Copy progress: 17097/21426 messages, 1.299 GB (1,394,743,256 bytes)/1.501 GB (1,611,958,891 bytes), 30/67 folders completed.
7/3/2018 2:41:04 PM [CO2PR07MB2711] The job has been paused temporarily due to unfavorable server health, with request throttling state: 'StalledDueToTarget_DiskLatency'. It will automatically resume after '7/3/2018 2:42:04 PM'.
7/3/2018 2:49:49 PM [CO2PR07MB2711] The Microsoft Exchange Mailbox Replication service 'CO2PR07MB2711.namprd07.prod.outlook.com' (15.20.930.16 ServerCaps:FFFFFF, ProxyCaps:0FFFC7FD6DFDBF5FFFFFCB07FFFF, MailboxCaps:, legacyCaps:FFFFFF) is examining the request.
7/3/2018 2:49:55 PM [CO2PR07MB2711] Content from the Shard mailbox (Mailbox Guid: 6021ac05-d3f5-4bf4-ad03-f749aa02a1e4, Database: 545e461d-55da-4037-9c3e-d57a539e5e43) will be merged into the target mailbox.
7/3/2018 2:49:55 PM [CO2PR07MB2711] Connected to target mailbox 'live.domain.com\f28fad8a-546d-4965-8bcd-94806d53967d (Primary)', database 'NAMPR07DG170-db053', Mailbox server 'CO2PR07MB2711.namprd07.prod.outlook.com' Version 15.20 (Build 930.0).
7/3/2018 2:50:02 PM [CO2PR07MB2711] Connected to source mailbox 'live.domain.com\f28fad8a-546d-4965-8bcd-94806d53967d (Primary)', database 'DAG-Administration', Mailbox server 'MICHAEL.domain.com' Version 14.3 (Build 382.0), proxy server 'PROXY.domain.com' 15.1.1531.3 ServerCaps:, ProxyCaps:, MailboxCaps:, legacyCaps:0FFD6FFFBF5FFFFFCB07FFFF.
7/3/2018 2:50:04 PM [CO2PR07MB2711] Request processing continued, stage LoadingMessages.
7/3/2018 2:50:04 PM [CO2PR07MB2711] Stage: LoadingMessages. Percent complete: 20.
7/3/2018 3:00:05 PM [CO2PR07MB2711] Stage: CopyingMessages. Percent complete: 89.
In this example the move request was stalled several times. Each time after the stall the migration request is picked back up – and message loading occurs. This would be an example of additional data added to the transfer set that was not mailbox level items that would have been accounted for in the mailbox size.
If I was curious about the status of the migration and understanding the full migration status – how can I ensure the data was moved. When a move enters the finalization phase the source mailbox and target mailbox are locked. We have a mailbox folder verification process that is executed. The mailbox folder verification process iterates through each folder in the source mailbox and compares it to the target mailbox. Item counts and sizes are compared in real time. If there are any discrepancies identified the move will be placed into a failed state. The mailbox verification is logged into the migration log file and can be viewed by the administrator.
PS C:\> Get-MigrationUserStatistics user@domain.com -IncludeReport | Export-Clixml -Path c:\temp\migration.xml
PS C:\> $stats=Import-Clixml -Path C:\temp\migration.xml
PS C:\> $stats.Report.MailboxVerification
Source : 10188 [1.152 GB (1,237,342,091 bytes)]
SourceFAI : 27 [1.203 MB (1,261,537 bytes)]
Target : 10188 [1.464 GB (1,571,440,111 bytes)]
TargetFAI : 27 [1.227 MB (1,286,579 bytes)]
Corrupt : 0 [0 B (0 bytes)]
Large : 0 [0 B (0 bytes)]
Skipped : 0 [0 B (0 bytes)]
FolderSourcePath : /Top of Information Store/Inbox
FolderTargetPath : /Top of Information Store/Inbox
FolderSourceID : {0, 0, 0, 0...}
FolderTargetID : {0, 0, 0, 0...}
ParentSourceID : {0, 0, 0, 0...}
ParentTargetID : {0, 0, 0, 0...}
WKFType : Inbox
WKFTypeInt : 10
FolderIsMissing : False
FolderIsMisplaced : False
MismatchedFlagsCount : 0
MissingItemsInTargetBucket : 0 [0 B (0 bytes)]
MismatchedFlagsSample : {}
DuplicatedItemsInTargetBucket : 0 [0 B (0 bytes)]
MissingInSourceExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
MismatchedSyncFolderIdExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
NonMRSSyncedExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
FolderExclusionExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
MailboxGuid : f28fad8a-546d-4965-8bcd-94806d53967d
UnknownElements :
UnknownAttributes :
XmlSchemaType :
Source : 5129 [247.9 MB (259,986,587 bytes)]
SourceFAI : 3 [5.91 KB (6,052 bytes)]
Target : 5129 [500 MB (524,288,275 bytes)]
TargetFAI : 3 [8.085 KB (8,279 bytes)]
Corrupt : 0 [0 B (0 bytes)]
Large : 0 [0 B (0 bytes)]
Skipped : 0 [0 B (0 bytes)]
FolderSourcePath : /Top of Information Store/Deleted Items
FolderTargetPath : /Top of Information Store/Deleted Items
FolderSourceID : {0, 0, 0, 0...}
FolderTargetID : {0, 0, 0, 0...}
ParentSourceID : {0, 0, 0, 0...}
ParentTargetID : {0, 0, 0, 0...}
WKFType : DeletedItems
WKFTypeInt : 14
FolderIsMissing : False
FolderIsMisplaced : False
MismatchedFlagsCount : 0
MissingItemsInTargetBucket : 0 [0 B (0 bytes)]
MismatchedFlagsSample : {}
DuplicatedItemsInTargetBucket : 0 [0 B (0 bytes)]
MissingInSourceExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
MismatchedSyncFolderIdExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
NonMRSSyncedExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
FolderExclusionExtraItemsInTargetBucket : 0 [0 B (0 bytes)]
MailboxGuid : f28fad8a-546d-4965-8bcd-94806d53967d
UnknownElements :
UnknownAttributes :
XmlSchemaType :
In summary – the DATA MIGRATED field cannot be used as a measure of migration success or failure. Only in cases where the move is started and almost immediately finalized with no errors, stalls, or interruptions will the value be near or close to the mailbox size being migrated.