Azure 存储始终会存储数据的多个副本,以保护它免受计划内和计划外事件的影响。 这些事件包括暂时性硬件故障、网络中断或断电,以及大范围的自然灾害。 即使面临故障时,数据冗余也可确保存储帐户满足 Azure 存储的服务级别协议 (SLA) 的要求。
本文介绍如何更改现有存储帐户的复制设置。
更改复制类型的选项
在确定最适合自己方案的冗余配置时,请考虑如何在较低成本与较高可用性之间做出取舍。 在确定应选择哪些冗余配置时,请考虑以下因素:
- 您的数据如何在主要区域内进行复制。 可以使用本地冗余存储 (LRS) 在本地复制主要区域中的数据,也可以使用区域冗余存储 (ZRS) 跨 Azure 可用性区域复制数据。
- 数据是否为异地复制。 异地复制通过将数据复制到地理上与主要区域相距较远的第二个区域来防止区域灾难。 异地复制的配置包括异地冗余存储 (GRS) 和异地区域冗余存储 (GZRS)。
- 应用程序是否需要对次要区域中复制数据的读取访问。 可以配置存储账户,以便在主区域因任何原因不可用时,允许读取复制到辅助区域的数据。 提供对次要区域中数据的读取访问权限的配置包括读取访问异地冗余存储 (RA-GRS) 和读取访问异地区域冗余存储 (RA-GZRS)。
有关所有冗余选项的详细概述,请参阅 Azure 存储冗余。
可以根据需要更改存储帐户的冗余配置,但某些配置受到限制和故障时间要求的约束。 在环境中进行任何更改之前,请先查看这些限制和要求,这有助于避免与你自己的时间范围和运行时间要求冲突。
可通过两种方法更改复制设置:
- 添加或删除到次要区域的异地复制或读取访问权限。
- 在不支持第一个选项的情况下执行手动迁移,或确保在特定时间范围内完成更改。
异地冗余和读取访问权限可以同时更改。 但是,任何还涉及到区域冗余的更改都需要进行转换,并且必须使用两步过程单独执行。 这两个步骤可按任意顺序执行。
更改复制设置
使用 Azure 门户、PowerShell 或 Azure CLI 更改冗余配置
在大多数情况下,可以使用 Azure 门户、PowerShell 或 Azure CLI 更改存储帐户的异地冗余或读取访问 (RA) 复制设置。
更改在 Azure 门户中复制存储帐户的方式不会导致应用程序停机,包括需要转换的更改。
若要在 Azure 门户中更改存储帐户的冗余选项,请执行以下步骤:
手动迁移
手动迁移比转换更灵活性且更易控制。 如果需要在特定日期之前迁移数据,或者你的方案不支持转换,则可以使用此选项。 将存储帐户移动到另一个区域时,手动迁移也很有用。 有关更多详细信息,请参阅将 Azure 存储帐户移到另一个区域。
在以下情况下,必须执行手动迁移:
- 你想要将存储帐户迁移到其他区域。
- 你的存储帐户是一个块 blob 帐户。
- 该存储帐户包括存档层中的数据,并且不需要解除数据冻结。
重要
手动迁移可能导致应用程序关闭。
通过手动迁移,将数据从现有存储帐户复制到新存储帐户。 若要执行手动迁移,可以使用以下选项之一:
- 使用现有工具(如 AzCopy、Azure 存储客户端库之一或可靠的非 Microsoft 工具)复制数据。
- 如果你熟悉 Hadoop 或 HDInsight,则可以将源存储帐户和目标存储帐户附加到群集。 然后使用 DistCp 等工具来并行化数据复制过程。
有关如何执行手动迁移的详细指导,请参阅将 Azure 存储帐户移动到另一个区域。
更改复制类型的限制
某些复制更改方案存在限制,具体取决于:
区域
确保存储帐户所在的区域支持所有所需的复制设置。 例如,如果要将帐户转换为区域冗余(ZRS、GZRS 或 RA-GZRS),请确保存储帐户位于支持它的区域中。 请参阅区域冗余存储和异地区域冗余存储的支持区域列表。
功能冲突
某些存储帐户功能与其他功能或操作不兼容。 例如,故障转移到次要区域的能力是异地冗余的关键功能,但其他功能与故障转移不兼容。 有关故障转移不支持的功能和服务的详细信息,请参阅不支持的功能和服务。 如果启用了冲突功能,可能会阻止将帐户转换为 GRS、GZRS 或 RA-GZRS,或者可能需要稍后在启动故障转移之前禁用该功能。
启动诊断不支持高级存储帐户或区域冗余存储帐户。 当高级或区域冗余存储帐户用于启动诊断时,用户在启动虚拟机时收到 StorageAccountTypeNotSupported
错误。
存储帐户类型
计划更改复制设置时,请考虑以下与存储帐户类型相关的限制。
某些存储帐户类型仅支持某些冗余配置,这将影响它们是否可以转换或迁移,以及如何转换或迁移。 有关 Azure 存储帐户类型和支持的冗余选项的详细信息,请参阅存储帐户概述。
下表概述了可用于存储帐户类型的冗余选项,以及是否支持手动迁移:
存储帐户类型 | 支持 LRS | 支持 ZRS | 支持转换 (通过支持请求) |
支持手动迁移 |
---|---|---|---|---|
标准常规用途 v2 | ✅ | ✅ | ✅ | |
高级文件共享 | ✅ | ✅ | ✅ | |
高级块 Blob | ✅ | ✅ | ✅ | |
高级页 Blob | ✅ | |||
托管磁盘1 | ✅ | ✅ | ✅ | |
标准常规用途 v1 | ✅ | ✅ | ||
ZRS 经典2 (在标准常规用途 v1 帐户中可用) |
✅ |
1 个托管磁盘可用于 LRS 和 ZRS,但 ZRS 磁盘存在一些 限制。 如果 LRS 磁盘是地区性 (未指定地区) 的,则可以通过更改 SKU 进行转换。 如果 LRS 磁盘是区域性的,则只能按照迁移托管磁盘中的过程手动迁移该磁盘。 可将标准 SSD 托管磁盘的快照和映像存储在标准 HDD 存储上,并在 LRS 与 ZRS 选项之间进行选择。 有关与可用性集集成的信息,请参阅 Azure 托管磁盘简介。
2 个 ZRS 经典存储帐户已弃用。 有关转换 ZRS 经典版帐户的信息,请参阅转换 ZRS 经典版帐户。
转换 ZRS 经典版帐户
ZRS 经典版仅适用于常规用途 V1 (GPv1) 存储帐户中的块 Blob。 有关存储帐户的详细信息,请参阅 Azure 存储帐户概述。
ZRS 经典版帐户以异步方式在一到两个区域中的数据中心之间复制数据。 除非 Microsoft 启动了到次要区域的故障转移,否则复制的数据不可用。 ZRS 经典版帐户无法与 LRS、GRS 或 RA-GRS 相互转换。 ZRS 经典版帐户也不支持指标或日志记录。
若要将 ZRS 经典版更改为另一种复制类型,请使用下列方法之一:
- 先将其升级到 ZRS
- 手动将数据直接迁移到另一个复制类型
要将 ZRS 经典版存储帐户升级到 ZRS,请在 ZRS 可用的区域中使用 Azure 门户、PowerShell 或 Azure CLI:
要在 Azure 门户中升级到 ZRS,请导航到帐户的“配置”部分,然后选择“升级”:
要手动将 ZRS 经典版帐户数据迁移到另一种类型的复制,请按照以下步骤执行手动迁移。
要将数据迁移到与源帐户位于不同区域的区域冗余存储帐户,则必须执行手动迁移。 有关详细信息,请参阅将 Azure 存储帐户移到另一区域。
访问层
确保所需的冗余选项支持存储帐户中当前使用的访问层。 例如,ZRS、GZRS 和 RA-GZRS 存储帐户不支持存档层。 有关详细信息,请参阅 Blob 数据的热访问层、冷访问层和存档访问层。 要将 LRS、GRS 或 RA-GRS 帐户转换为支持区域冗余的帐户,请先将存档的 blob 移到支持存档层中的 blob 的存储帐户。 然后将源帐户转换为 ZRS、GZRS 和 RA-GZRS。
将所有存档 Blob 解冻至热层或冷层后,可以将存档层中包含 Blob 的 LRS 存储帐户切换到 GRS 或 RA-GRS。 还可以执行手动迁移。
小窍门
将已存档的 blob 解除冻结可能成本高昂且耗时。 Azure 建议避免更改包含存档 Blob 的存储帐户的冗余配置。 如果需要此类冗余配置,则应使用手动迁移,选择性地仅将要迁移的数据解除冻结。
停机时间要求
如果选择执行手动迁移,则需要停机,但可以更好地控制迁移过程的时间。
与更改数据复制方式相关的成本
Azure 存储提供了多个用于配置复制的选项。 这些选项(按价格最低到最高的顺序排序),包括:
- LRS
- ZRS
- GRS
- RA-GRS
- GZRS
- RA-GZRS
与更改存储帐户中数据复制方式相关的成本取决于更改冗余配置的哪些方面。 数据存储和流出带宽定价共同决定了更改成本。 有关定价的详细信息,请参阅 Azure 存储定价页。
异地冗余会在更改时产生流出带宽费用,因为要将整个存储帐户复制到次要区域。 之后写入主要区域的所有内容也会产生流出量带宽费用,用于将写入内容复制到次要区域。
如果删除异地冗余(从 GRS 更改为 LRS),则更改不会产生费用,但复制的数据将从次要位置删除。
重要
如果移除对次要区域 (RA) 的读取访问(从 RA-GRS 更改为 GRS 或 LRS),则会在完成转换 30 天后以 RA-GRS 方式对该帐户计费。