你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure Data Box 或 Azure Data Box Heavy 将数据发送到合适的 Azure 存储 Blob 层
Azure Data Box 通过向你发送专有存储设备来将大量数据移动到 Azure。 使用数据填充设备并将其返回。 Data Box 中的数据会上传到和存储帐户有关的默认层级。 然后便可以将数据移到另一个存储层。
本文介绍如何将 Data Box 上传的数据移动到热、冷或存档 Blob 层。 本文同时适用于 Azure Data Box 和 Azure Data Box Heavy。
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
为数据选择适当的存储层
凭借 Azure 存储,可通过三个不同层级(即热、冷或存档存储层)以最经济高效的方式存储数据。 热存储层为存储经常访问的数据进行了优化。 热存储的存储成本高于冷存储和存档存储,但访问成本最低。
冷存储层适用于需要存储至少 30 天的不经常访问的数据。 冷层的存储成本低于热存储层,但与热层相比,数据访问费用更高。
Azure 存档存储层是脱机的,其存储成本最低,但访问成本最高。 此层适用于要在存档存储中保留至少 180 天的数据。 有关这些层级和定价模型的详细信息,请转到存储层的比较。
Data Box 或 Data Box Heavy 中的数据会上传到与存储帐户关联的存储层。 创建存储帐户时,可以将访问层指定为“热”或“冷”。 根据工作负荷和成本的访问模式,可以将数据从默认层级移动到另一个存储层。
只能在 Blob 存储或常规用途 v2 (GPv2) 帐户中对对象存储数据分层。 常规用途 v1 (GPv1) 帐户不支持分层。 若要为数据选择适当的存储层,请查看 Azure Blob 存储:高级、热、冷和存档存储层中详细介绍的注意事项。
设置默认 Blob 层
在 Azure 门户中创建存储帐户时已指定默认 Blob 层。 选择 GPv2 或 blob 存储作为存储类型后,就可以指定访问层属性。 默认情况下,选择热存储层。
如果在订购 Data Box 或 Data Box Heavy 时尝试创建新帐户,则无法指定层级。 创建帐户后,可以在门户中修改帐户以设置默认访问层。
或者使用指定的访问层属性先创建存储帐户。 在创建 Data Box 或 Data Box Heavy 订单时,请选择现有存储帐户。 有关如何在存储帐户创建过程中设置默认 Blob 层的详细信息,请转到在 Azure 门户中创建存储帐户。
将数据移到非默认层
Data Box 设备中的数据上传到默认层后,可能需要将数据移到非默认层。 可通过两种方法将数据移动到非默认层。
- Azure Blob 存储生命周期管理 - 可以使用基于策略的方法自动将数据分层,或使其在生命周期结束时过期。 有关详细信息,请转到管理 Azure Blob 存储生命周期。
- 脚本 - 可以通过 Azure PowerShell 使用脚本的方法来启用 Blob 级别分层。 可以调用
SetBlobTier
操作在 Blob 上设置层。
使用 Azure PowerShell 设置 Blob 层
以下步骤介绍如何使用 Azure PowerShell 脚本将 Blob 层设置为存档存储层。
打开提升的 Windows PowerShell 会话。 请确保运行的是 PowerShell 5.0 或更高版本。 键入:
$PSVersionTable.PSVersion
登录到 Azure PowerShell。
Login-AzAccount
定义用于存储帐户、访问密钥、容器和存储上下文的变量。
$StorageAccountName = "<enter account name>" $StorageAccountKey = "<enter account key>" $ContainerName = "<enter container name>" $ctx = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
获取容器中的所有 Blob。
$blobs = Get-AzStorageBlob -Container "<enter container name>" -Context $ctx
将容器中所有 Blob 的层级设置为存档存储层。
Foreach ($blob in $blobs) { $blob.ICloudBlob.SetStandardBlobTier("Archive") }
下面显示了示例输出:
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 5 1 17763 134 PS C:\WINDOWS\system32> Login-AzAccount Account : gus@contoso.com SubscriptionName : MySubscription SubscriptionId : subscription-id TenantId : tenant-id Environment : AzureCloud PS C:\WINDOWS\system32> $StorageAccountName = "mygpv2storacct" PS C:\WINDOWS\system32> $StorageAccountKey = "mystorageacctkey" PS C:\WINDOWS\system32> $ContainerName = "test" PS C:\WINDOWS\system32> $ctx = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey PS C:\WINDOWS\system32> $blobs = Get-AzStorageBlob -Container "test" -Context $ctx PS C:\WINDOWS\system32> Foreach ($blob in $blobs) { >> $blob.ICloudBlob.SetStandardBlobTier("Archive") >> } PS C:\WINDOWS\system32>
提示
如果想要将数据引入到存档存储层,请将默认帐户层设置为热存储层。 如果默认层为冷存储层,同时数据要立即移动到存档存储层,则会对提前 30 天删除进行惩罚。