Azure 存储始终存储数据的多个副本,以在计划内和计划外事件面前保护数据。 这些事件包括暂时性硬件故障、网络中断或断电,以及大范围的自然灾害。 数据冗余可确保您的存储帐户即便在发生故障时也能满足 Azure 存储 的 服务级别协议 (SLA)。
本文介绍如何更改现有存储帐户的复制设置。
更改复制类型的选项
在确定最适合自己方案的冗余配置时,请考虑如何在较低成本与较高可用性之间做出取舍。 在确定应选择哪些冗余配置时,请考虑以下因素:
- 您的数据如何在主要区域内进行复制。 可以使用 局部冗余存储(LRS)在本地复制主要区域中的数据,也可以使用 区域冗余存储(ZRS) 跨Azure可用性区域复制数据。
- 数据是否为异地复制。 异地复制通过将数据复制到地理上与主要区域相距较远的第二个区域来防止区域灾难。 异地复制的配置包括异地冗余存储 (GRS) 和异地区域冗余存储 (GZRS)。
- 应用程序是否需要对次要区域中复制数据的读取访问。 可以配置存储账户,以便在主区域因任何原因不可用时,允许读取复制到辅助区域的数据。 提供对次要区域中数据的读取访问权限的配置包括读取访问异地冗余存储 (RA-GRS) 和读取访问异地区域冗余存储 (RA-GZRS)。
有关所有冗余选项的详细概述,请参阅 Azure 存储 冗余。
可以根据需要更改存储帐户的冗余配置,但某些配置受到限制和故障时间要求的约束。 在环境中进行任何更改之前,请先查看这些限制和要求,这有助于避免与你自己的时间范围和运行时间要求冲突。
可通过三种方式更改复制设置:
- 添加或删除到次要区域的异地复制或读取访问权限。
- 通过执行转换来添加或删除区域冗余。
- 在前两个选项不受支持的情况下,或者为了确保在特定时限内完成更改,请执行手动迁移。
异地冗余和读取访问权限可以同时更改。 但是,任何还涉及到区域冗余的更改都需要进行转换,并且必须使用两步过程单独执行。 这两个步骤可按任意顺序执行。
更改冗余配置
下表概述了如何在复制类型之间切换。
注释
对于要在更改复制类型的限制内更改复制设置的任何情况,可以选择手动迁移。 为了简化起见,下表中排除了手动迁移选项。
| 切换 | …到 LRS | …到 GRS/RA-GRS 6 | …到 ZRS | …到 GZRS/RA-GZRS 2,6 |
|---|---|---|---|---|
| …从 LRS | N/A | 使用 Azure portal、PowerShell 或 CLI1,2 | 执行转换2,3,4,5 | 首先,使用门户、PowerShell或 CLI 切换到 GRS/RA-GRS 1,然后 执行转换到 GZRS/RA-GZRS 3,4,5 |
| …从 GRS/RA-GRS | 使用 Azure portal、PowerShell 或 CLI | N/A | 首先,使用门户、PowerShell 或 CLI 切换到 LRS,然后执行转换 到 ZRS 3,5 | 执行转换3,5 |
| ...从 ZRS | 执行转换3 | 首先,使用门户、PowerShell或 CLI 切换到 GZRS/RA-GZRS,然后 执行转换到 GRS/RA-GRS3 | N/A | 使用 Azure portal、PowerShell 或 CLI1 |
| …从 GZRS/RA-GZRS | 首先,使用门户、PowerShell 或 CLI 切换到 ZRS,然后执行转换 到 LRS 3 | 执行转换3 | 使用Azure门户、PowerShell 或 CLI | N/A |
1添加异地冗余会产生一次性流出费用。
2 如果存储帐户在存档层中包含 blob,在将冗余类型更改为异地冗余或区域冗余之前,请查看访问层限制。
3 支持的转换类型取决于存储帐户类型。 有关详细信息,请参阅存储帐户表。
4 不支持 LRS 帐户因故障转移转为 ZRS 或 GZRS。 有关详细信息,请参阅故障转移和故障回复。
5 如果为 Azure Blob 存储 启用了 NFSv3 协议支持,或者如果存储帐户包含配置了公用终结点的 Azure 文件存储 NFSv4.1 共享,则不支持从 LRS 转换为 ZRS。
6 即使启用异地冗余似乎是瞬间发生的,但在两个区域之间的数据同步完成之前,无法启动到次要区域的故障转移。
更改复制设置
根据更改冗余配置部分中的方案,使用以下方法之一更改复制设置。
使用 Azure 门户、PowerShell 或Azure CLI更改冗余配置
在大多数情况下,可以使用 Azure 门户、PowerShell 或Azure CLI更改存储帐户的异地冗余或读取访问(RA)复制设置。
更改 Azure 门户中存储帐户的复制方式不会导致应用程序停机,哪怕是需要转换的更改也是如此。
- Portal
- PowerShell
- Azure CLI
若要在 Azure 门户中更改存储帐户的冗余选项,请执行以下步骤:
执行转换
冗余“转换”是更改存储帐户的区域冗余方面的过程。
在转换期间不存在数据丢失也不需要中断应用程序。
只有一种方法可以启动转换:
重要
没有用于完成转换的 SLA。 如果需要更好地控制转换开始和完成的时间,请考虑手动迁移。 转换时间可能因帐户大小、区域内的当前资源需求以及其他因素而异。
由支持发起的转换
客户只能通过向 Azure 提交支持请求来请求转换。
小窍门
如果需要转换多个存储帐户,请创建单个支持工单,并在“其他详细信息”选项卡上指定要转换的帐户的名称。
手动迁移
手动迁移比转换更灵活性且更易控制。 如果需要在特定日期之前迁移数据,或者你的方案不支持转换,则可以使用此选项。 将存储帐户移动到另一个区域时,手动迁移也很有用。 有关详细信息,请参阅 将Azure 存储帐户移动到另一个区域。
在以下情况下,必须执行手动迁移:
- 你想要将存储帐户迁移到其他区域。
- 你的存储帐户是一个块 blob 帐户。
- 该存储帐户包括存档层中的数据,并且不需要解除数据冻结。
重要
手动迁移可能导致应用程序关闭。 如果应用程序需要高可用性,Microsoft还提供 conversion 选项。
通过手动迁移,将数据从现有存储帐户复制到新存储帐户。 若要执行手动迁移,可以使用以下选项之一:
- 使用现有工具(例如AzCopy、Azure 存储客户端库之一或可靠的非Microsoft工具)复制数据。
- 如果你熟悉 Hadoop 或 HDInsight,则可以将源存储帐户和目标存储帐户附加到群集。 然后使用 DistCp 等工具来并行化数据复制过程。
有关如何执行手动迁移的更详细的指导,请参阅 将Azure 存储帐户移动到另一个区域。
更改复制类型的限制
某些复制更改方案存在限制,具体取决于:
区域
确保存储帐户所在的区域支持所有所需的复制设置。 例如,如果要将帐户转换为区域冗余(ZRS、GZRS 或 RA-GZRS),请确保存储帐户位于支持它的区域中。 请参阅区域冗余存储和异地区域冗余存储的支持区域列表。
功能冲突
某些存储帐户功能与其他功能或操作不兼容。 例如,故障转移到次要区域的能力是异地冗余的关键功能,但其他功能与故障转移不兼容。 有关故障转移不支持的功能和服务的详细信息,请参阅不支持的功能和服务。 如果启用了冲突功能,可能会阻止将帐户转换为 GRS、GZRS 或 RA-GZRS,或者可能需要稍后在启动故障转移之前禁用该功能。
启动诊断不支持高级存储帐户或区域冗余存储帐户。 当高级或区域冗余存储帐户用于启动诊断时,用户在启动虚拟机时收到 StorageAccountTypeNotSupported 错误。
任何将 LRS 转换为 ZRS 或 GRS 转换为 GZRS 的尝试添加区域冗余都会失败。 要将帐户转换为区域冗余 SKU,请在帐户上禁用启动诊断并重新提交请求。 若要了解有关启动诊断的详细信息,请查看 Azure 启动诊断一文。
存储帐户类型
计划更改复制设置时,请考虑以下与存储帐户类型相关的限制。
某些存储帐户类型仅支持某些冗余配置,这将影响它们是否可以转换或迁移,以及如何转换或迁移。 有关Azure存储帐户类型和支持的冗余选项的详细信息,请参阅存储帐户概述。
下表概述了可用于存储帐户类型的冗余选项,以及是否支持转换和手动迁移:
| 存储帐户类型 | 支持 LRS | 支持 ZRS | 支持转换 | 支持手动迁移 |
|---|---|---|---|---|
| 标准常规用途 v2 | ✅ | ✅ | ✅ | ✅ |
| 高级文件共享 | ✅ | ✅ | ✅ | ✅ |
| 高级块 Blob | ✅ | ✅ | ✅ | |
| 高级页 Blob | ✅ | |||
| 托管磁盘1 | ✅ | ✅ | ✅ | |
| 标准常规用途 v1 | ✅ | 2 | ✅ | |
| ZRS 经典3 (在标准常规用途 v1 帐户中可用) |
✅ |
1 个托管磁盘可用于 LRS 和 ZRS,但 ZRS 磁盘存在一些 限制。 如果 LRS 磁盘是地区性 (未指定地区) 的,则可以通过更改 SKU 进行转换。 如果 LRS 磁盘是区域性磁盘,则只能通过按照将 磁盘从 LRS 转换为 ZRS 中的过程手动迁移该磁盘。 可以在标准 HDD 存储上存储标准 SSD 托管磁盘的快照和映像,并在 LRS 和 ZRS 选项之间进行选择。 有关与可用性集的集成的信息,请参阅Azure托管磁盘简介。
2 如果存储帐户为 v1,则需要在执行转换之前将其升级到 v2。 要了解如何升级 v1 帐户,请参阅升级到常规用途 v2 存储帐户。
3 个 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。
- Portal
- PowerShell
- Azure CLI
若要在 Azure 门户中升级到 ZRS,请导航到帐户的 Configuration 设置,然后选择 Upgrade:
要手动将 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 Blob 存储启用 NFSv3 协议支持
- 存储帐户包含启用了公共终结点访问的 NFSv4.1 Azure 文件存储 共享
不支持转换已启用公共终结点的 NFSv4.1 共享。 要更改具有公共终结点的 NFS 共享的冗余,请按顺序执行以下步骤:
- 禁止访问存储帐户的公共终结点。
- 提交转换请求以更改给定存储帐户的冗余。
- 存储帐户迁移完以后,根据需要配置专用或公共终结点。
故障转移和故障回复
在帐户故障转移到次要区域后,可以使用 PowerShell 或 Azure CLI(版本 2.30.0 或更高版本)从新的主区域启动故障恢复到新的次要区域。 启动故障转移。
如果执行了客户管理的帐户故障转移以便在 GRS 或 RA-GRS 帐户中断后恢复,则该帐户在故障转移后将在新的主要区域中变为本地冗余 (LRS) 帐户。 不支持 LRS 帐户因故障转移转为 ZRS 或 GZRS。 相反,请执行手动迁移以添加区域冗余。
停机时间要求
在 转换期间,可以访问存储帐户中的数据,且不会丢失持久性,且启用非 HNS 的帐户不会中断可用性。 但是,启用 HNS 的帐户可能会在帐户切换到新的复原级别时经历短暂的暂停。 此暂停持续时间不到 30 秒,请求将在暂停后自动完成。 迁移过程中维护Azure 存储 SLA,转换期间不会丢失任何数据。 迁移后,服务终结点、访问密钥、共享访问签名和其他帐户选项保持不变。
如果选择执行手动迁移,则需要停机,但可以更好地控制迁移过程的时间。
计时和频率
重要
没有用于完成转换的 SLA。 如果需要更好地控制转换开始和完成的时间,请考虑手动迁移。 转换时间可能因帐户大小、区域内的当前资源需求以及其他因素而异。
在区域冗余转换完成后,您必须至少等待24小时,才能再次更改存储账户的冗余设置。 临时保留允许在进行另一项更改之前完成后台进程,从而确保帐户的一致性和完整性。 例如,从 LRS 转到 GZRS 的过程包含两个步骤。 必须在一个操作中添加区域冗余,然后在另一个操作中添加异地冗余。 从LRS转到ZRS后,必须至少等待24小时才能从ZRS转到GZRS。
与更改数据复制方式相关的成本
Azure 存储提供了多个用于配置复制的选项。 这些选项(按价格最低到最高的顺序排序),包括:
- LRS
- ZRS
- GRS
- RA-GRS
- GZRS
- RA-GZRS
与更改存储帐户中数据复制方式相关的成本取决于更改冗余配置的哪些方面。 数据存储和流出带宽定价共同决定了更改成本。 有关定价的详细信息,请参阅 Azure 存储 定价页。
如果在主要区域中添加区域冗余,则不会产生与进行该转换相关的初始成本,但由于需要额外的复制和存储空间,持续产生的数据存储成本会更高。
异地冗余会在更改时产生流出带宽费用,因为要将整个存储帐户复制到次要区域。 之后在主要区域的所有后续写入操作也会产生出口带宽费用,用于将写入内容复制到次要区域。
如果删除异地冗余(从 GRS 更改为 LRS),则更改不会产生费用,但复制的数据将从次要位置删除。
重要
如果移除对次要区域 (RA) 的读取访问(从 RA-GRS 更改为 GRS 或 LRS),则会在完成转换 30 天后以 RA-GRS 方式对该帐户计费。