存储移动程序项目用于将迁移作业整理到逻辑任务或组件中。 项目至少包含一个作业定义,作业定义描述项目的每个数据源和目标终结点。 了解存储移动程序资源层次结构一文中详细介绍了存储移动程序与其项目之间的关系。
定义项目时,最好将所有相互依赖的相关数据源添加到同一项目中,以便一起迁移。 应添加迁移单个工作负载所需的所有数据源,而不是在迁移计划中为每个数据源创建项目。 还可以选择为迁移计划中每组不同的数据源创建单个项目。
本文将指导你创建和管理 Azure 存储移动程序项目。 要遵循这些示例,需要一个顶层存储移动程序资源。 如果尚未创建该资源,请按照创建存储移动程序资源一文中的步骤创建,然后继续操作。
完成本文中的步骤后,你将能够使用 Azure 门户和 Azure PowerShell 创建和管理项目。
创建项目
定义迁移作业的第一步是创建项目资源。 创建项目后,可以为数据源添加源和目标终结点。 在此示例中,你将刻意留空“说明”字段。 将在本文稍后的查看和编辑项目属性部分添加该字段。
重要
如果尚未使用资源提供程序部署资源,则需要创建顶层资源。
注意
不支持重命名项目资源。 最好确保已正确命名项目,因为预配项目后将无法更改项目名称。
导航到 Azure 门户中的项目资源管理器页以访问项目。 默认的“全部项目”视图会显示所有预配项目的名称及其所含作业的摘要。
选择“创建项目”以打开“创建项目”窗格。 在“项目名称”字段中提供项目名称值,但将“项目说明”字段留空。 最后选择“创建”以预配项目。
创建项目时需要确定一个名称。 请参阅资源命名约定以选择受支持的名称。 说明是可选字段,且最多可以包含 1024 个单字节字符。
New-AzStorageMoverProject
cmdlet 用于在之前部署的存储移动程序资源中创建新项目。 如果尚未安装 Az.StorageMover
模块:
## Ensure you are running the latest version of PowerShell 7
$PSVersionTable.PSVersion
## Your local execution policy must be set to at least remote signed or less restrictive
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
## If you don't have the general Az PowerShell module, install it first
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
## Lastly, the Az.StorageMover module is not installed by default and must be manually requested.
Install-Module -Name Az.StorageMover -Scope CurrentUser -Repository PSGallery -Force
安装 Azure PowerShell 一文中提供了更多详细信息。
需要为所需的 -Name
、-ResourceGroupName
和 -StorageMoverName
参数提供值。 -Description
参数是可选的。
建议创建并使用变量来存储冗长或可能复杂的字符串。
## Set variables
$subscriptionID = "Your subscription ID GUID"
$resourceGroupName = "demoResourceGroup"
$storageMoverName = "demoMover"
$projectName = "demoProject"
$projectDescription = ""
使用 Connect-AzAccount
cmdlet 连接到 Azure 帐户。 通过为 -Subscription
参数提供值来指定订阅的 ID,如示例中所示。
Connect-AzAccount -Subscription $subscriptionID
成功连接后,可以使用 New-AzStorageMoverProject
cmdlet 创建新项目,如以下示例所示。
New-AzStorageMoverProject `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Name $projectName `
-Description $projectDescription
以下示例响应包含 ProvisioningState
属性,该属性的值指示已成功创建项目。
Description : This is a project used for demonstration.
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/storageMovers/
demoMover/projects/demoProject
Name : testingAgain
ProvisioningState : Succeeded
SystemDataCreatedAt : 8/17/2022 1:19:00 AM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 8/17/2022 1:19:00 AM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/projects
查看和编辑项目的属性
根据具体用例,可能需要检索特定项目或所有项目资源的完整列表。 可能还需要添加或编辑项目的说明。
按照本部分中的步骤查看可供存储移动程序资源访问的项目。
导航到 Azure 门户中的项目资源管理器页以查看可用项目的列表。 可以创建并应用筛选器来限制或调整视图。 若要缩小结果范围,可以继续添加更多筛选器。
也可以根据需要编辑或删除筛选器,如以下示例所示。 目前仅支持按名称筛选项目。
在项目资源管理器窗格或结果列表中,选择在上一部分中创建的项目的名称。 项目的属性和作业摘要数据显示在“详细信息”窗格中。
如果项目缺少有效说明,请选择“添加说明”以显示“编辑说明”窗格。
存在的说明将显示在“说明”标题下方。 选择说明旁边的“编辑”图标或“编辑说明”图标以显示编辑窗格。 下图显示了这两个图标的位置。
在编辑窗格中修改项目的说明。 在窗格底部,选择“保存”以提交更改。
使用 Get-AzStorageMoverProject
cmdlet 检索项目资源列表。 (可选)可以提供 -Name
参数值来检索特定的项目资源。 在不使用可选参数的情况下调用该 cmdlet,将返回资源组中所有预配项目的列表。
以下示例通过指定 demoProject 值检索特定项目资源。
Get-AzStorageMoverProject `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Name "demoProject"
下面的示例响应包含指定项目的属性,包括留空的 Description
。
Description :
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/storageMovers/
demoMover/projects/demoProject
Name : demoProject
ProvisioningState : Succeeded
SystemDataCreatedAt : 7/15/2022 6:22:51 PM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 8/16/2022 10:36:52 PM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/projects
若要将缺少的说明添加到 cmdlet 返回的项目,需要使用 Update-AzStorageMoverProject
cmdlet。 不过在本例中,-ResourceGroupName
、-StorageMoverName
和 -Name
都是必需的。 还需要通过 -Description
参数提供缺少的项目说明,如下例所示。
Update-AzStorageMoverProject `
-Name demoProject `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Description "Demo project managed with PowerShell."
可通过响应中包含的 ProvisioningState
确认项目已成功更新。
Description : Demo project managed with PowerShell.
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/storageMovers/
demoMover/projects/demoProject
Name : demoProject
ProvisioningState : Succeeded
SystemDataCreatedAt : 7/15/2022 6:22:51 PM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 8/24/2022 7:47:50 AM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/projects
删除项目
在生产环境中很少会删除项目资源,但在某些情况下,删除项目资源可能会很有帮助。 若要删除存储移动程序项目资源,请遵循我们提供的示例。
警告
删除项目是一项永久性操作,且不可撤销。 最好确保已准备好删除项目,因为以后无法还原该项目。
导航到 Azure 门户中的项目资源管理器页以查看项目及其所含作业的摘要。
首先,在“项目资源管理器”窗格或结果列表中选择要删除的项目的名称。 接下来,在“项目详细信息”窗格中选择“删除项目”。 最后,在“确认项目删除”对话框中选择“删除”,即可永久删除项目。 请根据需要参考下图中突出显示的选择情况。
警告
删除项目将删除所有包含的作业定义、其运行历史记录和结果。 对其中任何资源执行的删除操作都是永久性的,且无法撤消。 存储终结点不受影响。
使用 Remove-AzStorageMoverProject
永久删除项目资源。 使用 -Name
参数提供项目的名称,并分别使用 -ResourceGroupName
和 -StorageMoverName
参数提供资源组和存储移动程序资源名称。
Remove-AzStorageMoverProject `
-Name $projectName `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName
警告
删除项目将删除所有包含的作业定义、其运行历史记录和结果。 对其中任何资源执行的删除操作都是永久性的,且无法撤消。 存储终结点不受影响。
后续步骤
创建项目后,可以开始处理作业定义。