归档的blob是离线的,无法读取或修改。 要访问其数据,首先将 Blob 重新水化到联机层:热层、凉层或冷层。 请使用以下其中一种补水方法:
将归档的blob复制到在线层级:你可以通过复制 Blob 操作,将归档的blob复制到热层、冷层或冷层的新blob中,重新给它加水。
将已归档 Blob 的访问层更改为联机层:您可以使用 设置 Blob 层 操作,将已归档 Blob 重新水化到热层、凉层或冷层。
重要
你无法直接恢复已归档的快照或先前的版本。 要访问归档快照或以前版本中的数据,必须使用 复制 Blob 操作将其复制到联机层级(热、凉或冷)中的新 Blob。
将 Blob 从存档层重新水化可能需要几个小时才能完成。 存档较大的团块以获得最佳补水效果。 由于每个 Blob 的处理开销,重新水化大量小 Blob 可能需要更长时间。 每个存储账户每小时最多可重新填充10 GiB,优先提取。
若要了解如何将存档的 Blob 解除冻结到联机层,请参阅将存档的 Blob 解除冻结到联机层。
解除冻结优先级
当你将 blob 重新水化时,可以通过在 Set Blob Tier 或 x-ms-rehydrate-priority 操作中使用可选的 标头来设置操作优先级。 重新水化优先级选项包括:
- 标准优先级:重构请求按照收到的顺序进行处理,对于大小小于 10 GB 的对象,可能需要长达 15 小时才能完成。
- 高优先级:解除冻结请求的优先级高于标准优先级的请求,对于大小不到 10 GB 的对象,可以在一小时内完成。
若要在执行解除冻结期间查看解除冻结优先级,请调用获取 Blob 属性以返回 x-ms-rehydrate-priority 标头的值。 重新水合优先级属性返回 Standard 或 High。
标准优先级是默认恢复选项。 高优先级补水更快,但成本高于标准优先级补水。 高优先级补水可能需要超过一小时,具体取决于胶点大小和当前需求。 优先级补水预留用于紧急数据恢复。
当标准优先级的解除冻结操作处于挂起状态时,可以将 Blob 的解除冻结优先级设置更新为“高”,以便更快地解除冻结该 Blob。 例如,如果要批量重新水合大量 Blob,可以在初始操作中为所有 Blob 指定 Standard 优先级,然后将任何需要更快恢复联机的单个 Blob 的优先级提高到 High,上限为每小时 10 GiB。
重要
10 GiB/小时限制适用于 存储帐户级别,而不是每个 Blob。 尽管在理想条件下,标准优先级下“最长 15 小时”之类的时限表述可能适用于单个 blob 对象,但对于批量操作,这些时限并不会按线性方式增加。 如果你需要大量数据补充水,预计持续时间会更长,并据此做好计划。 同一账户内所有正在重新激活的 Blob 共享此吞吐量,超过每小时限制可能会导致被限流或延迟时间延长。 为了获得最佳性能,请考虑批处理解除冻结请求并监视帐户级活动。
对于待处理的操作,你不能将重新水化优先级设置从 高 下调为 标准。 更新优先级可能会影响账单。
若要了解如何设置和更新解除冻结优先级设置,请参阅将存档 Blob 解除冻结到联机层。
有关标准优先级与高优先级解除冻结请求的定价差异的详细信息,请参阅 Azure Blob 存储定价。
将存档的 Blob 复制到联机层
要通过复制归档的blob来重新水化,可以使用 复制Blob 操作,在热、冷或冷层创建新的目标blob。 源 blob 在归档层中保持未修改状态。
必须将存档的 Blob 复制到名称不同的新 Blob 或另一个容器。 你不能通过复制到同一个 Blob 来覆盖源 Blob。
通过将 Blob 从存档层复制到联机访问层,可以避免因在规定的 180 天期限届满前将 Blob 从存档层更改到其他层级而收取的提前删除费用。 有关详细信息,请参阅存档访问层。
避免生命周期策略重新归档
复制操作还可能阻止生命周期管理策略将已重新解冻的 Blob 移回到归档层。 当策略 tierToArchive 的动作未包含该 daysAfterLastTierChangeGreaterThan 条件且blob的最后修改时间超过策略阈值时,就存在这种风险。 复制操作会将源blob留在归档层,创建一个新blob,名称和最后修改时间都不同。
监控复制完成情况
从归档层复制一个blob可能需要数小时,具体取决于所选的补水优先级。 复制操作会读取已存档的源 Blob,并在所选的联机层中创建一个新的 Blob。 新的 Blob 可能会在重新水化完成之前出现在父容器中,但其访问层仍为存档层。 其数据在服务读取源blob并将其内容写入目标blob后才可访问。 新blob是独立的副本,所以修改或删除它不会影响归档的源blob。
若要了解如何通过将 Blob 复制到联机层来解除冻结 Blob,请参阅使用复制操作解除冻结 Blob。
重要
在补水成功完成之前不要删除源斑点。 如果你删除了源 blob,目标 blob 可能无法完成复制。 监视完成事件,以确定何时可以安全地删除源 Blob。 更多信息,请参阅 处理 Blob 重新水化事件。
存储账户间的复制
服务版本2021-02-12及以后支持通过将归档的blob复制到同一区域内的不同存储账户来进行补水。 早期的服务版本只支持在同一存储账户内进行补液。 跨存储账户重新联机使你能够将生产数据和备份数据分别保存在不同的账户中,从而将它们隔离开来。 将归档数据隔离在单独的账户中,也有助于降低因意外重新水合而产生的成本。
复制操作的目标 Blob 必须处于联机层(热层、冷层或冻层)。 无法将已存档的 Blob 复制到同样处于存档层中的目标 Blob。
下表显示了 Blob 复制操作的行为,具体取决于源 Blob 和目标 Blob 的层。
| 热层源 | 冷层源 | 冷层源 | 存档层源 | |
|---|---|---|---|---|
| 热层目标位置 | 受支持 | 支持 | 受支持 | 在同一区域内,2021-02-12 及更高版本支持跨账户使用。 对于早期版本,仅在同一存储帐户中受支持。 需要 Blob 解除冻结。 |
| 冷层目标位置 | 支持 | 受支持 | 受支持 | 支持在同一区域内的账户之间使用,适用于 2021-02-12 及更高版本。 对于早期版本,仅在同一存储帐户中受支持。 需要 Blob 重新水化。 |
| 冷层目标位置 | 受支持 | 受支持 | 支持 | 在同一区域内的账户之间,2021-02-12 及更高版本均受支持。 对于早期版本,仅在同一存储帐户中受支持。 需要进行 Blob 重新水化。 |
| 存档层目标 | 受支持 | 受支持 | 支持 | 不支持 |
从次要区域解除冻结
如果你的存储帐户使用读取访问异地冗余存储(RA-GRS),请使用 Copy 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 小时,而反复轮询 Get Blob Properties 的效率并不高。 使用 Azure 事件网格 捕捉完成事件,以提升性能和降低成本。
Azure 事件网格 会在 Blob 重新水化完成时引发 Microsoft.Storage.BlobTierChanged 事件:
- 当 Blob 的层级发生更改时,会触发
Microsoft.Storage.BlobTierChanged事件。 对于水泡补水,当目标水块成功从归档档级切换到在线层级(热、冷或冷)时,事件就会触发。
使用复制 Blob 操作将 Blob 从 存档层 复制到 联机层(热层、温层或冷层)中的新目标 Blob 以进行再水化:
Azure 事件网格 在复制操作开始时触发
Microsoft.Storage.BlobCreated事件。 Blob 的访问层是 存档。在 Blob 对象复制并重新水化后,Azure 事件网格 会触发一个
Microsoft.Storage.BlobTierChanged事件,指示层级已从 归档 更改为指定的联机层。
若要了解如何捕获有关解除冻结的事件并将其发送到 Azure 函数事件处理程序,请参阅运行 Azure 函数以响应 Blob 解除冻结事件。
有关处理 Blob 存储 事件的详细信息,请参见《响应 Azure Blob 存储事件》和《Azure Blob 存储作为事件网格源》。
定价和计费
对于Set Blob Tier,Azure Storage会对数据读取事务和检索数据量收费。 高优先级补液费用高于标准优先级,并且会在账单上单独显示。 如果一个小于 10 GB 的归档 blob 的高优先级请求耗时超过 5 小时,Azure 存储 不会收取高优先级检索费率。 标准检索率依然适用。
对于 复制 Blob,Azure 存储 会针对数据读取事务、检索的数据量以及目标 Blob 的数据写入事务收费。 由于源 Blob 对象在存档层中未被修改,因此不适用提前删除费用。 如果选择,则适用高优先级检索费用。
存档层中的 Blob 应至少存储 180 天。 在 180 天期限到期之前删除或更改存档 Blob 的层会产生提前删除费。 例如,如果一个blob被移到归档层,然后在45天后被删除或移至热档,你将产生相当于将该blob存储在归档层的135天(减去45天)的提前删除费用。 有关详细信息,请参阅存档访问层。
有关块 Blob 和数据重新水化定价的详细信息,请参见 Azure 存储 定价。 有关外呼数据传输费用的更多信息,请参见 数据传输定价详情。