你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Data Box 设备将数据发送到相应的 Azure 存储 Blob 层

Azure Data Box 通过寄送专有存储设备将大量数据移动到 Azure。 使用数据填充设备并将其返回。 Data Box 中的数据将上传到与存储帐户关联的默认层。 然后,可以将数据移到另一个存储层。

本文介绍可如何将 Data Box 上传的数据移动到热、冷或存档 Blob 层。 本文适用于所有 Azure Data Box、Data Box Next-Gen 和 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 层设置为存档。

  1. 打开提升的 Windows PowerShell 会话。 请确保运行的是 PowerShell 5.0 或更高版本。 类型:

    $PSVersionTable.PSVersion

  2. 登录到 Azure PowerShell。

    Login-AzAccount

  3. 定义存储帐户、访问密钥、容器和存储上下文的变量。

    $StorageAccountName = "<enter account name>"
    $StorageAccountKey = "<enter account key>"
    $ContainerName = "<enter container name>"
    $ctx = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
    
  4. 获取容器中的所有 Blob。

    $blobs = Get-AzStorageBlob -Container "<enter container name>" -Context $ctx

  5. 将容器中所有 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 天删除进行惩罚。

后续步骤