你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
管理Azure 存储 Mover 终结点
本文内容
虽然术语终结点 通常用于网络,但它用于存储 Mover 服务的上下文中,用于描述具有较高详细信息的存储位置。
存储移动器终结点是一个资源,其中包含源位置或目标位置的路径和其他相关信息。 终结点用于创建作业定义,以定义特定复制操作的源和目标位置。 只能将某些类型的终结点分别用作源或目标。 例如,NFS(网络文件系统)文件共享终结点中包含的数据只能复制到 Blob 存储容器。 同样,使用基于 SMB 的(服务器消息块)文件共享目标的复制操作只能迁移到 Azure 文件共享,
本文将指导你创建和管理Azure 存储 Mover 终结点。 若要遵循这些示例,需要顶级存储移动器资源。 如果尚未创建一个,请按照“创建存储 Mover 资源”一文中的 步骤操作,然后继续操作。
完成本文中的步骤后,你将能够使用 Azure 门户 和 Azure PowerShell 创建和管理终结点。
终结点资源概述
在Azure 存储 Mover 资源层次结构中,迁移项目用于将迁移作业组织到逻辑任务或组件中。 迁移项目又包含至少一个作业定义,其中描述了迁移项目的源位置和目标位置。 了解 存储 Mover 资源层次结构 文章包含有关存储 Mover、终结点及其项目之间的关系的更多详细信息。
由于迁移需要定义完善的源和目标,因此终结点将父级到顶级存储移动器资源。 通过此位置,可以在任意数量的作业定义中重复使用终结点。 虽然只有单个终结点资源存在,但每个终结点的属性可能会因类型而异。 例如,NFS(网络文件系统)共享、SMB 共享和Azure 存储 blob 容器终结点都需要基本不同的信息。
当前Azure 存储 Mover 版本支持特定源目标对组合的完全保真迁移。 始终利用最新的代理版本从这些受支持的源和目标中受益:
源协议
目标
注释
SMB 2.x 装载
Azure 文件共享 (SMB)
目前不支持 SMB 1.x 源和 NFS Azure 文件共享。
NFS 3 和 4 装载
Azure Blob 存储容器
支持启用了“分层命名空间服务(HNS)”功能的容器,ADLS Gen2 REST API 集用于迁移。
SMB 终结点
SMB 使用 ACL(访问控制列表)概念和基于用户的身份验证为所选用户提供对共享文件的访问权限。 为了保持安全性,存储 Mover 依赖于 Azure 密钥库集成来安全地存储和严格控制对用户凭据和其他机密的访问。 在迁移过程中,存储移动器代理资源使用密钥库机密(而不是不安全的硬编码凭据)连接到 SMB 终结点。 此方法大大减少了机密可能被意外泄露的可能性。
配置本地文件共享源后,请将用户名和密码的机密添加到密钥库。 创建 SMB 终结点时,需要同时提供密钥库的名称或统一资源标识符(URI)以及凭据机密的名称或 URI。
通过 Azure RBAC(基于角色的访问控制)授权系统控制对密钥库和目标存储资源的代理访问。 通过此系统,可以根据与托管标识、安全主体和资源关联的属性定义访问权限。 请务必注意,在Azure 门户中创建 SMB 终结点时,会自动应用所需的 RBAC 角色分配。 但是,以编程方式创建的任何终结点都需要手动进行以下分配:
角色
资源
Key Vault 机密用户
用于存储 SMB 源凭据的密钥库资源
存储文件数据特权参与者
目标文件共享资源
有许多用例需要保留元数据值,例如文件和文件夹时间戳、ACL 和文件属性。 存储 Mover 支持与基础 Azure 文件共享相同的文件保真度级别。 Azure 文件存储又支持 NTFS 文件属性 的 子集。 下表表示已迁移的常见元数据:
元数据属性
成果
目录结构
源的原始目录结构保留在目标共享上。
访问权限
对源文件或目录的权限保留在目标共享上。
符号链接
源上的符号链接会保留并在目标共享上映射。
创建时间戳
源文件的原始创建时间戳保留在目标共享上。
更改时间戳
源文件的原始更改时间戳保留在目标共享上。
修改时间戳
源文件的原始修改时间戳保留在目标共享上。
上次访问时间戳
目标共享上的文件或目录不支持此上次访问时间戳。
其他元数据
如果目标共享支持源项,则会保留源项的其他元数据。
NFS 终结点
使用 NFS 协议,可以在运行 Windows 和其他非 Windows 操作系统(如 Linux 或 UNIX)的计算机之间传输文件。 当前的 Azure 存储 Mover 版本仅支持从网络内 NAS 或服务器设备上的 NFS 共享迁移到 Azure Blob 容器。
与 SMB 不同,NFS 不使用 ACL 概念或基于用户的身份验证。 这种差异允许在没有 Azure 密钥库集成的情况下访问 NFS 终结点。 此外,存储 Mover 会以不同的方式处理 NFS 装载源及其 Blob 容器目标对应项的元数据。 下表标识迁移期间遇到的常见元数据的结果:
元数据属性
成果
目录结构
Blob 容器没有传统的文件系统,而是支持“虚拟文件夹”。文件夹内文件的路径位于文件名前面,并放置在 Blob 容器中的平面列表中。 空文件夹表示为目标容器中的空 Blob。 与文件一样,源文件夹的元数据将保留在此 blob 的自定义元数据字段中。
访问权限
源文件的权限保留在自定义 Blob 元数据中,但无法像在源中一样工作。
符号链接
如果可以解析目标文件符号链接,则会迁移目标文件。 无法解析的符号链接将记录为失败的文件。
创建时间戳
源文件的原始时间戳保留为自定义 Blob 元数据。 blob 本机时间戳反映文件迁移的时间。
更改时间戳
源文件的原始时间戳保留为自定义 Blob 元数据。 此类型没有 Blob 本机时间戳。
修改时间戳
源文件的原始时间戳保留为自定义 Blob 元数据。 blob 本机时间戳反映文件迁移的时间。
上次访问的时间戳
如果时间戳存在于源文件上,此时间戳将保留为自定义 Blob 元数据。 此类型没有 Blob 本机时间戳。
其他元数据
如果目标 Blob 存在于源项上,则其他元数据将保留在目标 blob 的自定义元数据字段中。 只能存储 4 KiB 的元数据。 不会迁移较大大小的元数据。
创建终结点
在创建作业定义之前,需要为源和目标数据源创建终结点。
重要
如果尚未使用资源提供程序部署存储 Mover 资源,则需要在尝试此示例中的步骤之前创建顶级资源。
Azure 存储 Mover 支持使用 NFS 和 SMB 协议的迁移方案。 创建这两个终结点的步骤类似。 创建已启用 NFS 和 SMB 的终结点之间的主要区别在于,使用 Azure 密钥库存储 SMB 资源的共享凭据。 运行迁移作业时,代理将使用存储在密钥库中的共享凭据。 通过向代理的托管标识授予 RBAC 角色分配来管理对密钥库机密的访问权限。
创建源终结点
源终结点标识从中迁移数据的位置。 源终结点用于定义迁移项目中指定的数据的源。 Azure 存储 Mover 以文件共享的形式处理源位置。 这些位置可能驻留在网络连接存储(NAS)、服务器,甚至位于工作站上。 文件共享的常见协议是 SMB(服务器消息块)和 NFS(网络文件系统)。
以下步骤介绍了创建源终结点的过程。
在Azure 门户 中,导航到存储移动器 资源页。 从导航窗格中选择存储终结点 以访问终结点。
在“存储终结点 ”页上,默认存储终结点 视图显示任何预配的源终结点的名称及其关联属性的摘要。 可以选择 目标终结点 以查看相应的目标终结点。 还可以通过选择 协议版本 或 主机 筛选器并选择适当的选项来进一步筛选结果。
选择“创建终结点” 以展开“终结点类型 ”菜单。 选择“ 创建源终结点 ”以打开“ 创建源终结点 ”窗格,如下图所示。
在 “创建源终结点 ”窗格中,提供所需的 主机名或 IP 和 共享名称 值的值。 主机名或 IP 地址值必须是 IPv4 地址或完全限定的域或主机名。
重要
根据 DNS 配置,可能需要使用完全限定的域名(FQDN),而不是主机名。
还可以添加最大长度为 1024 个字符的可选 Description 值。 接下来,选择“协议版本” 以展开协议选择菜单,并为源目标选择相应的选项。
存储 mover 代理使用存储在密钥库中的机密连接到 SMB 终结点。 创建 SMB 源终结点时,需要同时提供包含机密和机密本身名称的密钥库的名称。
首先,选择 Key Vault 以展开菜单,然后选择包含机密的密钥库的名称。 你可以提供一个值,以便在必要时筛选密钥库列表。
选择适当的密钥库后,可以为所需的用户名选择机密 提供值,并为密码 字段选择机密。 可以通过向机密提供 URI 或从列表中选择机密来提供这些值。 选择 “选择机密 ”按钮以启用菜单,然后选择用户名和密码值。 或者,可以从 URI 选项启用 Enter 机密,并为用户名和密码机密提供相应的 URI。
主机和共享名称的值将串联成完整的迁移源路径。 路径值显示在 “完整源路径 ”字段中。 复制提供的路径,并在提交更改之前验证是否可访问该路径。 最后,确认所有值正确且可以访问源路径后,选择“创建” 以添加新终结点。
新终结点已部署,现在显示在源终结点列表中,如下图所示。
和 New-AzStorageMoverSmbEndpoint
New-AzStorageMoverNfsEndpoint
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 的更多帮助,请参阅“安装 Azure PowerShell ”一文。
注意
不支持重命名终结点资源。 最好确保已正确命名项目,因为预配项目后将无法更改大部分终结点名称。 但是,可以选择创建具有相同属性和不同名称的新终结点,如后面的部分所示。 请参阅资源命名约定 以选择受支持的名称。
建议创建并使用变量来存储冗长或可能复杂的字符串。
重要
根据 DNS 配置,可能需要使用完全限定的域名(FQDN),而不是主机名。
复制示例代码块并提供所需参数的值。 参数-Description
是可选的,在“视图”和“编辑终结点的属性”部分中添加 。
## Set variables
$subscriptionID = "[Subscription GUID]"
$resourceGroupName = "[Resource group name]"
$storageMoverName = "[Storage mover resource's name]"
$sourceHost = "[Source share's host name or IP address]"
$sourceShare = "[Source share's name]"
$targetResourceID = "/subscriptions/[GUID]/resourceGroups/demoResrouceGroup/"
$targetResourceID += "providers/Microsoft.Storage/storageAccounts/demoAccount"
## For SMB endpoints
$smbFileshare = "[Target fileshare name]"
$usernameURI = "https://demo.vault.azure.net/secrets/demoUser"
$passwordURI = "https://demo.vault.azure.net/secrets/demoPassword"
## For NFS endpoints
$nfsContainer = "[Blob container target]"
使用 Connect-AzAccount
cmdlet 连接到 Azure 帐户。 通过为 -Subscription
参数提供值来指定订阅的 ID,如示例中所示。
Connect-AzAccount -Subscription $subscriptionID
成功连接后,可以创建新的源终结点资源。 根据要求,可以使用 New-AzStorageMoverSmbEndpoint
cmdlet 创建 SMB 终结点,如以下示例所示。
New-AzStorageMoverSmbEndpoint `
-Name "smbSourceEndpoint"
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Host $sourceHost `
-ShareName $sourceShare `
-CredentialsUsernameUri $usernameURI `
-CredentialsPasswordUri $passwordURI
或者,可以使用 cmdlet 创建新的 NFS 源终结点 New-AzStorageMoverNfsEndpoint
,如下所示。
New-AzStorageMoverNfsEndpoint `
-Name "nfsSourceEndpoint" `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Host $sourceHost `
-Export $sourceShare `
以下示例响应包含属性 ProvisioningState
,该属性指示已成功创建终结点。
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/
storageMovers/demoMover/endpoints/smbTargetEndpoint
Name : demoTarget
Property : {
"endpointType": "AzureStorageSmbFileShare",
"description": "",
"provisioningState": "Succeeded",
"storageAccountResourceId": "/subscriptions/[GUID]/
resourceGroups/demoResourceGroup/providers/Microsoft.Storage/
storageAccounts/contosoeuap",
"fileShareName": "demoFileshare"
}
SystemDataCreatedAt : 6/22/2023 1:19:00 AM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 6/22/2023 1:19:00 AM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/endpoints
创建目标终结点
目标终结点标识数据迁移到的位置。 Azure 提供各种类型的云存储。 文件迁移到 Azure 的一个重要方面是确定哪个 Azure 存储选项适合你的数据。 文件和文件夹的数量及其目录结构、访问协议、文件保真度和其他方面是完整的云解决方案设计的重要输入。
如果需要有关为云解决方案设计选择合适的 Azure 目标存储的帮助,请参阅 云迁移基础知识 一文。
以下步骤描述创建目标终结点的过程。
在Azure 门户 中,导航到存储移动器 资源页。 从导航窗格中选择存储终结点 以访问终结点。
在“存储终结点 ”页上,默认存储终结点 视图显示任何预配的源终结点的名称及其关联属性的摘要。 选择“目标终结点” 以查看现有目标终结点。 可以通过选择存储帐户 筛选器和适当的选项进一步筛选结果。
选择“创建终结点” 以展开“终结点类型 ”菜单。 选择“ 创建目标终结点 ”以打开 “创建目标终结点 ”窗格,如下图所示。
在“创建目标终结点 ”窗格中,分别从“订阅 ”和“存储帐户”列表中选择订阅和 目标存储帐户。 接下来,选择对应于目标终结点的相应 目标类型 选项。
当前Azure 存储 Mover 版本支持特定源目标对组合的完全保真迁移。 始终利用最新的代理版本从这些受支持的源和目标中受益:
源协议
目标
注释
SMB 2.x 装载
Azure 文件共享 (SMB)
目前不支持 SMB 1.x 源和 NFS Azure 文件共享。
NFS 3 和 4 装载
Azure Blob 存储容器
支持启用了“分层命名空间服务(HNS)”功能的容器,ADLS Gen2 REST API 集用于迁移。
根据所选的目标类型,从相应的下拉列表中选择 Blob 容器 或 文件共享 。 最后,可以为长度最多为 1024 个字符的目标添加可选 Description 值,然后选择“创建” 以部署终结点。
新终结点已部署,现在显示在终结点列表中,如以下示例图像所示。
若要创建新的 SMB 文件共享,请使用 New-AzStorageMoverAzStorageSmbFileShareEndpoint
cmdlet,如以下示例所示。
New-AzStorageMoverAzStorageSmbFileShareEndpoint `
-Name "smbTargetEndpoint" `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-StorageAccountResourceId $targetResourceID `
-FileShareName $targetFileshare
New-AzStorageMoverAzStorageContainerEndpoint
使用 PowerShell cmdlet 创建新的 NFS Blob 容器。 以下示例提供预配指南。
New-AzStorageMoverAzStorageContainerEndpoint `
-Name "nfsTargetEndpoint" `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-BlobContainerName $targetEpContainer `
-StorageAccountResourceId $targetResourceID `
以下示例响应包含属性 ProvisioningState
,该属性指示已成功创建终结点。
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/
storageMovers/demoMover/endpoints/smbTargetEndpoint
Name : demoTarget
Property : {
"endpointType": "AzureStorageSmbFileShare",
"description": "",
"provisioningState": "Succeeded",
"storageAccountResourceId": "/subscriptions/[GUID]/
resourceGroups/demoResourceGroup/providers/Microsoft.Storage/
storageAccounts/contosoeuap",
"fileShareName": "demoFileshare"
}
SystemDataCreatedAt : 6/22/2023 1:19:00 AM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 6/22/2023 1:19:00 AM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/endpoints
查看和编辑终结点的属性
根据用例,可能需要检索特定终结点或所有终结点资源的完整列表。 可能还需要添加或编辑终结点的说明。
按照本部分中的步骤查看存储 Mover 资源可访问的终结点。
若要使用“导航到Azure 门户 ”创建终结点,请导航到存储移动器 资源页。 从导航窗格中选择存储终结点 以访问终结点,如示例图像中所示。
在“存储终结点 ”页上,默认存储终结点 视图显示任何预配的源终结点的名称及其关联属性的摘要。 若要查看预配的目标终结点,请选择“ 目标终结点 ”。 可以通过选择 协议 或 主机 筛选器和相关选项进一步筛选结果。
目前,Azure 门户不支持直接修改预配的终结点。 但是,可以按照以下示例使用 Azure PowerShell 修改终结点的说明。 应在Azure 门户中删除并重新创建需要更新的终结点资源。
Get-AzStorageMoverEndpoint
使用 cmdlet 检索终结点资源的列表。 (可选)可以提供用于 -Name
检索特定资源的参数值。 调用不带可选参数的 cmdlet 将返回与存储移动器资源关联的所有预配终结点的列表。
以下示例通过指定 demoTarget 名称值检索特定的项目资源。
Get-AzStorageMoverEndpoint `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Name "demoTarget"
示例响应包含指定项目的属性,包括空 Description
属性。
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/
storageMovers/demoMover/endpoints/smbTargetEndpoint
Name : demoTarget
Property : {
"endpointType": "AzureStorageSmbFileShare",
"description": "",
"provisioningState": "Succeeded",
"storageAccountResourceId": "/subscriptions/[GUID]/
resourceGroups/demoResourceGroup/providers/Microsoft.Storage/
storageAccounts/contosoeuap",
"fileShareName": "demoFileshare"
}
SystemDataCreatedAt : 6/22/2023 1:19:00 AM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 6/22/2023 1:19:00 AM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/endpoints
可以通过包括管道运算符和 cmdlet,将缺少的说明添加到上一示例中返回的 Update-AzStorageMoverAzStorageSmbFileShareEndpoint
终结点。 以下示例使用参数提供缺少 的 SMB 文件共享终结点 值 -Description
。
Get-AzStorageMoverEndpoint `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Name "demoTarget" | `
Update-AzStorageMoverAzStorageSmbFileShareEndpoint `
-Description "SMB fileshare endpoint"
响应现在包含更新 Description
的属性值。
Id : /subscriptions/<GUID>/resourceGroups/
demoResourceGroup/providers/Microsoft.StorageMover/
storageMovers/demoMover/endpoints/smbTargetEndpoint
Name : demoTarget
Property : {
"endpointType": "AzureStorageSmbFileShare",
"description": "SMB fileshare endpoint",
"provisioningState": "Succeeded",
"storageAccountResourceId": "/subscriptions/[GUID]/
resourceGroups/demoResourceGroup/providers/Microsoft.Storage/
storageAccounts/contosoeuap",
"fileShareName": "demoFileshare"
}
SystemDataCreatedAt : 6/22/2023 1:19:00 AM
SystemDataCreatedBy : user@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 6/22/2023 1:19:00 AM
SystemDataLastModifiedBy : user@contoso.com
SystemDataLastModifiedByType : User
Type : microsoft.storagemover/storagemovers/endpoints
删除终结点
在生产环境中,删除终结点资源应该是相对罕见的,但有时可能会有所帮助。 若要删除存储 Mover 终结点资源,请遵循提供的示例。
警告
删除终结点是永久操作,无法撤消。 最好确保已准备好删除终结点,因为稍后将无法还原终结点。
若要使用Azure 门户 删除终结点,请导航到存储移动器 资源页。 从导航窗格中选择存储终结点 以访问终结点,如下图所示。
默认 的 “源终结点”视图显示任何预配的源终结点的名称及其关联数据的摘要。 可以选择 “目标终结点 ”筛选器以查看相应的目标终结点。
找到要删除的终结点的名称,然后选择相应的检查框。 验证是否已选择适当的终结点后,选择“删除” ,如下图所示。
新终结点被删除,不再显示在终结点列表中,如以下示例图像中所示。
Remove-AzStorageMoverEndpoint
使用此方法永久删除终结点资源。 使用参数提供终结点的名称-Name
,以及具有参数-StorageMoverName
的-ResourceGroupName
资源组和存储移动器资源名称。
Remove-AzStorageMoverEndpoint `
-ResourceGroupName $resourceGroupName `
-StorageMoverName $storageMoverName `
-Name "demoTarget"
后续步骤
创建一个项目来整理需要一起迁移的不同源共享。