Azure 文件存储数据冗余

Azure 文件存储始终会存储数据的多个副本,以防范各种计划内和计划外的事件,包括暂时性的硬件故障、网络中断或断电、自然灾害等。 冗余可确保即使遇到故障,存储帐户也能达到其可用性和持久性目标。

在确定最适合自己方案的冗余选项时,请考虑如何在较低成本与较高可用性之间做出取舍。 可帮助你确定应选择哪种冗余选项的因素包括:

  • 如何在主要区域内复制您的数据。
  • 是否要将你的数据复制到地理上距主要区域较远的另一个区域,以防范区域性灾难(异地冗余)。

使用 Microsoft.Storage 资源提供程序创建的 Azure 经典文件共享通过称为 存储帐户的常见 Azure 资源进行管理。 存储帐户表示可用于部署文件共享的共享存储池。 有关存储帐户的详细信息,请参阅 存储帐户概述

创建存储帐户时,您需要为该帐户所有提供的存储服务选择一个共享的冗余设置。 因此,部署在同一存储帐户中的所有文件共享具有相同的冗余设置。 如果各存储帐户具有不同的冗余要求,建议将这些文件存储隔离在不同的存储帐户中。

适用于

管理模型 计费模式 媒体层 冗余 SMB NFS
Microsoft.Storage 预配 v2 SSD(高级) 本地 (LRS) 不 是的
Microsoft.Storage 预配 v2 SSD(高级) 区域 (ZRS) 不 是的
Microsoft.Storage 预配 v2 HDD(标准) 本地 (LRS) 是的 不
Microsoft.Storage 预配 v2 HDD(标准) 区域 (ZRS) 是的 不
Microsoft.Storage 预配 v2 HDD(标准) 异地 (GRS) 是的 不
Microsoft.Storage 预配 v2 HDD(标准) GeoZone (GZRS) 是的 不
Microsoft.Storage 预配版本 v1 SSD(高级) 本地 (LRS) 是的 是的
Microsoft.Storage 预配版本 v1 SSD(高级) 区域 (ZRS) 是的 是的
Microsoft.Storage 即用即付 HDD(标准) 本地 (LRS) 是的 不
Microsoft.Storage 即用即付 HDD(标准) 区域 (ZRS) 是的 不
Microsoft.Storage 即用即付 HDD(标准) 异地 (GRS) 是的 不
Microsoft.Storage 即用即付 HDD(标准) GeoZone (GZRS) 是的 不

主要区域中的冗余

Azure 存储帐户中的数据在主要区域中始终复制三次。 Azure 文件存储提供了两个有关如何在主要区域中复制数据的选项:

  • 本地冗余存储(LRS) 将数据复制到所选主要区域中的一个或多个可用性区域。 LRS 是成本最低的复制选项,但不建议对需要高可用性或持续性的应用程序使用此选项。
  • 区域冗余存储(ZRS) 跨主要区域中的三个 Azure 可用性区域 同步复制数据。 对于需要高可用性的应用程序,我们建议使用地理区域冗余存储(GZRS),这在主要区域使用 ZRS,并将您的数据异地复制到次要区域。

本地冗余存储

本地冗余存储 (LRS) 将存储帐户中的数据复制到所选主要区域中的一个或多个 Azure 可用性区域。 尽管没有选择首选可用性区域的选项,但 Azure 可以跨区域移动或扩展 LRS 帐户以提高负载均衡。 LRS 可在一年中提供至少 99.999999999%(11 个 9)的对象持久性。 请访问 什么是 Azure 可用性区域 文章,详细了解可用性区域可靠性。

与其他选项相比,LRS 是成本最低的冗余选项,但提供的持久性也最低。 LRS 可以保护数据,使其不受服务器机架和驱动器故障影响。 但是,如果数据中心内发生火灾或洪水等灾难,则使用 LRS 的存储帐户的所有副本可能会丢失或无法恢复。 若要缓解此风险,建议使用 ZRSGRSGZRS

对使用 LRS 的存储帐户的写入请求同步发生。 只有将数据写入到所有三个副本后,写入操作才会成功返回。

