Blob 数据的访问层
存储在云中的数据以指数速度增长。 要管理不断扩展的存储需求产生的成本,根据访问频率和保留期整理数据将很有帮助。 Azure 存储提供不同的访问层,以便你可以基于使用方式,以最具成本效益的方式存储 Blob 数据。 Azure 存储访问层包括:
- 热层 - 适用于存储经常访问或修改的数据的联机层。 热层的存储成本最高,但访问成本最低。
- 冷层 - 适用于存储不经常访问或修改的数据的联机层。 冷层中的数据应至少存储 30 天。 与热层相比,冷层的存储成本较低,访问成本较高。
- 寒层 - 一种联机层,优化后方便存储很少访问或修改但仍需快速检索的数据。 寒层中的数据应至少存储 90 天。 与冷层相比,寒层的存储成本较低,访问成本较高。
- 存档层 - 适用于存储极少访问且延迟要求(以小时计)不严格的数据的脱机层。 存档层中的数据应至少存储 180 天。
Azure 存储容量限制在帐户级别设置,而不是根据访问层设置。 可以选择在一个层中最大化容量使用率,也可以在两个或更多层中分布容量。
注意
仅允许在块 blob 上设置访问层。 不支持将它们用于追加 Blob 和页 Blob。
联机访问层
当你的数据存储在联机访问层(热层、冷层或寒层)中时,用户可以立即访问它。 热层是频繁使用的数据的最佳选择。 冷层或寒层适用于不常访问但仍必须可用于读取和写入的数据。
热层的示例使用方案包括:
- 频繁使用的数据或预期需要频繁读取和写入的数据。
- 分阶段进行处理,并最终迁移至冷访问层的数据。
冷访问层和寒访问层的使用方案包括:
- 短期数据备份和灾难恢复。
- 不经常使用但应立即可用的较旧数据集。
- 需要经济高效地进行存储并且要收集其他数据以进行处理的大型数据集。
若要了解如何将 Blob 移到热层、冷层或寒层,请参阅设置 Blob 的访问层。
冷层和寒层中的数据的可用性略低,但提供与热层相同的高持久性、检索延迟和吞吐量特征。 对于冷层或寒层中的数据,略低的可用性和较高的访问成本可能是为了获得更低的整体存储成本(与热层相比)而可接受的折衷。 有关详细信息,请参阅存储的 SLA。
如果 Blob 在达到层级要求的最短天数之前被删除或、覆盖或移动到其他层级,则会受到提前删除处罚。 例如,如果常规用途 v2 帐户冷层中的某个 blob 在 30 天内被删除或移动到其他层,它就会受到提前删除惩罚。 对于寒层中的 Blob,如果在 90 天之前被删除或移动到其他层,则会受到删除处罚。 此项费用按比例计算。 例如,如果将某个 Blob 移到冷层,然后在 21 天后将其删除,则需支付相当于将该 Blob 存储在冷层中 9(30 减 21)天的提前删除费用。 如果在指定时间范围内通过任何操作(即放置 Blob、放置块列表或复制 Blob)重写整个对象,则也会产生早期删除费用。
注意
在启用了软删除的帐户中,如果删除了 blob,则会在它的保留期到期之后被视为已删除。 在该期限到期之前,blob 只会被软删除,并且不会遭到提前删除。
热层、冷层和寒层支持所有冗余配置。 若要详细了解 Azure 存储中的数据冗余选项,请参阅 Azure 存储冗余。
存档访问层
存档层是用于存储极少访问的数据的脱机层。 存档访问层的存储成本最低。 但是,与热层、冷层和寒层相比,此层的数据检索成本较高,延迟较高。 存档访问层的示例使用方案包括:
- 长期备份、辅助备份和存档数据集
- 必须保留的原始数据,即使它已处理成最终可用的形式
- 需要长时间存储并且几乎不访问的合规性和存档数据
若要了解如何将 Blob 移动到存档层,请参阅将 Blob 存档。
存档层中的数据必须至少保留 180 天,否则需要支付提前删除费。 例如,如果将某个 Blob 移到存档层,然后在 45 天后将其删除或移到热层,则需支付相当于将该 Blob 存储在存档层中 135(180 减 45)天的早期删除费用。
注意
在启用了软删除的帐户中,如果删除了 blob,则会在它的保留期到期之后被视为已删除。 在该期限到期之前,blob 只会被软删除,并且不会遭到提前删除。
当 Blob 位于存档层时,它无法读取或修改。 若要读取或下载存档层中的 Blob,必须先将 Blob 解除冻结到联机层(热层、冷层或寒层)。 存档层中的数据可能最多需要 15 小时才能解除冻结,具体取决于为解除冻结操作指定的优先级。 有关 Blob 解除冻结的详细信息,请参阅存档层中的 Blob 解除冻结概述。
存档 Blob 的元数据仍可供读取访问,以便你可以列出 Blob 及其属性、元数据和索引标记。 存档层中的 Blob 的元数据是只读的,但可以读取或写入 Blob 索引标记。 存档的 Blob 元数据的存储成本将按冷层费率收取。 存档的 Blob 不支持快照。
存档层中的 Blob 支持以下操作:
只有为 LRS、GRS 或 RA-GRS 配置的存储帐户才支持将 Blob 移动到存档层。 ZRS、GZRS 或 RA-GZRS 帐户不支持存档层。 有关 Azure 存储中的冗余配置的详细信息,请参阅 Azure 存储冗余。
若要更改存档层中包含 Blob 的存储帐户的冗余配置,必须先将所有已存档的 Blob 解除冻结到热层、冷层或寒层。 Azure 建议避免更改包含已存档 Blob 的存储帐户的冗余配置,因为解除冻结操作可能成本很高且非常耗时。
只要在帐户配置为 LRS 时没有 Blob 被移动到存档层,就支持将存储帐户从 LRS 迁移到 GRS。 如果在帐户成为 LRS 后的 30 天内执行更新,并且在帐户设置为 LRS 时没有 Blob 被移动到存档层,则可以将该帐户移回到 GRS。
默认帐户访问层设置
存储帐户有一个默认访问层设置,表示创建新的 Blob 的联机层。 默认访问层设置可以设置为热层或冷层。 用户可以在上传 Blob 或更改其层时覆盖单个 Blob 的默认设置。
默认情况下,新的常规用途 v2 存储帐户的默认访问层设置为热层。 创建存储帐户时或创建存储帐户后,可以更改默认访问层设置。 如果在上传 Blob 时未更改存储帐户的此设置,而且也没有明确设置层,默认情况下会将新 Blob 上传到热层。
如果 Blob 没有显式分配的层,则会从默认帐户访问层设置推断相应的层。 如果 Blob 的访问层是根据默认帐户访问层设置推断得出的,则 Azure 门户会将访问层显示为“热(推断)”、“冷(推断)”或“寒(推断)”。
更改存储账户的默认访问层设置适用于帐户中尚未明确设置访问层的所有 Blob。 如果在常规用途 v2 帐户中将默认访问层设置切换为较冷层,则按推断访问层的所有 Blob 的写入操作次数(以 10,000 次为单位)收费。 如果在常规用途 v2 帐户中切换为较暖层,则按读取操作次数(以 10,000 次为单位)和数据检索量(以 GB 为单位)收费。
创建旧 Blob 存储帐户时,必须在创建时将默认访问层设置指定为热或冷。 在旧 Blob 存储帐户中,将默认帐户访问层设置更改为较冷层是免费的。 如果在 Blob 存储帐户中切换为较暖层,则按读取操作次数(以 10,000 次为单位)和数据检索量(以 GB 为单位)收费。 Azure 建议尽可能使用常规用途 v2 存储帐户,而不是 Blob 存储帐户。
注意
存档层不支持作为存储帐户的默认访问层。
设置或更改 Blob 的层
若要在创建 Blob 时显式设置其层,请在上传 Blob 时指定层。
创建 Blob 后,可以通过以下两种方式之一更改其层:
直接或通过生命周期管理策略调用设置 Blob 层操作。 将 Blob 的层从较暖层更改为较冷层时,调用“设置 Blob 层”通常是最佳选择。
注意
无法使用生命周期管理策略将存档的 Blob 解除冻结到联机层。
调用复制 Blob 操作以将 Blob 从一个层复制到另一个层。 对于大多数将 Blob 从存档层解除冻结到联机层或将 Blob 从冷层或寒层移动到热层的方案,建议调用“复制 Blob”。 如果源 Blob 所需的存储间隔尚未过去,可以通过复制 Blob 避免提前删除惩罚。 但是,复制 Blob 会导致产生两个 Blob,即源 Blob 和目标 Blob 的容量费用。
将 Blob 的层从较暖层更改为较冷层是即时的,从冷层或寒层更改为热层也是即时的。 将 Blob 从存档层解除冻结到联机层(如热层、冷层或寒层)可能需要长达 15 个小时。
更改 Blob 的层时,请记住以下要点:
- 不能在使用加密范围的 Blob 上调用“设置 Blob 层”。 有关加密范围的详细信息,请参阅 Blob 存储的加密范围。
- 如果 Blob 显式移动到冷层或寒层,然后移动到存档层,则会收取提前删除费用。
Blob 生命周期管理
Blob 存储生命周期管理提供基于规则的策略,用于在满足指定条件时将数据转移到所需的访问层。 还可以使用生命周期管理在生命周期结束时使数据过期。 请参阅通过自动执行 Azure Blob 存储访问层来优化成本来了解详细信息。
无法使用生命周期管理策略将存档的 Blob 解除冻结到联机层。 无法使用“设置 Blob 层”或使用 Azure Blob 存储生命周期管理将存储在高级块 Blob 存储帐户中的数据分层到热层、冷层、寒层或存档层。 若要移动数据,必须使用通过 URL 放置块 API 或支持此 API 的 AzCopy 版本,将块 Blob 存储帐户中的 Blob 同步复制到其他帐户中的热层。 通过 URL 放置块 API 同步复制服务器上的数据,这意味着只有在所有数据都从原服务器位置移动到目标位置后,调用才会完成。
访问层选项摘要
下表汇总了热访问层、冷访问层、寒访问层和存档访问层的功能。
热存储层 | 冷存储层 | 冷层 | 存档存储层 | |
---|---|---|---|---|
可用性 | 99.9% | 99% | 99% | 99% |
可用性 (RA-GRS 读取) |
99.99% | 99.9% | 99.9% | 99.9% |
使用费 | 存储成本较高,但访问和事务成本较低 | 存储成本较低,但访问和事务成本较高 | 存储成本较低,但访问和事务成本较高 | 存储成本最低,但访问和事务成本最高 |
建议的最短数据保留期 | 空值 | 30 天1 | 90 天1 | 180 天 |
延迟 (距第一字节时间) |
毫秒 | 毫秒 | 毫秒 | 小时2 |
受支持的冗余配置 | 全部 | 全部 | 全部 | 仅限 LRS、GRS 和 RA-GRS3 |
1 常规用途 v2 帐户冷层中的对象的最短保留期为 30 天。 常规用途 v2 帐户寒层中的对象的最短保留期为 90 天。 对于 Blob 存储帐户,冷层或寒层没有最短保留期。
2 从存档层解除冻结 Blob 时,可以选择标准或高解除冻结优先级选项。 每个选项的检索延迟和成本有所不同。 有关详细信息,请参阅存档层中的 Blob 解除冻结概述。
3 有关 Azure 存储中的冗余配置的详细信息,请参阅 Azure 存储冗余。
定价和计费
所有存储帐户使用的定价模型都适用于块 Blob 存储,具体取决于 Blob 的层。 请记住以下部分中所述的计费注意事项。
有关块 Blob 定价的详细信息,请参阅块 Blob 定价。
存储容量成本
除了存储的数据量,存储数据的成本将因访问层而异。 层越冷,每 GB 容量成本越低。
数据访问成本
层越冷,数据访问费用越高。 对于冷访问层、寒访问层和存档访问层中的数据,需要按 GB 支付读取方面的数据访问费用。
事务成本
层越冷,每个层的按事务收费越高。
异地复制数据传输成本
此费用仅适用于配置了异地复制的帐户,包括 GRS、RA-GRS 和 GZRS。 异地复制数据传输会产生每 GB 费用。
出站数据传输成本
出站数据传输(从 Azure 区域传输出的数据)需按每 GB 的带宽使用量计费。 有关出站数据传输费用的详细信息,请参阅带宽定价详细信息页。
更改默认帐户访问层
更改帐户访问层会导致尚未显式设置层的所有 Blob 产生层更改费。 有关详细信息,请参阅以下部分:更改 Blob 的访问层。
更改 Blob 的访问层
更改 Blob 的层时,请记住以下计费影响:
- 在各个层之间上传或移动 Blob 时,系统会在上传时或层发生更改时立即按相应的费率收费。
- 将 Blob 移到更冷的层时,操作按写入目标层的操作计费,具体说来就是按目标层的写入操作次数(以 10,000 次为单位)和数据写入量(以 GB 为单位)收费。
- 将 Blob 移到更暖的层时,操作按从源层读取来计费,具体说来就是按源层的读取操作次数(以 10,000 次为单位)和数据检索量(以 GB 为单位)收费。 也可能还会收取从冷层、寒层或存档层移出的任何 Blob 的早期删除费用。
- 从存档层解除冻结某个 Blob 时,该 Blob 的数据将按存档数据收费,直到数据还原且 Blob 的层更改为热层、冷层或寒层为止。
下表总结了如何对层更改进行计费。
写入费用(操作 + 访问) | 读取费用(操作 + 访问) |
---|---|
热到冷 热到寒 热到存档 冷到寒 冷到存档 寒到存档 |
存档到寒 存档到冷 存档到热 寒到冷 寒到热 冷到热 |
当版本控制已启用或 Blob 包含快照时,更改 Blob 的访问层可能会产生额外费用。 有关启用了版本控制的 blob 的信息,请参阅 blob 版本控制文档中的定价和计费。 有关包含快照的 Blob 的信息,请参阅 Blob 快照文档中的定价和计费。
冷层
寒层需要以下最低版本的 REST、SDK 和工具
环境 | 最低版本 |
---|---|
REST API | 2021-21-02 |
.NET | 12.15.0 |
Java | 12.21.0 |
Python | 12.15.0 |
JavaScript | 12.13.0 |
PowerShell (Az.Storage) | 5.8.0 |
Azure CLI | 2.50.0 |
AzCopy | 10.18.1 |
Azure 存储资源管理器 | 1.29.0 |
功能支持
启用 Data Lake Storage Gen2、网络文件系统 (NFS) 3.0 协议或 SSH 文件传输协议 (SFTP) 可能会影响对此功能的支持。 如果已启用这些功能中的某一项,请参阅 Azure 存储帐户中的 Blob 存储功能支持,以评估对此功能的支持。