Skip to content

Commit 2efcf3b

Browse files
authored
Merge pull request #200987 from stevenmatthew/storage-mover
Storage Mover: initial publication
2 parents c04f25c + af40af9 commit 2efcf3b

File tree

88 files changed

+1792
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1792
-0
lines changed

articles/storage-mover/TOC.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
items:
2+
- name: Azure Storage Mover documentation
3+
href: ./index.yml
4+
- name: Overview
5+
items:
6+
- name: What is Azure Storage Mover?
7+
href: service-overview.md
8+
- name: Cloud migration basics
9+
href: migration-basics.md
10+
expanded: true
11+
- name: Concepts
12+
items:
13+
- name: Planning for a deployment
14+
href: deployment-planning.md
15+
- name: Resource hierarchy
16+
href: resource-hierarchy.md
17+
- name: Migration costs
18+
href: billing.md
19+
- name: Performance targets
20+
href: performance-targets.md
21+
- name: How-To
22+
items:
23+
- name: Deploy
24+
items:
25+
- name: Create a storage mover resource
26+
href: storage-mover-create.md
27+
- name: Deploy a storage mover agent
28+
href: agent-deploy.md
29+
- name: Manage
30+
items:
31+
- name: Register or unregister an agent
32+
href: agent-register.md
33+
- name: Manage projects
34+
href: project-manage.md
35+
- name: Decommission
36+
items:
37+
- name: Unregister an agent
38+
href: agent-deploy.md#decommissioning-an-agent
39+
expanded: true
40+
- name: Resources
41+
items:
42+
- name: Release notes
43+
href: release-notes.md
44+
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
---
2+
title: How to deploy an Azure Storage Mover agent. #Required; page title is displayed in search results. Include the brand.
3+
description: Learn how to deploy an Azure Mover agent #Required; article description that is displayed in search results.
4+
author: stevenmatthew
5+
ms.author: shaas
6+
ms.service: storage-mover
7+
ms.topic: how-to
8+
ms.date: 09/12/2022
9+
---
10+
11+
<!--
12+
!########################################################
13+
STATUS: IN REVIEW
14+
15+
CONTENT: final
16+
17+
REVIEW Stephen/Fabian: COMPLETE
18+
REVIEW Engineering: not reviewed
19+
EDIT PASS: started
20+
21+
Initial doc score: 83
22+
Current doc score: 96 (1915 words and 0 issues)
23+
24+
!########################################################
25+
-->
26+
27+
# Deploy an Azure Storage Mover agent
28+
29+
The Azure Storage Mover service utilizes agents to perform the migration jobs you configure in the service. An agent is a virtual machine-based migration appliance that runs on a virtualization host. Ideally, your virtualization host will be located as near as possible to the source storage to be migrated.
30+
31+
Because the agent is essentially a migration appliance, you'll interact with it through an agent-local administrative shell. The shell limits the operations you can perform on this machine, though network configuration and troubleshooting tasks are accessible.
32+
33+
Use of the agent in migrations is managed through Azure. Both Azure PowerShell and CLI are supported, and graphical interaction is available within the Azure portal. The agent is made available as a disk image compatible with new Windows Hyper-V virtual machines (VM).
34+
35+
This article will guide you through the steps necessary to successfully deploy a Storage Mover agent VM.
36+
37+
## Prerequisites
38+
39+
- A capable Windows Hyper-V host on which to run the agent VM. See the [Recommended compute and memory resources](#recommended-compute-and-memory-resources) section in this article for details about resource requirements for the agent VM.
40+
41+
> [!NOTE]
42+
> During public preview, Windows Hyper-V is the only supported virtualization environment for your agent VM. Other virtualization environments have not been tested and are not supported at this time.
43+
44+
## Download the agent VM image
45+
46+
The image is hosted on Microsoft Download Center as a zip file. Download the file at [https://aka.ms/StorageMover/agent](https://aka.ms/StorageMover/agent) and extract the agent virtual hard disk (VHD) image to your virtualization host.
47+
48+
## Determine required resources for the VM
49+
50+
Like every VM, the agent requires available compute, memory, and storage space resources on the host. Although overall data size may affect the time required to complete a migration, it's generally the number of files and folders that drives resource requirements.
51+
52+
### Recommended compute and memory resources
53+
54+
|Migration scale* |Memory (RAM) |Virtual processor count cores (at 2 GHz min.) |
55+
|------------------------|--------------|----------------------------------------------|
56+
| 1 million items | 8 GiB | 4 virtual cores |
57+
| 10 million items | 8 GiB | 4 virtual cores |
58+
| 30 million items | 12 GiB | 6 virtual cores |
59+
| 50 million items | 16 GiB | 8 virtual cores |
60+
|100 million items | 16 GiB | 8 virtual cores |
61+
62+
**Number of items refers to the total number of files and folders in the source.*
63+
64+
> [!IMPORTANT]
65+
> While agent VMs below minimal specs may work for your migration, they may not perform optimally.
66+
67+
The [Performance targets](performance-targets.md) article contains test results from different source namespaces and VM resources.
68+
69+
### Local storage capacity
70+
71+
At a minimum, the agent image needs 20 GiB of local storage. The amount required may increase if a large number of small files are cached during a migration.
72+
73+
## Create the agent VM
74+
75+
1. Create a new VM to host the agent. Open **Hyper-V Manager**. In the **Actions** pane, select **New** and **Virtual Machine...** to launch the **New Virtual Machine Wizard**.
76+
:::image type="content" source="media/agent-deploy/agent-vm-create-sml.png" alt-text="Image showing how to launch the New Virtual Machine Wizard from within the Hyper-V Manager." lightbox="media/agent-deploy/agent-vm-create-lrg.png":::
77+
78+
1. Within the **Specify Name and Location** pane, specify values for the agent VM's **Name** and **Location** fields. The location should match the folder where the VHD is stored, if possible. Select **Next**.
79+
:::image type="content" source="media/agent-deploy/agent-name-select-sml.png" alt-text="Image showing the location of the Name and Location fields within the New Virtual Machine Wizard." lightbox="media/agent-deploy/agent-name-select-lrg.png":::
80+
81+
1. Within the **Specify Generation** pane, select the **Generation 1** option.
82+
83+
:::image type="content" source="media/agent-deploy/agent-vm-generation-select-sml.png" lightbox="media/agent-deploy/agent-vm-generation-select-lrg.png" alt-text="Image showing the location of the VM Generation options within the New Virtual Machine Wizard.":::
84+
85+
> [!IMPORTANT]
86+
Only *Generation 1* VMs are supported. This Linux image won't boot as a *Generation 2* VM.
87+
88+
1. If you haven't already, [determine the amount of memory you'll need for your VM](#determine-required-resources-for-the-vm). Enter this amount in the **Assign Memory** pane, noting that you need to enter the value in MiB. 1 GiB = 1024 MiB. Using the **Dynamic Memory** feature is fine.
89+
:::image type="content" source="media/agent-deploy/agent-memory-allocate-sml.png" lightbox="media/agent-deploy/agent-memory-allocate-lrg.png" alt-text="Image showing the location of the Startup Memory field within the New Virtual Machine Wizard.":::
90+
91+
1. Within the **Configure Networking** pane, select the **Connection** drop-down. From the list, choose the virtual switch that will provide the agent with internet connectivity and select **Next**. For more information, see the [Hyper-V virtual networking documentation](/windows-server/networking/sdn/technologies/hyper-v-network-virtualization/hyperv-network-virtualization-overview-windows-server) for details.
92+
:::image type="content" source="media/agent-deploy/agent-networking-configure-sml.png" lightbox="media/agent-deploy/agent-networking-configure-lrg.png" alt-text="Image showing the location of the network Connection field within the New Virtual Machine Wizard.":::
93+
94+
1. Within the **Connect Virtual Hard Disk** pane, select the **Use an existing Virtual Hard Disk** option. In the **Location** field, select **Browse** and navigate to the VHD file that was extracted in the previous steps. Select **Next**.
95+
:::image type="content" source="media/agent-deploy/agent-disk-connect-sml.png" lightbox="media/agent-deploy/agent-disk-connect-lrg.png" alt-text="Image showing the location of the Virtual Hard Disk Connection fields within the New Virtual Machine Wizard.":::
96+
97+
1. Within the **Summary** pane, select **Finish** to create the agent VM.
98+
:::image type="content" source="media/agent-deploy/agent-configuration-details-sml.png" lightbox="media/agent-deploy/agent-configuration-details-lrg.png" alt-text="Image showing the user-assigned values in the Summary pane of the New Virtual Machine Wizard.":::
99+
100+
1. After the new agent is successfully created, it will appear in the **Virtual Machines** pane within the **Hyper-V Manager**.
101+
:::image type="content" source="media/agent-deploy/agent-created-sml.png" lightbox="media/agent-deploy/agent-created-lrg.png" alt-text="Image showing the agent VM deployed within the New Virtual Machine Wizard.":::
102+
103+
## Change the default password
104+
105+
The agent is delivered with a default user account and password. Immediately after deploying and starting the agent VM, connect to it and change the default password!
106+
107+
[!INCLUDE [agent-shell-connect](includes/agent-shell-connect.md)]
108+
109+
## Bandwidth throttling
110+
111+
A general consideration when deploying new machines in a network is the amount of bandwidth they'll use. Any Azure Storage Mover agent will use all available network bandwidth on the local network (source share to agent) and the WAN link (agent to Azure Storage).
112+
113+
> [!IMPORTANT]
114+
> The current Azure Storage Mover agent does not support bandwidth throttling schedules.
115+
116+
If bandwidth throttling is important to you, consider creating a local virtual network (VNet) with network quality of service (QoS) settings and an internet connection. Then expose the agent to the internet through this VNet. An unauthenticated network proxy server can also be configured locally on the agent.
117+
118+
## Decommissioning an agent
119+
120+
When you no longer need a specific storage mover agent, you can decommission it.
121+
During public review, decommissioning is a two-step process:
122+
123+
1. The agent needs to be unregistered from the storage mover resource.
124+
1. Stop and delete the agent VM on your virtualization host.
125+
126+
Decommissioning an agent starts with unregistering the agent. There are three options to start the unregistration process:
127+
128+
# [Agent administrative shell](#tab/xdmshell)
129+
130+
You can unregister an agent using the administrative shell of the agent VM. The agent must be connected to the service and showing online both locally and through Azure portal and either Azure PowerShell or Azure CLI.
131+
132+
[!INCLUDE [agent-shell-connect](includes/agent-shell-connect.md)]
133+
134+
```StorageMoverAgent-AdministrativeShell
135+
1) System configuration
136+
2) Network configuration
137+
3) Service and job status
138+
4) Unregister
139+
5) Open restricted shell
140+
6) Collect support bundle
141+
7) Restart agent
142+
8) Exit
143+
144+
xdmsh> 4
145+
```
146+
147+
Select the option **4) Unregister**. You'll be prompted for confirmation.
148+
149+
> [!WARNING]
150+
> Unregistration stops any running migration job on the agent and permanently removes the agent from the pool of available migration agents. Re-registration of a previously registered agent VM is not supported in public preview. If you need a new agent, you must use a new agent image that was never registered before and register this new agent VM. Do not reuse a previously unregistered agent VM.
151+
152+
# [Azure portal](#tab/azure-portal)
153+
154+
You can unregister an agent in the Azure portal by navigating to your storage mover resource the agent is registered with.
155+
156+
- Select **Registered agents** in the main navigation menu.
157+
- Select the agent to be decommissioned. The agent details pane opens.
158+
- Select **Unregister agent** and wait for the operation to complete.
159+
160+
> [!WARNING]
161+
> Unregistration stops any running migration job on the agent and permanently removes the agent from the pool of available migration agents. Re-registration of a previously registered agent VM is not supported in public preview. If you need a new agent, you must use a new agent image that was never registered before and register this new agent VM. Do not reuse a previously unregistered agent VM.
162+
163+
# [PowerShell](#tab/powershell)
164+
165+
You can unregister an agent using the Az PowerShell. As a prerequisite, ensure that you have the latest version of PowerShell on your machine, and also the latest versions of the Az and Az.StorageMover PowerShell modules installed.
166+
167+
```powershell
168+
Login-AzAccount -subscriptionId <YourSubscriptionId> #log into the Azure subscription that contains the storage mover resource the agent is registered with.
169+
Unregister-AzStorageMoverAgent -ResourceGroupName <YourResourceGroupName> -StorageMoverName <YourStorageMoverName> -AgentName <YourAgentName>
170+
```
171+
172+
*-Force* is an optional parameter, suppressing the confirmation prompt.
173+
174+
> [!WARNING]
175+
> Unregistration stops any running migration job on the agent and permanently removes the agent from the pool of available migration agents. Re-registration of a previously registered agent VM is not supported in public preview. New agent VMs must be created from a new agent image that has not been previously registered. Do not reuse a previously unregistered agent VM.
176+
177+
---
178+
179+
Several things take place during the unregistration process:
180+
181+
- The agent is removed from the storage mover resource. You'll no longer be able to see the agent in the *Registered agents* tab in the portal or select it for new migration jobs.
182+
- The agent is also removed from the Azure ARC service. This removal deletes the hybrid compute resource of type *Server - Azure Arc* that represented the agent with the Azure ARC service in the same resource group as your storage mover resource.
183+
- Unregistration removes the managed identity of the agent from Azure Active Directory (Azure AD). The associated service principal is automatically removed, invalidating any permissions this agent may have had on other Azure resources. If you check the role-based access control (RBAC) role assignments, for instance of a target storage container the agent previously had permissions to, you'll no longer find the service principal of the agent, because it was deleted. The assignment itself is still visible as "Unknown service principal" but this assignment no longer connects to an identity and can never be reconnected. It's simply a sign that a role assignment used to be here, of a service principal that no longer exists.
184+
185+
This behavior is standard, and not specific to Azure Storage Mover. You can observe the same behavior if you remove a different service principal from Azure AD and then check a former role assignment.
186+
187+
> [!WARNING]
188+
> During public preview, unregistration of an offline agent is supported but the agent's Azure ARC resource isn't automatically deleted. Instead, you'll need to manually delete the resource after unregistering an offline agent. The lifecycle of the agent's managed identity is tied to this resource. Removing it removes the managed identity and service principal, as previously described.
189+
190+
You can check that the unregistration process is complete when the agent disappears from the Azure portal and either Azure PowerShell or Azure CLI. You'll also need to confirm that the hybrid compute resource of type *Server - Azure Arc* is gone from the resource group.
191+
192+
You can also use the agent's administrative shell to check that the agent is unregistered. To verify unregistration, navigate to any submenu and then return to the top-level menu. If unregistration was successful, you'll see the menu option toggle from *Unregister* to *Register*. As previously mentioned, re-registering isn't supported during the public preview.
193+
194+
You can stop the agent VM on your virtualization host after the unregistration is complete. It's best to delete the agent VM image since it was previously registered, retains some state, and must not be used again. If you need a new agent, deploy a new VM with a new agent image that had never been registered before.
195+
196+
## Next steps
197+
198+
After you've deployed your agent VM, started it, and changed the default password of the local account:
199+
> [!div class="nextstepaction"]
200+
> [Register the agent with your storage mover Azure resource](agent-register.md)

0 commit comments

Comments
 (0)