下图显示了如何使用 LRS 在单个数据中心内复制数据:

显示数据如何在可用性区域中使用 LRS 进行复制的示意图。

对于以下场景,LRS 是不错的选项:

  • 在发生数据丢失时,是否可以轻松重新构造应用程序存储的数据。
  • 应用程序是否由于数据治理要求而仅限复制某个区域内的数据。 在某些情况下,要在其中异地复制数据的配对区域可位于另一个区域。 有关详细信息,请参阅 Azure 区域对和无对区域

HDD(标准)文件共享的所有 Azure 区域都支持 LRS。 有关支持 SSD(高级)文件共享 LRS 的区域列表,请参阅 对 SSD 文件共享的 LRS 支持

区域冗余存储

区域冗余存储 (ZRS) 将存储帐户中的数据复制到所选主要区域中的三个或更多 Azure 可用性区域。 每个可用性区域都是一个独立的物理位置,具有独立的电源、冷却系统和网络。 ZRS 在一年中提供至少 99.9999999999%(12 个 9)的存储资源持久性。 请访问 什么是 Azure 可用性区域 文章,详细了解可用性区域可靠性。

通过使用 ZRS,即使某个区域变得不可用,也仍可访问你的数据进行读写操作。 如果某个区域变得不可用,则 Azure 会执行网络更新,例如 DNS 重新指向。 如果完成更新之前访问数据,这些更新可能会影响应用程序。 在设计用于 ZRS 的应用程序时,遵循暂时性故障的处理做法,包括结合指数退让实施重试策略。

会同步发生一个针对使用 ZRS 的存储帐户的写入请求。 写入操作仅在将数据写入三个可用性区域中的所有副本后才能成功返回。

将 ZRS 用于 Azure 文件存储工作负载的一个优势是,如果某个区域不可用,则无需从连接的客户端重新装载 Azure 文件共享。 对于需要高可用性的方案,我们建议在主要区域中使用 ZRS。 我们还建议使用 ZRS 来限制将数据复制到特定的区域,以满足数据治理要求。

注意

Azure 文件同步在所有支持可用区的区域内均具有区域冗余功能。 在大多数情况下,我们建议 Azure 文件同步用户配置存储帐户以使用 ZRS 或 GZRS。

下图显示如何使用 ZRS 在主要区域中的可用性区域之间复制数据:

图表显示数据如何在主要区域中使用 ZRS 进行复制。

如果数据变为暂时不可用,ZRS 可提供出色的性能、低延迟和数据复原能力。 但是,如果多个区域永久受到影响,在发生区域性的灾难时,ZRS 本身可能无法保护数据。 为了防范区域灾难,我们建议使用 GZRS

按区域提供 ZRS 支持

SSD 和 HDD 文件共享都支持 ZRS。 若要查看每个媒体层支持 ZRS 的区域,请参阅以下资源:

次要区域中的冗余

对于需要 SMB 文件共享的高持久性的应用程序,可以选择异地冗余存储,将存储帐户中的数据复制到距离主要区域数百英里的次要区域。 如果存储帐户已复制到次要区域,则即使遇到区域性服务完全中断或导致主要区域不可恢复的灾难,数据也能持久保存。

重要

Azure 文件存储仅支持 HDD 文件共享的异地冗余(GRS 或 GZRS)。 SSD 文件共享必须使用 LRS 或 ZRS。

创建存储帐户时,可以为帐户选择主要区域。 配对的次要区域是根据主要区域确定的且无法更改。

Azure 文件存储提供了两种将数据复制到次要区域的选项。 目前,异地冗余存储选项仅适用于 HDD SMB 文件共享。

  • 异地冗余存储(GRS) 使用 LRS 在主要区域的一个或多个 Azure 可用区中同步地三次复制您的数据。 然后,它将数据异步复制到次要区域中的单个物理位置。 在次要区域中,您的数据通过 LRS 进行同步复制,共复制 3 次。
  • 异地区域冗余存储 (GZRS) 使用 ZRS 在主区域中的三个 Azure 可用性区域同步复制数据。 然后,它将数据异步复制到次要区域中的单个物理位置。 在次要区域中,您的数据通过 LRS 进行同步复制,共复制 3 次。

