Azure 文件存储数据冗余

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

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

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

Azure 文件共享通过称作“存储帐户”的通用 Azure 资源进行管理。 存储帐户表示可用于部署文件共享的共享存储池。 有关存储帐户的详细信息,请参阅 存储帐户概述

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

适用于

管理模型 计费模式 媒体层 冗余 中小型企业 (SMB) 网络文件系统(NFS)
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) 在主要区域中的单个数据中心内复制存储帐户三次。 LRS 可在一年中提供至少 99.999999999%(11 个 9)的持久性。

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

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

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

图表显示如何使用 LRS 在单个数据中心内复制数据。

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

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

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

区域冗余存储

区域冗余存储(ZRS)跨主要区域中的三个 Azure 可用性区域 同步复制存储帐户。 每个可用性区域都是一个独立的物理位置,具有独立的电源、冷却系统和网络。 ZRS 在一年中提供至少 99.9999999999%(12 个 9)的持久性。

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

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

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

备注

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

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

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

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

按区域提供 ZRS 支持

若要了解哪些区域支持标准文件共享的 ZRS,请参阅 Azure 区域列表 并参阅可用性区域支持列。 所有三个标准层(事务优化层、热层和冷层)的标准通用 v2 存储帐户都支持 ZRS。

SSD 文件共享通过 FileStorage 存储帐户类型支持 ZRS。 有关支持 SSD 文件共享帐户 ZRS 的区域列表,请参阅对 SSD 文件共享的 ZRS 支持

次要区域中的冗余

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

重要

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

创建存储帐户时,可以为帐户选择主要区域。 配对的次要区域是根据主要区域确定的且无法更改。 有关 Azure 支持的区域的详细信息,请参阅 Azure 区域列表

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

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

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

异地冗余存储

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

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

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

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

异地区域冗余存储

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

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

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

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

只有标准常规用途 v2 存储帐户支持 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 个文件共享,则会阻止存储帐户故障转移。 若要对存储帐户执行故障转移,请提出支持请求。
  • 文件句柄和租约在故障转移时不会保留,客户端必须卸载并重新挂载文件共享。
  • 文件共享配额可能会在故障转移后更改。 次要区域中的文件共享配额将基于在主要区域中采用系统快照时配置的配额。
  • 发生故障转移时,正在进行的复制操作将中止。 故障转移到次要区域完成后,请重试复制操作。

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

SSD 文件共享的异地冗余

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

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

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

冗余选项摘要

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

持久性和可用性参数

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

参数 学习记录库 ZRS GRS GZRS
给定一年内的持久性百分比 至少 99.999999999%(11 个 9) 至少为 99.9999999999% (12 9's) 至少为 99.99999999999999% (16 9's) 至少为 99.99999999999999% (16 9's)
读取请求的可用性 至少为 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 文件存储不支持对次要区域进行读取访问,除非发生故障转移。

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

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

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

另请参阅