从存档层解除冻结 Blob
当某个 Blob 位于存档访问层时,它被视为处于脱机状态,并且无法读取或修改。 若要读取或修改存档 Blob 中的数据,须先将 Blob 解除冻结到联机层,即热层或冷层。 提供两个选项解除冻结存储在存档层中的 Blob:
将存档的 Blob 复制到联机层:可通过复制 Blob操作将存档的 Blob 复制到热层或冷层中的新 Blob,从而解除冻结存档的 Blob。
将存档的 Blob 的访问层修改为联机层:可通过设置 Blob 层操作来更改 Blob 的访问层,从而将存档的 Blob 解除冻结到热层或冷层。
从存档层中解除冻结 Blob 可能需要几个小时才能完成。 Azure 建议在解除冻结时存储较大的 Blob,以实现最佳性能。 由于每个 Blob 上的处理开销,解除冻结大量小型 Blob 可能需要额外的时间。 通过优先检索,每个存储帐户每小时最多可以解除冻结 10 GiB。
若要了解如何将存档的 Blob 解除冻结到联机层,请参阅将存档的 Blob 解除冻结到联机层。
解除冻结优先级
在解除冻结 Blob 时,可以通过设置 Blob 层或复制 Blob 操作上可选的 x-ms-rehydrate-priority 标头,为解除冻结操作设置优先级。 解除冻结优先级选项包括:
- 标准优先级:重构请求按照收到的顺序进行处理,对于大小小于 10 GB 的对象,可能需要长达 15 小时才能完成。
- 高优先级:解除冻结请求的优先级高于标准优先级的请求,对于大小不到 10 GB 的对象,可以在一小时内完成。
若要在执行解除冻结期间查看解除冻结优先级,请调用获取 Blob 属性以返回 x-ms-rehydrate-priority
标头的值。 解除冻结优先级属性会返回“标准”或“高” 。
标准优先级是默认解除冻结选项。 高优先级解除冻结速度更快,但成本高于标准优先级的解除冻结。 高优先级解除冻结可能需要一个多小时,具体取决于 Blob 大小和当前需求。 Azure 建议保留高优先级解除冻结,以用于需要紧急数据恢复的情况。
当标准优先级的解除冻结操作处于挂起状态时,可以将 Blob 的解除冻结优先级设置更新为“高”,以便更快地解除冻结该 Blob。 例如,如果要批量解除冻结大量的 Blob,可以为所有 Blob 指定“标准”优先级以进行初始操作,然后将需要更快速联机的任何单个 Blob 的优先级提高到“高”,最高限制为每小时 10 GiB。
对于挂起的操作,不能将解除冻结优先级设置从“高”降低到“标准”。 请注意,更新解除冻结优先级设置可能会对计费产生影响。
若要了解如何设置和更新解除冻结优先级设置,请参阅将存档 Blob 解除冻结到联机层。
有关标准优先级与高优先级解除冻结请求的定价差异的详细信息,请参阅 Azure Blob 存储定价。
将存档的 Blob 复制到联机层
将 Blob 从存档层移动到联机层的第一个选项是,将存档的 Blob 复制到热、冷或寒存储层中的新目标 Blob。 可以使用复制 Blob 操作来复制 Blob。 将存档的 Blob 复制到联机层中的新 Blob 时,源 Blob 在存档层中会保持未修改状态。
必须将存档的 Blob 复制到名称不同的新 Blob 或另一个容器。 无法通过复制到同一 Blob 来覆盖源 Blob。
通过将 blob 从存档层复制到联机层,可以避免在要求的 180 天期限到期之前更改存档层中的 Blob 层时评估的提前删除费用。 有关详细信息,请参阅存档访问层。
如果对存储帐户实施了生命周期管理策略,并且 daysAfterLastTierChangeGreaterThan
条件没有添加到策略的每个 tierToArchive
操作,则此选项也有意义。 在哪种情况下,使用设置 Blob 层操作解除冻结 Blob 时,生命周期策略会在解除冻结后将 Blob 移回存档层,因为上次修改时间超出了此策略设置的阈值。 复制操作将源 Blob 保留在存档层中,并使用不同的名称和新的上次修改时间新建 Blob,这样,生命周期策略就不会将已解除冻结的 Blob 移回存档层。
复制存档层中的 Blob 可能需要数小时才能完成,具体取决于所选的解除冻结优先级。 Blob 复制操作还会秘密读取已存档的源 Blob,从而在所选目标层中创建新的联机 Blob。 在解除冻结操作完成之前,列出父容器中的 Blob 时,可能会显示新的 Blob,但它的层将被设置为“存档”。 对存档层中源 Blob 的读取操作完成且 Blob 的内容已写入联机层中的新目标 Blob 之后,数据才可用。 新 Blob 是独立的副本,因此修改或删除它不会影响存档层中的源 Blob。
若要了解如何通过将 Blob 复制到联机层来解除冻结 Blob,请参阅使用复制操作解除冻结 Blob。
重要
成功完成解除冻结之前,不要删除源 Blob。 如果删除源 Blob,则目标 Blob 可能无法完成复制。 可处理复制操作完成时所引发的事件,以了解何时可以安全删除源 Blob。 有关详细信息,请参阅处理 Blob 解除冻结事件。
对于 2021-02-12 之前的服务版本,仅支持在同一存储帐户中通过将已存档的 Blob 复制到联机目标层来解除冻结该 Blob。 从服务版本 2021-02-12 开始,只要目标帐户与源帐户位于同一区域中,就可以通过将已存档的 Blob 复制到其他存储帐户来解除冻结该 Blob。 通过跨存储帐户解除冻结,可以将生产数据与备份数据分开,在单独的帐户中进行维护。 将已存档数据隔离在一个单独的帐户中,还有助于降低意外解除冻结的成本。
复制操作的目标 Blob 必须位于联机层(热层或冷层)。 无法将存档的 Blob 复制到同样位于存档层的目标 Blob。
下表显示了 Blob 复制操作的行为,具体取决于源 Blob 和目标 Blob 的层。
热层源 | 冷层源 | 存档层源 | |
---|---|---|---|
热层目标 | 支持 | 支持 | 对于版本 2021-02-12 及更高版本,在同一区域中的所有帐户中受支持。 对于早期版本,仅在同一存储帐户中受支持。 需要 Blob 解除冻结。 |
冷层目标 | 支持 | 支持 | 对于版本 2021-02-12 及更高版本,在同一区域中的所有帐户中受支持。 对于早期版本,仅在同一存储帐户中受支持。 需要 Blob 解除冻结。 |
存档层目标 | 支持 | 受支持 | 不支持 |
从次要区域解除冻结
如果已将存储帐户配置为使用读取访问异地冗余存储 (RA-GRS),则可以使用复制 Blob 操作将次要区域中的 Blob 解除冻结并复制到位于同一次要区域中的另一个存储帐户。 请参阅从次要区域解除冻结。
若要详细了解如何获取对次要区域的读取访问权限,请参阅对次要区域中数据的读取访问权限。
将 Blob 的访问层更改到联机层
将 Blob 从存档层解除冻结到联机层的第二个选项是,调用设置 Blob 层来更改 Blob 的层。 通过此操作,可将存档 Blob 的层更改为热或冷层。
设置 Blob 层请求发起后,便无法取消。 在解除冻结操作期间,Blob 的访问层设置继续显示为存档,直到解除冻结过程完成为止。 完成解除冻结操作后,Blob 的访问层属性会更新,以反映新的层。
若要了解如何通过将 Blob 层更改为联机层来解除冻结 Blob,请参阅通过更改 Blob 层解除冻结 Blob。
注意
更改 Blob 的层不会影响其上次的修改时间。 如果存储帐户存在生命周期管理策略,则使用设置 Blob 层解除冻结 Blob 时,生命周期策略会在解除冻结后将 Blob 移回存档层,因为上次修改时间超出了此策略设置的阈值。
若要避免这种情况,请将 daysAfterLastTierChangeGreaterThan
条件添加到 tierToArchive
策略的操作。 或者,可以按将存档的 blob 复制到联机层部分所述,改为复制存档的 blob 来将其解除冻结。 执行复制操作会创建该 Blob 的新实例并更新其上次修改时间,因此不会触发生命周期管理策略。
检查 Blob 解除冻结操作的状态
在 Blob 解除冻结操作期间,可调用获取 Blob 属性操作来检查其状态。 请参阅检查解除冻结操作的状态了解此操作的状态。
处理 blob 解除冻结事件
解除冻结存档的 Blob 最多可能需要 15 小时,若反复轮询“获取 Blob 属性”来确定解除冻结是否完成,效率很低。 Azure 建议通过使用 Azure 事件网格捕获在解除冻结完成时触发的事件,以便提高性能并优化成本。
Azure 事件网格在完成 blob 解冻时引发 Microsoft.Storage.BlobTierChanged 事件:
- 更改 Blob 层时引发“Microsoft.Storage.BlobTierChanged”事件。 在 blob 解冻的上下文中,当目标 blob 的访问层成功从存档层更改为联机层(热层、冷层或寒层)时,将触发此事件。 可以使用“设置 Blob 层”操作来更改存档的 blob 的访问层,或使用“复制 Blob”操作将存档的 blob 复制到联机层中的新目标 blob。
若要了解如何捕获有关解除冻结的事件并将其发送到 Azure 函数事件处理程序,请参阅运行 Azure 函数以响应 Blob 解除冻结事件。
有关如何处理 Blob 存储事件的详细信息,请参阅响应 Azure Blob 存储事件和将 Azure Blob 存储用作事件网格源。
定价和计费
使用设置 Blob 层进行解除冻结操作将按数据读取事务数和数据检索大小来计费。 与标准优先级相比,高优先级解除冻结的操作和数据检索成本更高。 高优先级解冻在帐单上单独显示费用细目。 如果高优先级请求返回小于 10 GB 的已存档 Blob 的时间超过五个小时,则不会向你收取高优先级检索费用。 不过,标准检索费率仍适用。
使用复制 Blob 将存档 Blob 复制到联机层将按数据读取事务数和数据检索大小来计费。 在联机层中创建目标 Blob 将按数据写入事务数来计费。 当你复制到联机 Blob 时,“提前删除”费用不适用,因为源 Blob 仍然在存档层中保持不变。 如果选择此选项,则将支付高优先级检索费用。
存档层中的 Blob 应至少存储 180 天。 在 180 天期限到期之前删除或更改存档 Blob 的层会产生提前删除费。 例如,如果将某个 Blob 移到存档层,然后在 45 天后将其删除或移到热层,则需支付相当于将该 Blob 存储在存档层中 135(180 减 45)天的早期删除费用。 有关详细信息,请参阅存档访问层。
有关块 Blob 和数据解冻的定价详细信息,请参阅 Azure 存储定价。 有关出站数据传输费的详细信息,请参阅数据传输定价详细信息。