你当前正在访问 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 层设置为存档存储层。

  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 天删除进行惩罚。

后续步骤