GRS 和 GZRS 之间的主要区别是在主要区域中复制数据的方式。 在次要区域内,始终使用 LRS 同步复制数据三次。 次要区域中的 LRS 保护你的数据免受硬件故障的影响。

异地冗余存储

异地冗余存储(GRS)使用 LRS 在主要区域中的一个或多个 Azure 可用性区域中同步复制数据三次。 然后,它将数据异步复制到距离主要区域数百英里以外的次要区域中的单个物理位置。 GRS 在一年内提供至少 99.99999999999999%(16 个 9)的可靠性。

首先将写操作提交到主位置,然后使用 LRS 进行复制。 然后会以异步方式将更新复制到次要区域。 将数据写入次要位置后,还会使用 LRS 在该位置复制数据。

下图显示了如何使用 GRS 复制数据:

图示显示如何使用 GRS 复制数据。

异地区域冗余存储

地域区域冗余存储 (GZRS) 将冗余跨可用性区域提供的高可用性与异地复制提供的区域中断保护相结合。 将跨主要区域中的三个 Azure 可用性区域复制 GZRS 存储帐户中的数据,并将其复制到次要地理区域,以防御区域灾难。 我们建议对需要最大程度的一致性、耐用性和可用性、卓越性能和灾难恢复复原能力的应用程序使用 GZRS。

如果使用 GZRS 存储帐户,在可用性区域不可用或无法恢复的情况下,可以继续读取和写入数据。 此外,即使在遇到区域完全停电或导致主要区域不可恢复的灾难,数据也能持久保存。 GZRS 设计为在一年内提供至少 99.99999999999999%(16 个 9)的持久性。

下图显示了如何使用 GZRS 复制数据:

显示如何使用 GZRS 复制数据的图解。

若要确定某个区域是否支持 GZRS,请参阅 支持 GZRS 的 Azure 区域。 为了支持 GZRS,区域必须支持可用性区域并具有配对区域。

快照和同步频率

为了确保在发生故障转移时Geo和GeoZone冗余文件共享处于一致状态,每隔15分钟在主区域创建一个系统快照,并将其复制到次区域。 当次要区域发生故障转移时,共享状态将基于次要区域中的最新系统快照。 由于地理滞后或其他问题,次要区域中的最新系统快照可能早于 15 分钟。

存储帐户上的上次同步时间 (LST) 属性指示上次将主要区域中的数据成功写入到次要区域的时间。 对于 Azure 文件存储,上次同步时间基于次要区域中的最新系统快照。 可以使用 PowerShell 或 Azure CLI 检查存储帐户的上次同步时间

必须了解以下有关上次同步时间属性的内容:

  • 存储帐户的“上次同步时间”属性取决于该帐户中同步进度最落后的服务(文件、Blob、表、队列)。
  • 如果未对存储帐户进行更改,不会更新上次同步时间。
  • 如果每个存储帐户的文件共享数超过 100 个,上次同步时间计算可能会超时。 建议每个存储帐户的文件共享少于 100 个。

故障转移注意事项

如果使用 GRS 或 GZRS,除非发生故障转移,否则无法在次要区域中访问文件共享。 如果主要区域变得不可用,则可以选择切换到次要区域。 故障转移过程更新 Azure 文件存储提供的 DNS 条目,这样辅助终结点就会成为存储帐户的新主终结点。 在故障转移过程中,数据不可访问。 在故障转移完成后,你便可以在新的主区域进行数据的读取和写入。 故障转移完成后,次要区域将成为主要区域,你便可以再次读取和写入数据。 有关详细信息,请参阅 Azure 文件灾难恢复和故障转移

重要

Azure 文件存储不支持读取访问异地冗余存储 (RA-GRS) 或读取访问异地区域冗余存储 (RA-GZRS)。 如果将存储帐户配置为使用 RA-GRS 或 RA-GZRS,文件共享将配置为 GRS 或 GZRS 并按这两项进行计费。

