你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
更改存储帐户的复制方式
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 | 空值 | 使用 Azure 门户、PowerShell 或 CLI 1,2 | 执行转换2,3,4,5 | 首先,使用门户、PowerShell或 CLI 切换到 GRS/RA-GRS 1,然后 执行转换到 GZRS/RA-GZRS 3,4,5 |
…从 GRS/RA-GRS | 使用 Azure 门户、PowerShell 或 CLI | 空值 | 首先,使用门户、PowerShell 或 CLI 切换到 LRS,然后执行转换 到 ZRS 3,5 | 执行转换3,5 |
...从 ZRS | 执行转换3 | 首先,使用门户、PowerShell或 CLI 切换到 GZRS/RA-GZRS,然后 执行转换到 GRS/RA-GRS3 | 空值 | 使用 Azure 门户、PowerShell 或 CLI 1 |
…从 GZRS/RA-GZRS | 首先,使用门户、PowerShell 或 CLI 切换到 ZRS,然后执行转换 到 LRS 3 | 执行转换3 | 使用 Azure 门户、PowerShell 或 CLI | 空值 |
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 门户中复制存储帐户的方式不会导致应用程序停机,包括需要转换的更改。
若要在 Azure 门户中更改存储帐户的冗余选项,请执行以下步骤:
执行转换
冗余“转换”是更改存储帐户的区域冗余方面的过程。
在转换期间,无需数据丢失或应用程序停机。
有两种方法可以启动转换:
提示
Microsoft 建议尽可能使用客户发起的转换,而不是由支持发起的转换。 客户发起的转换允许你直接从 Azure 门户中启动转换并监视其进度。 由于转换是由客户发起的,因此无需创建和管理支持请求。
客户发起的转换
大多数区域中的客户可以启动转换并监视其进度,而不是打开支持请求。 此选项消除了与创建和管理支持请求相关的潜在延迟。 有关确定支持客户发起转换的区域的帮助,请参阅“区域限制”一文。
可以使用 Azure 门户、PowerShell 或 Azure CLI 在受支持的区域中完成客户发起的转换。 启动后,可能需要长达 72 小时才能开始转换。
重要
没有 SLA 用于完成转换。
如果需要更好地控制转换开始和完成的时间,请考虑手动迁移。 通常,帐户中的数据越多,将这些数据复制到其他区域或地区所需的时间就越长。
有关客户启动的转换计时的详细信息,请参阅计时和频率。
若要在 Azure 门户中添加或修改存储帐户的区域性冗余,请执行以下步骤:
监视客户发起的转换进度
在评估和处理转换请求时,状态应经历下表所示的列表:
Status | 说明 |
---|---|
已提交以供转换 | 转换请求已成功提交处理。 |
正在进行1 | 转换正在进行中。 |
已完成 -或- 失败2 |
转换已成功完成。 - 或 - 转换失败。 |
1 启动后,转换通常会在 72 小时内开始,但在某些情况下可能需要更长时间。 有关客户启动的转换计时的详细信息,请参阅计时和频率。
2 如果转换失败,请向 Microsoft 提交支持请求以确定失败的原因。
注意
尽管 Microsoft 会尽快处理转换请求,但无法保证转换何时完成。 如果需要在特定日期之前转换数据,Microsoft 建议执行手动迁移。
通常,帐户中的数据越多,将这些数据复制到该区域中的其他区域所需的时间就越长。
客户发起的转换的状态显示在存储帐户的“冗余”页上:
由支持发起的转换
客户仍可以通过向 Microsoft 提交支持请求来请求转换。
提示
如果需要转换多个存储帐户,请创建一个支持票证,并在“其他详细信息”选项卡上指定要转换的帐户的名称。
按照以下步骤向 Microsoft 请求转换:
在 Azure 门户中,导航到要转换的存储帐户。
在“支持 + 故障排除”下,选择“新建支持请求”。
根据帐户信息填写“问题说明”选项卡:
- 摘要:(一些描述性文本)。
- 问题类型:选择“技术”。
- 订阅:从下拉列表中选择订阅。
- 服务:选择“我的服务”,然后选择“存储帐户管理”作为“服务类型”。
- 资源:选择要转换的存储帐户。 如果需要指定多个存储帐户,可以在“其他详细信息”选项卡执行此操作。
- “问题类型”:选择“数据迁移”。
- “问题子类型”:选择“迁移到 ZRS、GZRS 或 RA-GZRS”。
选择“下一页”。 在切换到“解决方案”页之前,可能会短暂显示“建议的解决方案”选项卡。 在“解决方案”页上,可以检查存储帐户的转换资格:
- 目标复制类型:(从下拉列表中选择所需选项)
- 存储帐户:(输入单个存储帐户名称或用分号分隔的帐户列表)
- 选择“提交”。
如果结果指示存储帐户不符合转换条件,请采取相应的操作。 否则,请选择“返回到支持请求”。
选择下一步。 如果要迁移多个存储帐户,请在“详细信息”选项卡上指定每个帐户的名称,用分号分隔。
在“附加详细信息”选项卡上提供必需信息,然后选择“查看 + 创建”以查看并提交支持票证。 Azure 支持代理会审查你的案例,并联系你以提供帮助。
手动迁移
与转换相比,手动迁移提供更高的灵活性和控制度。 如果需要在特定日期之前迁移数据,或者你的方案不支持转换,则可以使用此选项。 将存储帐户移到另一个区域时,手动迁移也很有用。 有关更多详细信息,请参阅将 Azure 存储帐户移到另一个区域。
在以下情况下,必须执行手动迁移:
- 你想要将存储帐户迁移到其他区域。
- 你的存储帐户是一个块 blob 帐户。
- 该存储帐户包括存档层中的数据,并且不需要解除数据冻结。
重要
手动迁移可能导致应用程序关闭。 如果应用程序需要高可用性,则还可以使用 Microsoft 提供的转换选项。 转换属于就地迁移,不停机。
通过手动迁移,将数据从现有存储帐户复制到新存储帐户。 若要执行手动迁移,可以使用以下选项之一:
- 使用现有工具(如 AzCopy、Azure 存储客户端库之一或可靠的非 Microsoft 工具)复制数据。
- 如果你熟悉 Hadoop 或 HDInsight,则可以将源存储帐户和目标存储帐户附加到群集。 然后使用 DistCp 等工具来并行化数据复制过程。
有关如何执行手动迁移的详细指导,请参阅将 Azure 存储帐户移动到另一个区域。
更改复制类型的限制
重要
启动诊断不支持高级存储帐户或区域冗余存储帐户。 当高级或区域冗余存储帐户用于启动诊断时,用户在启动虚拟机时收到 StorageAccountTypeNotSupported
错误。
某些复制更改方案存在限制,具体取决于:
区域
确保存储帐户所在的区域支持所有所需的复制设置。 例如,如果要将帐户转换为区域冗余(ZRS、GZRS 或 RA-GZRS),请确保存储帐户位于支持它的区域中。 请参阅区域冗余存储和异地区域冗余存储的支持区域列表。
功能冲突
某些存储帐户功能与其他功能或操作不兼容。 例如,故障转移到次要区域的能力是异地冗余的关键功能,但其他功能与故障转移不兼容。 有关故障转移不支持的功能和服务的详细信息,请参阅不支持的功能和服务。 如果启用了冲突功能,可能会阻止将帐户转换为 GRS、GZRS 或 RA-GZRS,或者可能需要稍后在启动故障转移之前禁用该功能。
存储帐户类型
计划更改复制设置时,请考虑以下与存储帐户类型相关的限制。
某些存储帐户类型仅支持某些冗余配置,这将影响它们是否可以转换或迁移,以及如何转换或迁移。 有关 Azure 存储帐户类型和支持的冗余选项的详细信息,请参阅存储帐户概述。
下表概述了可用于存储帐户类型的冗余选项,以及是否支持转换和手动迁移:
存储帐户类型 | 支持 LRS | 支持 ZRS | 支持转换 (从门户中) |
支持转换 (通过支持请求) |
支持手动迁移 |
---|---|---|---|---|---|
标准常规用途 v2 | ✅ | ✅ | ✅ | ✅ | ✅ |
高级文件共享 | ✅ | ✅ | ✅1 | ✅ | |
高级块 blob | ✅ | ✅ | ✅ | ||
高级页 Blob | ✅ | ||||
托管磁盘2 | ✅ | ✅ | ✅ | ✅ | |
标准常规用途 v1 | ✅ | 3 | ✅ | ||
ZRS 经典版4 (在标准常规用途 v1 帐户中可用) |
✅ |
1 高级文件共享的转换可以通过提交支持请求提供;可以使用 PowerShell 或 Azure CLI 进行客户启动的转换。
2 托管磁盘可用于 LRS 和 ZRS,但 ZRS 磁盘有一些 限制。 如果 LRS 磁盘是地区性 (未指定地区) 的,则可以通过更改 SKU 进行转换。 如果 LRS 磁盘是区域性的,则只能按照迁移托管磁盘中的过程手动迁移该磁盘。 可将标准 SSD 托管磁盘的快照和映像存储在标准 HDD 存储上,并在 LRS 与 ZRS 选项之间进行选择。 有关与可用性集集成的信息,请参阅 Azure 托管磁盘简介。
3 如果存储帐户为 v1,则需要在执行转换之前将其升级到 v2。 若要了解如何升级 v1 帐户,请参阅升级到常规用途 v2 存储帐户。
4 ZRS 经典存储帐户已弃用。 有关转换 ZRS 经典版帐户的信息,请参阅转换 ZRS 经典版帐户。
转换 ZRS 经典版帐户
重要
ZRS 经典版帐户已于 2021 年 3 月 31 日弃用。 客户无法再创建 ZRS 经典版帐户。 如果仍有一些此类帐户,则应将其升级到常规用途 v2 帐户。
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。 还可以执行手动迁移。
提示
Microsoft 建议尽可能避免更改包含已存档 Blob 的存储帐户的冗余配置,因为解除冻结操作可能成本很高且非常耗时。 但是,如果必须更改,手动迁移可以节省解除冻结的费用。
协议支持
如果存在以下任一情况,则无法将存储帐户转换为区域冗余(ZRS、GZRS 或 RA-GZRS):
- Azure Blob 存储启用了 NFSv3 协议支持
- 存储帐户包含 Azure 文件存储 NFSv4.1 共享
故障转移和故障回复
帐户故障转移到次要区域后,可以使用 PowerShell 或 Azure CLI(2.30.0 或更高版本)启动从新主要区域到新次要区域的故障回复。 启动故障转移。
如果执行了客户管理的帐户故障转移以便在 GRS 或 RA-GRS 帐户中断后恢复,则该帐户在故障转移后将在新的主要区域中变为本地冗余 (LRS) 帐户。 不支持 LRS 帐户因故障转移转为 ZRS 或 GZRS。 相反,请执行手动迁移以添加区域冗余。
停机要求
在转换期间,你可以访问存储帐户中的数据,而不会失去持久性或可用性。 在迁移过程中会维持 Azure 存储 SLA,并且在转换过程中不会丢失任何数据。 迁移后,服务终结点、访问密钥、共享访问签名和其他帐户选项保持不变。
如果选择执行手动迁移,则需要停机,但可以更好地控制迁移过程的时间。
计时和频率
如果从 Azure 门户启动区域冗余转换,可能需要最长 72 小时才能开始转换过程。 如果通过打开支持请求来请求转换,则可能需要更长时间才能开始。 若要监视客户发起的转换的进度,请参阅监视客户发起的转换进度。
重要
没有 SLA 用于完成转换。 如果需要更好地控制转换开始和完成的时间,请考虑手动迁移。 通常,帐户中的数据越多,将这些数据复制到其他区域或地区所需的时间就越长。
区域冗余转换后,必须等待至少 72 小时,然后才能再次更改存储帐户的冗余设置。 临时保留允许在进行另一项更改之前完成后台进程,从而确保帐户的一致性和完整性。 例如,从 LRS 转到 GZRS 的过程包含 2 个步骤。 必须在一个操作中添加区域冗余,然后在另一个操作中添加异地冗余。 从 LRS 转到 ZRS 后,必须等待至少 72 小时,然后才能从 ZRS 转到 GZRS。
与更改数据复制方式相关的成本
Azure 存储提供了多个用于配置复制的选项。 这些选项(按价格最低到最高的顺序排序),包括:
- LRS
- ZRS
- GRS
- RA-GRS
- GZRS
- RA-GZRS
与更改存储帐户中数据复制方式相关的成本取决于更改冗余配置的哪些方面。 数据存储和流出带宽定价共同决定了更改成本。 有关定价的详细信息,请参阅 Azure 存储定价页。
如果在主要区域中添加区域冗余,则不会产生与进行该转换相关的初始成本,但由于需要额外的复制和存储空间,持续产生的数据存储成本会更高。
异地冗余会在更改时产生流出带宽费用,因为要将整个存储帐户复制到次要区域。 之后写入主要区域的所有内容也会产生流出量带宽费用,用于将写入内容复制到次要区域。
如果删除异地冗余(从 GRS 更改为 LRS),则更改不会产生费用,但复制的数据将从次要位置删除。
重要
如果移除对次要区域 (RA) 的读取访问(从 RA-GRS 更改为 GRS 或 LRS),则会在完成转换 30 天后以 RA-GRS 方式对该帐户计费。