本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置使用 Microsoft Azure Blob Storage 的传输
使用 AWS DataSync,您可以在Microsoft Azure Blob Storage(包括 Azure Data Lake Storage Gen2 blob 存储)和以下 AWS 存储服务之间传输数据:
要设置此类传输,您需要为您的 Azure Blob Storage 创建一个位置。您可以将此位置用作传输源或传输目标位置。只有在 Azure Blob 和 Amazon EFS 或 Amazon 之间传输数据时 FSx,或者使用基本模式任务时,才需要 DataSync 代理。你不需要代理即可使用增强模式在 Azure Blob 和 Amazon S3 之间传输数据。
提供对您的 DataSync 访问权限 Azure Blob Storage
您的 DataSync 访问方式Azure Blob Storage取决于多个因素,包括您是向 blob 存储传输还是从 blob 存储进行传输,以及您使用的共享访问签名 (SAS) 令牌的类型。您的对象还必须位于 DataSync 可以使用的访问层中。
SAS 令牌
SAS 令牌指定您的 blob 存储的访问权限。(有关 SAS 的详细信息,请参阅 Azure Blob Storage文档
您可以生成 SAS 令牌以提供不同的访问级别。 DataSync 支持具有以下访问权限级别的令牌:
-
Account
-
容器
DataSync 所需的访问权限取决于令牌的范围。没有正确的权限可能会导致您的传输失败。例如,如果您要将带有标签的对象移至 Azure Blob Storage,但您的 SAS 令牌没有标签权限,则传输将不会成功。
用于账户级访问的 SAS 令牌权限
DataSync 需要具有以下权限的账户级访问令牌(取决于您是向还是从中Azure Blob Storage转移)。
容器级访问的 SAS 令牌权限
DataSync 需要具有以下权限的容器级访问令牌(取决于您是向还是从中Azure Blob Storage转移)。
SAS 过期策略
在您预计完成传输之前,请确保您的 SAS 不会过期。有关配置 SAS 过期策略的信息,请参阅 Azure Blob Storage 文档
如果 SAS 在转移期间过期,则 DataSync 无法再访问您的Azure Blob Storage位置。(您可能会看到无法打开目录
错误。) 如果发生这种情况,请使用新的 SAS 令牌更新您的位置并重新启动 DataSync 任务。
访问层
从中传输时Azure Blob Storage, DataSync 可以复制热层和冷层中的对象。对于存档访问层中的对象,必须先将这些对象重新水合到热层或冷层,然后才能复制它们。
传输到时Azure Blob Storage, DataSync 可以将对象复制到热、冷和存档访问层。如果您要将对象复制到存档访问层中,如果您正在尝试验证目标中的所有数据,则 DataSync 无法验证传输。
DataSync 不支持冷访问层。有关访问层的更多信息,请参阅 Azure Blob Storage文档
使用 Azure Blob Storage 传输的注意事项
在计划使用或从中Azure Blob Storage传输数据时 DataSync,需要记住一些事项。
成本
将数据移入或移出 Azure Blob Storage 的相关费用可能包括:
-
运行Azure虚拟机 (VM)
(如果您在中部署 DataSync 代理Azure) -
运行 A mazon EC2
实例(如果您在其中的 VPC 中部署 DataSync 代理 AWS) -
使用传输数据 DataSync
,包括与Azure Blob Storage 和 Amazon S3 相关的请求费用(如果 S3 是您的传输地点之一) -
将数据传入或传出 Azure Blob Storage
-
将数据存储在支持的AWS 存储服务中 DataSync
Blob 类型
DataSync 如何处理 blob 类型取决于你是向还是从中Azure Blob Storage传输。将数据移入 blob 存储时, DataSync 传输的对象或文件只能是块 blob。将数据移出 Blob 存储空间时, DataSync 可以传输块、页面和附加 blob。
有关 Blob 类型的更多信息,请参阅 Azure Blob Storage文档
AWS 区域 可用性
您可以在支持的任意AWS 区域 位置创建Azure Blob Storage转账地点 DataSync。
复制对象标签
在传 DataSync 入或传出时保留对象标签的能力Azure Blob Storage取决于以下因素:
-
对象标签的大小 — DataSync 无法传输标签超过 2 KB 的对象。
-
DataSync 是否配置为复制对象标签 — 默认情况下 DataSync 复制对象标签。
-
您的Azure存储账户使用的命名空间 — 如果您的Azure存储账户使用平面命名空间,则 DataSync 可以复制对象标签,但如果您的账户使用分层命名空间(的一项功能Azure Data Lake Storage Gen2),则无法复制对象标签。如果您尝试复制对象标签并且您的存储帐户使用分层命名空间,则 DataSync 任务将失败。
-
您的 SAS 令牌是否授权标记 – 复制对象标签所需的权限因令牌提供的访问级别而异。如果您尝试复制对象标签,但您的令牌没有正确的标记权限,则任务将失败。有关更多信息,请查看账户级访问令牌或容器级访问令牌的权限要求。
传输到 Amazon S3
传输到 Amazon S3 时, DataSync 不会传输Azure Blob Storage大于 5 TB 的对象或元数据大于 2 KB 的对象。
删除传输目标中的目录
传输到时Azure Blob Storage, DataSync 可以移除 blob 存储中传输源中不存在的对象。(您可以通过清除 DataSync 控制台中的 “保留已删除文件” 设置来配置此选项。 您的 SAS 令牌还必须具有删除权限。)
以这种方式配置传输时,如果您的存储帐户使用的是分层命名空间,则 DataSync 不会删除 blob Azure 存储中的目录。在这种情况下,必须手动删除目录(例如使用 Azure Storage Explorer
限制
在与 Azure Blob Storage 互相传输数据时,请记住以下限制:
-
DataSync 在某个位置创建一些目录以帮助您进行传输。如果Azure Blob Storage是目标位置,并且您的存储帐户使用分层命名空间,则您可能会注意到该文件夹中存在特定于任务的子目录(例如
task-000011112222abcde
)。/.aws-datasync
DataSync 通常会在传输后删除这些子目录。如果不这样做,只要任务未运行,您就可以自己删除这些特定任务的目录。 -
DataSync 不支持使用 SAS 令牌仅访问Azure Blob Storage容器中的特定文件夹。
-
您不能提供 DataSync 用于访问您的 blob 存储空间的用户委托 SAS 令牌。
创建 DataSync 代理(可选)
只有在 Azure Blob 和 Amazon EFS 或 Amazon 之间传输数据时 FSx,或者使用基本模式任务时,才需要 DataSync 代理。你不需要代理即可使用增强模式在 Azure Blob 和 Amazon S3 之间传输数据。本节介绍如何部署和激活代理。
提示
尽管您可以在 Amazon EC2 实例上部署代理,但使用Microsoft Hyper-V代理可能会减少网络延迟并提高数据压缩率。
您可以使用Microsoft Hyper-V映像直接在中Azure部署 DataSync 代理。
提示
先决条件
要准备 DataSync 代理并将其部署到中Azure,必须执行以下操作:
-
在本地机器上启用 Hyper-V。
-
安装 PowerShell
(包括 Hyper-V Module)。 -
安装 Azure CLI
。 -
安装 AzCopy
。
正在下载并准备您的代理
从 DataSync 控制台下载代理。在 Azure 中部署代理之前,必须将其转换为固定大小的虚拟硬盘 (VHD)。有关更多信息,请参阅 Azure 文档
下载并准备您的代理
打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/
。 -
在左侧的导航窗格中,选择 代理,然后选择 创建代理。
-
对于 虚拟机监控器,选择 Microsoft Hyper-V,然后选择 下载映像。
代理下载到包含
.vhdx
文件的.zip
文件中。 -
在本地机器上解压缩
.vhdx
文件。 -
打开 PowerShell 并执行以下操作:
-
复制以下
Convert-VHD
cmdlet:Convert-VHD -Path .\
local-path-to-vhdx-file
\aws-datasync-2.0.1686143940.1-x86_64.xfs.gpt.vhdx ` -DestinationPath .\local-path-to-vhdx-file
\aws-datasync-2016861439401-x86_64.vhd -VHDType Fixed -
将
的每个实例替换为本地计算机上的local-path-to-vhdx-file
.vhdx
文件位置。 -
运行命令。
您的代理现在是固定大小的 VHD(采用
.vhd
文件格式),可以部署到 Azure 中。 -
在 Azure 中部署您的代理
在中部署 DataSync 代理涉Azure及:
-
在 Azure 中创建托管磁盘
-
将您的代理上传到该托管磁盘
-
将托管磁盘连接到 Linux 虚拟机
要在 Azure 中部署您的代理
-
在 PowerShell 中,转到包含您的代理
.vhd
文件的目录。 -
运行
ls
命令并保存Length
值(例如85899346432
)。这是代理映像的大小(以字节为单位),在创建可以容纳映像的托管磁盘时,您需要使用该大小。
-
执行以下操作来创建托管磁盘:
-
复制以下 Azure CLI 命令:
az disk create -n
your-managed-disk
` -gyour-resource-group
` -lyour-azure-region
` --upload-type Upload ` --upload-size-bytesagent-size-bytes
` --sku standard_lrs -
将
替换为您的托管磁盘的名称。your-managed-disk
-
将
替换为您的存储账户所属 Azure 资源组的名称。your-resource-group
-
将
替换为资源组所在的 Azure 区域。your-azure-region
-
将
替换为代理映像的大小。agent-size-bytes
-
运行命令。
此命令会创建一个带有标准 SKU
的空托管磁盘,您可以在其中上传 DataSync代理。 -
-
要生成允许对托管磁盘进行写入访问的共享访问签名 (SAS),请执行以下操作:
-
复制以下 Azure CLI 命令:
az disk grant-access -n
your-managed-disk
` -gyour-resource-group
` --access-level Write ` --duration-in-seconds 86400 -
将
替换为您创建的托管磁盘的名称。your-managed-disk
-
将
替换为您的存储账户所属 Azure 资源组的名称。your-resource-group
-
运行命令。
在输出中,记录 SAS URI。将代理上传到 Azure 时需要此 URI。
SAS 允许您向磁盘写入长达一个小时。这意味着您有一小时的时间将代理上传到托管磁盘。
-
-
要在 Azure 中将代理上传到托管磁盘,请执行以下操作:
-
复制以下
AzCopy
命令:.\azcopy copy
local-path-to-vhd-file
sas-uri
--blob-type PageBlob -
将
替换为代理local-path-to-vhd-file
.vhd
文件在本地计算机上的位置。 -
将
替换为运行sas-uri
az disk grant-access
命令时获得的 SAS URI。 -
运行命令。
-
-
代理上传完成后,撤消对托管磁盘的访问权限。要执行这项操作,请复制以下 Azure CLI 命令:
az disk revoke-access -n
your-managed-disk
-gyour-resource-group
-
将
替换为您的存储账户所属 Azure 资源组的名称。your-resource-group
-
将
替换为您创建的托管磁盘的名称。your-managed-disk
-
运行命令。
-
-
执行以下操作将托管磁盘连接到新的 Linux 虚拟机:
-
复制以下 Azure CLI 命令:
az vm create --resource-group
your-resource-group
` --location eastus ` --nameyour-agent-vm
` --size Standard_E4as_v4 ` --os-type linux ` --attach-os-diskyour-managed-disk
-
将
替换为您的存储账户所属 Azure 资源组的名称。your-resource-group
-
将
替换为您可以记住的虚拟机名称。your-agent-vm
-
将
替换为您要装载到虚拟机的托管磁盘的名称。your-managed-disk
-
运行命令。
-
您已经部署了代理。必须先激活代理,然后才能开始配置数据传输。
获取代理的激活密钥
要手动获取 DataSync 代理的激活密钥,请按照以下步骤操作。
或者,DataSync 可以自动为您获取激活密钥,但是这种方法需要一些网络配置。
获取代理的激活密钥
-
在 Azure 门户中,通过选择 启用自定义存储账户设置并指定您的 Azure 存储账户,为代理启用虚拟机的启动诊断
。 为代理启用虚拟机的启动诊断后,您可以访问代理的本地控制台以获取激活密钥。
-
仍在 Azure 门户网站时,前往您的虚拟机并选择 串行控制台。
-
在代理的本地控制台中,使用以下默认凭证登录:
-
用户名 –
admin
-
密码 –
password
我们建议在某个时候至少更改代理的密码。在代理的本地控制台中,在主菜单上输入
5
,然后使用passwd
命令更改密码。 -
-
输入
0
以获取代理的激活密钥。 -
输入你正在使用 AWS 区域 的地方 DataSync (例如,
us-east-1
)。 -
选择代理将用于连接的服务端点 AWS。
-
保存
Activation key
输出的值。
激活您的代理
获得激活密钥后,即可完成 DataSync代理的创建。
激活您的代理
打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/
。 -
在左侧的导航窗格中,选择 代理,然后选择 创建代理。
-
对于 虚拟机监控器,选择 Microsoft Hyper-V。
-
对于端点类型,请选择您在获取代理激活密钥时指定的相同类型的服务端点(例如,在中选择公共服务终端节点
Region name
)。 -
将您的网络配置为与您的代理正在使用的服务端点类型配合使用。有关服务端点网络要求,请参阅以下主题:
-
对于 激活密钥,执行以下操作:
-
选择 手动输入代理的激活密钥。
-
输入您从代理的本地控制台获得的激活密钥。
-
-
选择 Create agent (创建代理)。
您的代理已准备好与您的 Azure Blob Storage 连接。有关更多信息,请参阅 创建您的 Azure Blob Storage 传输位置。
您可以在 Amazon EC2 实例上部署您的 DataSync 代理。
创建您的 Azure Blob Storage 传输位置
您可以配置 DataSync 为使用您的Azure Blob Storage传输源或目的地。
开始前的准备工作
确保您知道 DataSync 访问层Azure Blob Storage和 blob 类型的访问方式和使用方式。您还需要一个可以连接到您的Azure Blob Storage容器的DataSync 代理。
打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/
。 在左侧导航窗格中,展开数据传输,然后选择 位置和 创建位置。
-
对于 位置类型,请选择 Microsoft Azure Blob Storage
-
对于 容器 URL,输入涉及传输的容器的 URL。
-
或者,对于 用作目标的访问层级,请选择要将对象或文件传输到的访问层级。
-
对于 文件夹,如果要将传输限制到容器中的虚拟目录(例如
/my/images
),请输入路径段。 -
如果您的转移需要代理,请选择使用代理,然后选择可以与您的Azure Blob Storage容器连接的 DataSync 代理。
-
对于 SAS 令牌,请提供访问您的 DataSync blob 存储所需的凭据。Azure Blob 存储上的某些公共数据集不需要凭据。您可以直接输入 SAS 令牌,也可以指定包含该令牌的 AWS Secrets Manager 密钥。有关更多信息,请参阅为存储位置提供凭据。
您的 SAS 令牌是 SAS URI 字符串的一部分,位于存储资源 URI 和问号 (
?
) 之后。令牌如下所示:sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
-
(可选)在键和值字段中输入值以标记位置。
标签可帮助您管理、筛选和搜索 AWS 资源。我们建议至少为您的位置创建一个名称标签。
-
选择创建位置。
-
复制以下
create-location-azure-blob
命令:aws datasync create-location-azure-blob \ --container-url "https://
path/to/container
" \ --authentication-type "SAS" \ --sas-configuration '{ "Token": "your-sas-token
" }' \ --agent-arnsmy-datasync-agent-arn
\ --subdirectory "/path/to/my/data
" \ --access-tier "access-tier-for-destination
" \ --tags [{"Key": "key1
","Value": "value1
"}] -
对于
--container-url
参数,请指定传输中涉及的 Azure Blob Storage 容器的 URL。 -
对于
--authentication-type
参数,请指定SAS
。如果您正在访问不需要身份验证的公共数据集,请指定NONE
。 -
对于
--sas-configuration
参数的Token
选项,请指定允许 DataSync访问您的 blob 存储的 SAS 令牌。您还可以使用提供用于保护密钥的其他参数 AWS Secrets Manager。有关更多信息,请参阅为存储位置提供凭据。
您的 SAS 令牌是 SAS URI 字符串的一部分,位于存储资源 URI 和问号 (
?
) 之后。令牌如下所示:sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
-
(可选)在
--agent-arns
参数中,指定可以连接到您的容器的 DataSync 代理的 Amazon 资源名称 (ARN)。下面是一个示例代理 ARN:
arn:aws:datasync:
us-east-1
:123456789012
:agent/agent-01234567890aaabfb
您可以指定多个代理。有关更多信息,请参阅 使用多个 DataSync 代理。
-
对于
--subdirectory
参数,如果要将传输限制到容器中的虚拟目录(例如/my/images
),请指定路径段。 -
或者,对于
--access-tier
参数,指定要将对象或文件传输到的访问层级(HOT
、COOL
或ARCHIVE
)。此参数仅适用于使用该位置作为传输目标的情况。
-
或者,对于
--tags
参数,指定可帮助您管理、筛选和搜索位置的键值对。我们建议为您的位置创建一个名称标签。
-
运行
create-location-azure-blob
命令。如果命令成功,您将收到一条响应,显示您创建位置的 ARN。例如:
{ "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh" }
查看您的 Azure Blob Storage 传输位置
您可以获取有关您的现有 DataSync 转账地点的详细信息Azure Blob Storage。
打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/
。 -
在左侧导航窗格中,展开数据传输,然后选择位置。
-
选择您的 Azure Blob Storage 位置。
您可以查看有关您所在位置的详细信息,包括使用该位置的所有 DataSync 转移任务。
-
复制以下
describe-location-azure-blob
命令:aws datasync describe-location-azure-blob \ --location-arn "
your-azure-blob-location-arn
" -
对于
--location-arn
参数,指定您创建 Azure Blob Storage 位置的 ARN(例如arn:aws:datasync:
)。us-east-1
:123456789012
:location/loc-12345678abcdefgh
-
运行
describe-location-azure-blob
命令。您会收到一条回复,显示有关您所在位置的详细信息。例如:
{ "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh", "LocationUri": "azure-blob://my-user.blob.core.windows.net/container-1", "AuthenticationType": "SAS", "Subdirectory": "/my/images", "AgentArns": ["arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb"], }
更新您的 Azure Blob Storage 传输位置
如有必要,您可以在控制台或使用 AWS CLI修改位置的配置。
-
复制以下
update-location-azure-blob
命令。aws datasync update-location-azure-blob \ --location-arn "
your-azure-blob-location-arn
" \ --authentication-type "SAS" \ --sas-configuration '{ "Token": "your-sas-token
" }' \ --agent-arnsmy-datasync-agent-arn
\ --subdirectory "/path/to/my/data
" \ --access-tier "access-tier-for-destination
" -
对于
--location-arn
参数,请指定要更新的 Azure Blob Storage 位置的 ARN(例如arn:aws:datasync:
)。us-east-1
:123456789012
:location/loc-12345678abcdefgh
-
对于
--authentication-type
参数,请指定SAS
。 -
对于
--sas-configuration
参数的Token
选项,请指定允许 DataSync访问您的 blob 存储的 SAS 令牌。该令牌是 SAS URI 字符串的一部分,位于存储资源 URI 和问号 (
?
) 之后。令牌如下所示:sp=r&st=2022-12-20T14:54:52Z&se=2022-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=qCBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
-
对于
--agent-arns
参数,请指定要连接到容器的 DataSync 代理的 Amazon 资源名称 (ARN)。下面是一个示例代理 ARN:
arn:aws:datasync:
us-east-1
:123456789012
:agent/agent-01234567890aaabfb
您可以指定多个代理。有关更多信息,请参阅 使用多个 DataSync 代理。
-
对于
--subdirectory
参数,如果要将传输限制到容器中的虚拟目录(例如/my/images
),请指定路径段。 -
或者,对于
--access-tier
参数,指定要将对象传输到的访问层级(HOT
、COOL
或ARCHIVE
)。此参数仅适用于使用该位置作为传输目标的情况。
后续步骤
为你的 DataSync 位置创建完毕后Azure Blob Storage,你可以继续设置接送服务。下面是要考虑的一些后续步骤:
-
如果您还没有准备好,请创建另一个您计划将数据传入或传出 Azure Blob Storage 的位置。
-
了解如何 DataSync 处理元数据和特殊文件,尤其是在您的传输地点没有类似的元数据结构的情况下。
-
配置您数据的传输方式。例如,您可以只传输数据子集或删除 blob 存储中不在源位置的文件(只要您的 SAS 令牌具有删除权限)。
-
开始传输。