Taking a closer look at Azure Storage Mover Service

Introducing Azure Storage Mover, a fully managed migration service designed to help transfer your files and folders to Azure Storage with minimal disruption to the workload. This service is suitable for various migration scenarios, including lift-and-shift, and can be used for cloud migrations that require periodic repetition. With Azure Storage Mover, you can easily oversee and manage the migration of your globally distributed file shares from a single storage mover resource.

Azure Storage Mover’s latest version strictly supports particular source-to-destination migration paths. Refer to the table below for a comprehensive list of the supported scenarios.

ProtocolSourceTarget
SMBSMB File ShareAzure File Share
NFSNFS mountAzure Blob container
Migration Supported Scenarios

It is not possible to transfer data using other source-target combinations, such as an NFS share and an Azure file share, as it is not supported. Storage accounts with the enabled hierarchical namespace service (HNS) feature are also not supported now.

How does it work?:

If you need to migrate your shares, Azure Storage Mover has various management tools that can help. This is a hybrid cloud service, meaning it has both a cloud service component and an infrastructure component. The infrastructure component is managed by the service administrator in their corporate environment. For Storage Mover, this includes a migration agent that runs on a virtual machine deployed to a host near the source storage.

When transferring data via the SMB protocol with Storage Mover, the file accuracy remains at the same level as that of the Azure file share. This means the folder structure and metadata values are maintained, including file and folder timestamps, ACLs, and file attributes. If you’re moving data from an NFS source, empty folders will be represented as an empty blob in the target, with the source folder’s metadata preserved in the custom metadata field of the blob, just like for files.

A screenshot illustrating a source NFS share migrated through an Azure Storage Mover agent VM to an Azure Storage blob container.
Azure Storage Mover

By having one storage mover resource in your subscription, you can efficiently handle the migration of your source shares worldwide. It’s crucial to remember that the storage mover resource doesn’t take your files and folders. You need to install a migration agent near your source share to transfer your data to the chosen targets in Azure.

Things required before deployment:

Azure Subscription: To deploy Azure Storage Mover, you need cloud service components and at least one migration agent installed near the source file storage. A storage mover resource includes the cloud service component and can be deployed in your preferred Azure subscription and resource group. Choose a subscription in the same Azure Active Directory (Azure AD) tenant as the Azure storage accounts you plan to migrate.

Azure Region: Selecting a region for migration only affects where control messages are sent, and metadata is stored. The migrated data is transmitted directly from the agent to the target in Azure Storage without passing through the Storage Mover service or the resource in that region. This means that the proximity between the source, agent, and target storage is more crucial for migration performance than the location of the Storage Mover resource.

A diagram illustrating a migration's path by showing two arrows. The first arrow represents data traveling to a storage account from the source and agent, and a second arrow represents the management and control info to the storage mover resource and service.
Azure Storage Mover

Azure resources and providers:

When transferring files from other countries or regions, a single storage mover resource is imperative. This resource is equipped with one or more registered migration agents that are exclusive to the storage mover they are associated with. Only deploy multiple storage mover resources if you possess distinct sets of migration agents. Maintaining separate storage mover resources and agents enables you to uphold particular permissions for the administrators handling their respective source or target storage.

To use a service in an Azure subscription for the first time, its resource provider namespace must be registered with the selected subscription. This applies to Azure Storage Mover as well. A subscription Owner or Contributor can do the registration. Administrators with limited access can still deploy and use the Storage Mover service and its dependent resources by completing this registration process before deploying the storage mover resource. To subscribe, please register with the resource provider namespaces Microsoft.StorageMover and Microsoft.HybridCompute.

Azure Permissions: When using Azure Storage Mover, taking special care when considering the required permissions for different management scenarios is essential. This service relies solely on Role Based Access Control (RBAC) for both management actions (control plane) and accessing target storage (data plane).

Use CasesMinimal RBAC role
Register the subscription for the namespace provider.Subscription: Contributor
Deploy a storage mover resourceSubscription: Reader
Resource group: Contributor
Register an agentSubscription: Reader
Resource group: Contributor
Storage mover: Contributor
Start the migrationSubscription: Reader
Resource group: Contributor
Storage mover: Contributor
Target storage account: Owner
RBAC Roles

The detailed level of Azure Storage Mover:

Azure Storage Mover resource: When migrating data, the primary resource you must deploy in your chosen resource group is a storage mover resource. This resource controls all aspects of the service and your migration. Even for large migrations, one storage mover resource is usually enough. If you want to make the most of your agents and manage your migrations effectively, keeping all your help in the same storage mover instance is best. Remember that each migration agent can only be registered to one storage mover.

When using Storage Mover, multiple Azure resources come into play. To ensure a successful deployment, it’s essential to understand each resource, its purpose, and how to communicate your migration requirements to them effectively. This section will provide an overview of these resources and offer best practices for their utilization.

An image showing the hierarchical relationship of Storage Mover Azure resources further described in the article.
Azure Storage Mover resource hierarchy

Migration Project: Organizing your storage migrations into projects can help make the process more manageable and tailored to your needs. While the smallest migration unit is defined as one source moving to one target, data center migrations are usually more complex. Workloads may rely on multiple sources that need to be migrated together for a smooth transition to new cloud storage locations in Azure. This is crucial for timely failover and continuity.

Migration Agent: Storage Mover is a service that uses migration agents to help with migrations. The agent is a virtual machine that operates within your network. It is also a resource linked to the storage mover resource you have set up in your resource group. You can install multiple migration agent VMs and assign each a unique name to the same storage mover resource. If you need to migrate data from different locations, it is recommended that you install a migration agent close to the source storage you want to migrate.

Job Definition: A project contains a job definition that outlines the source, target, and migration settings for copying data from the specified source to the designated target in Azure. Once a job definition is created, the source and target information cannot be altered. However, the migration settings can be modified at any time. Any changes made will not affect a migration job that is currently running but will take effect during the next migration job. The job definition also keeps a historical record of past copy runs and their results.

Job Run: A job-run resource is automatically generated when you begin defining a job. This resource includes all the details the storage mover service requires for initiating a copy. During a standard migration, you may need to copy data from the source to the target multiple times. When you start a job, it gets saved as a job run. The job run captures the job definition and is provided to the chosen migration agent. The agent now possesses all the essential information about the source, target, and migration pattern to execute the previously specified migration.

When a job is run, it has a state, progress, and copy result information. The job run resource contains the essential details about the job. Additionally, the migration agent has a specialized telemetry channel enables it to store this information in the job-run help directly.

Storage Endpoint: Having clear source and target locations is essential to migrate data successfully. These locations are described by endpoints, which provide detailed information such as the storage path and other necessary data. Although there is only one endpoint resource, the properties of each endpoint may differ depending on the type of endpoint. For instance, NFS shares, SMB shares, and Azure Storage blob container endpoints require distinct information. Endpoints are crucial in creating a job definition, and only specific types of endpoints can be used as a source or target.

Pricing: The cost that applies for Azure Storage Mover usage has three components:

  1. Storage Mover service usage: The Azure Storage Mover service offers all its free features. However, there is a possibility of additional features and service improvements being added in future updates.
  2. Target storage usage: The billing method for Azure Storage targets dictates how charges are applied.
  3. Network usage: The overall cost of your migration can be affected by your upload bandwidth. The same charge applies to the bandwidth used by your migration as any other Azure-bound traffic. There is no premium specific to Storage Mover. Whether you incur upload charges depends on your network connection and provider agreements.