Microsoft Migration Manager Review
On May 27, 2020, Microsoft rolled out its new Migration Manager to the SharePoint Online Admin center. The Migration Manager, in its current form, primarily handles the migration of network file share (NFS) content to SharePoint Online, OneDrive for Business, or Teams.
Meet the Reviewer: Russ Houberg | SkySync Senior Solutions Architect
As a SharePoint Microsoft Certified Master (MSM), I have been planning and executing migrations, many of them very large, for over 15 years. When a new migration tool comes along, I am eager to check out its features, throughput, and see how intuitive the user interface is.
I finally got an opportunity to take a good look at and review Microsoft’s Migration Manager. I found it to be easy to use and it performs well. That said, it does seem to be targeted towards small and medium workloads. More on that in a bit.
Microsoft Migration Manager Features
In throughput testing, using a single (4) CPU agent server, I was able to migrate (5) file shares that contain 20,000 files and 20GB of content each in 10.87 hours during the business day when users are prioritized. On the weekend, when backend processing is a priority, I was able to migrate that same content in 6.12 hours. This translates into roughly 320GB per agent per 24-hour day during the week and 392GB per agent per 24-hour day on the weekends. Of course, you can add more agents (servers) to improve throughput at the expense of increased infrastructure costs.
Microsoft Migration Manager Throughput Results:
Admin Agent Deployment
The admin starts by deploying agents – one agent per server. The number of agents (processing servers) determines the number of tasks that can be executed simultaneously.
Installing an agent is simple. Download and execute the agent installer on the desired processing server that is co-located with the file share data. During installation, the admin simply enters credentials for NFS and Office 365, and the installer takes care of everything else. Soon after, the agent pops into the list of Agents in the Migration Manager web interface.
With agents deployed, the admin configures migration or “scan only” tasks. Tasks can support a handful of filter criteria and can also be configured to support permission migration using Azure Active Directory or a mapping file for user account mapping. Tasks can also be created, one at a time, via a guided interface, or they can be created in bulk by building a CSV file that is imported via the UI.
One of the drawbacks of the task creation process is that Microsoft Migration Manager queues tasks for execution immediately after creation. This makes it impossible to prepare for a migration and then execute it later. I would not be surprised if Microsoft decouples task creation from execution in the future.
Another drawback is that tasks cannot be scheduled to run at certain times or run continuously until told to stop. Incremental delta runs are possible, but initiating task execution always requires manual intervention by the admin. It is very cumbersome to start specific tasks when there are hundreds or thousands of jobs.
The performance of scan tasks exceeded my expectations. The agents are clearly multi-threaded, completing an analysis of a 20GB file share in just a few minutes. Migration tasks also begin with a scan operation to provide baseline information on the task corpus size. As the migration executes, the user interface provides completion statistics to help the admin get a feel for task progress during migration. Several, but not all status indicators automatically update without user intervention. Unfortunately, the job details pane does not benefit from this. I expect that Microsoft will iron this out quickly.
Due to the multi-threaded agents, Microsoft Migration Manager’s task performance is also sufficient. Unfortunately, each agent is only able to execute a single task at a time. This can slow things down significantly due to the asynchronous nature of the Office 365 Migration API. The migration task becomes blocked while waiting for application servers in the Office 365 tenant to process the migration package import. The result is that the agent sits idle for long periods of time, reducing overall throughput.
There is actually very little user interface, so navigation is a breeze and the management screens are quite intuitive. Unfortunately, this also means that control surfaces are limited. Working with 10’s of tasks is simple. Working with 100’s of tasks is more difficult. And working with 1000’s of tasks is extremely difficult. There are no paging controls which makes it very hard to locate specific jobs. If your migration project includes more than a few hundred tasks, you’ll want a more enterprise-ready solution.
Locating Migration Jobs
Locating jobs is also difficult as there was no way to search for jobs by keyword in the interface. Since job execution is a manual operation, managing migration waves becomes cumbersome. Microsoft clearly targeted the tool to move a lot of data in relatively few jobs. Typical business share migrations would not be much trouble. However, if you have thousands of users in your organization, it will be difficult to migrate their NFS user shares to OneDrive for Business.
In the end, this is all by design. With flexibility comes complexity. I believe Microsoft wants to keep this tool as easy to use as possible, targeting “the 80%.” I am sure we will see some improvements, but there are limits to how many capabilities you can add to a user interface before it becomes difficult for admins to operate.
Microsoft Migration Manager vs. SkySync
That said, Microsoft Migration Manager is missing some features that cater to large and enterprise content migrations. If your migration project will consist of thousands of jobs in multiple migration waves, I encourage you to consider a more enterprise-class migration engine. During migration test runs where an identical SkySync processing server processed the same data as the Microsoft Migration Manager agent at the same time, SkySync achieved roughly three-times the performance premium.
SkySync performance comes from a strong engine architecture that employs multiple threads per job but also allows multiple jobs per server. The result is that SkySync can be performing additional upload, download, or post-processing tasks while the Office 365 tenant is performing asynchronous import processing. This should be a key consideration if both throughput and migration duration are important to the project.
On top of achieving everything that Microsoft Migration Manager does, there are additional features that are integral to large-scale, enterprise content migrations including:
- A user interface that provides bulk job management over any number (easily tens of thousands) of jobs
- Automatic remediation for item paths with illegal characters or paths that exceed the maximum path length in Office 365
- Migration factory enablement through a full-featured command-line interface (CLI) and a migration engine that is 100% accessible via REST endpoints
- Advanced Job scheduling and automated incremental processing to ensure that as content is added, modified, or even deleted, the changes are propagated to the destination system quickly and automatically
- Convention jobs that make it easy for an administrator to create a handful of “parent” jobs that automatically spawn thousands of child jobs.
- Comprehensive support for both inclusion and exclusion filter criteria
The Bottom Line on Microsoft Migration Manager
The bottom line is that Microsoft Migration Manager is an excellent free tool from Microsoft. It does a good job of addressing “the 80%” of migration tasks out there. If you need to execute up to a couple of hundred jobs, you can deploy four or five agents and let it rip. Performance and reliability are very good. This makes the tool ideal for most small and medium migration projects. It can even handle large migrations where there are relatively few jobs with a lot of content when maximum throughput is not essential.
However, there are times when there is a hidden cost to a “free” tool. When manual tasks create a burden on your staff, when increased project duration results in more billable hours for consultants, when the free option results in additional hardware costs, or when you are up against a licensing renewal deadline, it can actually save you money to pay for a more feature-rich tool. When you need better throughput on less hardware or some of those important enterprise-class features, consider an enterprise-class migration engine.