以下项目可能会影响故障转移到次要区域的能力:

  • 如果次要区域中不存在系统快照,将阻止存储帐户故障转移。
  • 如果存储帐户包含超过 100,000 个文件共享,则会阻止存储帐户故障转移。 若要对存储帐户执行故障转移,请提出支持请求。
  • 文件句柄和租约在故障转移时不会保留,客户端必须卸载并重新挂载文件共享。
  • 文件共享配额可能会在故障转移后更改。 次要区域中的文件共享配额将基于在主要区域中采用系统快照时配置的配额。
  • 发生故障转移时,正在进行的复制操作将中止。 故障转移到次要区域完成后,请重试复制操作。

要对存储帐户执行故障转移,请参阅启动帐户故障转移

警告

将 Azure 文件与异地冗余存储配合使用时,目录查询在故障转移后可能会遇到更高的延迟。 这可以在主存储与辅助存储之间同步期间发生,尤其是对于具有多个文件或具有多个快照共享的目录。 如果缓存目录下有许多文件,则在同步完成之前,可能会观察到性能下降。 在某些情况下,即使同步后,性能影响也会持续。

SSD 文件共享的异地冗余

如前所述,SSD 文件共享不支持异地冗余选项(GRS 和 GZRS)。 但是,可以通过其他方式实现异地冗余。

对于 Azure 文件同步方案,可以在 Azure 文件共享(云终结点)、本地 Windows 文件服务器以及另一个 Azure 区域中的虚拟机上运行的已装载的文件共享(用于灾难恢复的服务器终结点)之间进行同步。 必须禁用云分层以确保所有数据都存在于本地,并在 Azure VM 上预配足够的存储来保存整个数据集。 为了确保将更改快速复制到次要区域,只应在服务器终结点上(而不是在 Azure 中)访问和修改文件。

还可以创建自己的脚本,以使用 AzCopy 等工具(使用版本 10.4 或更高版本来保留 ACL 和时间戳)将数据复制到次要区域中的存储帐户。

冗余选项摘要

以下部分中的表格汇总了可用于 Azure 文件存储的冗余选项。

持久性和可用性参数

下表描述了每个冗余选项的关键参数:

参数 LRS ZRS GRS GZRS
特定年份内的耐久性百分比 至少 99.999999999%(11 个 9) 至少为 99.9999999999%(12 个 9) 至少为 99.99999999999999%(共16个9) 至少为 99.99999999999999% (16个9)
读取请求的可用性 至少为 99.9%(冷层为 99%) 至少为 99.9%(冷层为 99%) 至少为 99.9%(冷层为 99%) 至少为 99.9%(冷层为 99%)
写入请求的可用性 至少为 99.9%(冷层为 99%) 至少为 99.9%(冷层为 99%) 至少为 99.9%(冷层为 99%) 至少为 99.9%(冷层为 99%)
在单独的节点上维护的数据副本数 跨区域中的一个或多个可用性区域的三个副本 在单一地区内的不同可用区中创建三个副本 共六个副本,包括主要区域中的三个副本和次要区域中的三个副本 共六个副本,包括跨主要区域内的不同可用性区域的三个副本和次要区域中的三个本地冗余副本

有关详细信息,请参阅 存储帐户的 SLA

按中断场景分析的持久性和可用性

下表指示数据是否持久且在给定场景中可用,具体取决于对存储帐户启用的冗余类型。 Azure Files 不支持在主要区域不可用时对次要区域进行读取访问,除非发生故障转移事件。

中断方案 LRS ZRS GRS GZRS
数据中心内的节点变为不可用
整个数据中心(区域性或非区域性)不可用 1
主要区域发生区域范围的服务中断 1 1

1 如果主要区域变为不可用,则需要执行帐户故障转移来恢复写入可用性。

有关每个冗余选项的定价信息,请参阅 Azure 文件存储定价

基于不同计费模型的区域可支持性

可以使用以下命令验证各种计费模型的区域可支持性。

若要根据不同的计费模型查看区域可支持性,请使用 Azure PowerShell 或 Azure CLI。

另请参阅