Azure 文件可伸缩性和性能目标

Azure 文件在云中提供可通过 SMB 和 NFS 文件系统协议访问的完全托管的文件共享。 本文讨论了 Azure 文件和 Azure 文件同步的可伸缩性和性能目标。

此处列出的可伸缩性和性能目标是高端目标,但可能会受部署中的其他变量影响。 例如,除了受限于承载着 Azure 文件共享的服务器之外,针对文件的吞吐量还可能会受限于你的可用网络带宽。 强烈建议你对使用模式进行测试,以确定 Azure 文件的可伸缩性和性能是否满足你的要求。 随着时间的推移,我们也一直在努力提高这些限制。

适用于

文件共享类型 SMB NFS
标准文件共享 (GPv2),LRS 是 否
标准文件共享 (GPv2),GRS 是 否
高级文件共享 (FileStorage),LRS 是 是

Azure 文件规模目标

Azure 文件共享将部署到存储帐户。存储帐户是代表存储共享池的顶级对象。 此存储池可用于部署多个文件共享。 因此,需要考虑三个类别:存储帐户、Azure 文件共享和文件。

存储帐户缩放目标

对于客户的不同存储方案,Azure 支持多种类型的存储帐户,但对于 Azure 文件存储,有两个主要类型的存储帐户。 需要创建的存储帐户类型取决于你是要创建标准文件共享还是要创建高级文件共享:

  • 常规用途版本 2 (GPv2) 存储帐户:使用 GPv2 存储帐户可以在标准的/基于硬盘(基于 HDD)的硬件上部署 Azure 文件共享。 除了存储 Azure 文件共享以外,GPv2 存储帐户还可以存储其他存储资源,例如 Blob 容器、队列或表。 文件共享可部署到事务优化层(默认)、热层或冷层中。

  • FileStorage 存储帐户:使用 FileStorage 存储帐户可以在高级/基于固态磁盘(基于 SSD)的硬件上部署 Azure 文件共享。 FileStorage 帐户只能用于存储 Azure 文件共享;没有 blob 容器 (队列、表等存储资源) 可以部署在 FileStorage 帐户中。

属性 GPv2 存储帐户(标准) FileStorage 存储帐户(高级)
每个订阅每个区域的存储帐户数 250 250
最大存储帐户容量 5 PiB1 100 TiB(预配值)
最大文件共享数 无限制 无限制,所有共享的总预配大小必须小于最大存储帐户容量
最大并发请求速率 20,000 IOPS1 100,000 IOPS
最大流入量 LRS:9,536 MiB/秒1,GRS:4,768 MiB/秒1 4,136 MiB/秒
最大流出量 47,683 MiB/sec1 6,204 MiB/秒
虚拟网络规则的数目上限 200 200
IP 地址规则的数目上限 200 200
管理读取操作数目 每 5 分钟 800 次 每 5 分钟 800 次
管理写入操作数目 每秒 10 次/每小时 1200 次 每秒 10 次/每小时 1200 次
管理列出操作数目 每 5 分钟 100 次 每 5 分钟 100 次

1 常规用途版本 2 存储帐户根据请求支持更高的容量上限和更高的流入量上限。

Azure 文件共享缩放目标

属性 标准文件共享1 高级文件共享
文件共享的最小大小 无最小值 100 GiB(预配值)
预配大小增加/减少单位 不可用 1 GiB
文件共享的最大大小
  • 100 TiB,如果启用大型文件共享功能2
  • 5 TiB,默认值
100 TiB
文件共享中的文件数上限 无限制 无限制
最大请求速率(最大 IOPS)
  • 20,000,启用了大型文件共享功能2
  • 每 100 毫秒 1,000 或 100 个请求,默认值
  • 基线 IOPS:400 + 每 GiB 1 IOPS,最高 100,000
  • IOPS 突发:Max (4000, 每 GiB 3x IOPS),最高 100,000
单个文件共享的最大流入量
  • 最多 300 MiB/秒,如果启用大型文件共享功能2
  • 最高 60 MiB/秒,默认值
40 MiB/秒 + 0.04 * 预配 GiB
单个文件共享的最大流出量
  • 最多 300 MiB/秒,如果启用大型文件共享功能2
  • 最高 60 MiB/秒,默认值
60 MiB/秒 + 0.06 * 预配 GiB
共享快照的最大数目 200 个快照 200 个快照
最大对象(目录和文件)名称长度 2,048 个字符 2,048 个字符
最大路径名组成部分(在路径 \A\B\C\D 中,每个字母是一个组成部分) 255 个字符 255 个字符
硬链接限制(仅限 NFS) 不可用 178
SMB 多路通道的最大数量 不适用 4
每个文件共享的存储的访问策略的最大数目 5 5

1 标准文件共享的限制适用于标准文件共享可用的所有三个层:事务优化层、热层和冷层。

2 标准文件共享的默认大小为 5 TiB,请参阅创建 Azure 文件共享以了解如何创建大小为 100 TiB 的文件共享以及如何将现有的标准文件共享增加至 100 TiB。 要利用更大的缩放目标,必须更改配额,使其大于 5 TiB。

文件缩放目标

属性 标准文件共享中的文件 高级文件共享中的文件
文件大小上限 4 TiB 4 TiB
最大并发请求速率 1,000 IOPS 最高 8,0001
文件的最大流入量 60 MiB/秒 200 MiB/秒
文件的最大流出量 60 MiB/秒 300 MiB/秒
最大并发句柄数 2,000 个句柄 2,000 个句柄

1适用于读取和写入 Io (通常小于或等于 64 KiB) 的较小 IO 大小。 除读取和写入之外的元数据操作可能较低。

Azure 文件同步规模目标

下表指示了 Microsoft 测试的边界,还指出了哪些目标是硬限制:

资源 目标 硬限制
每个区域的存储同步服务数 100 个存储同步服务
每个存储同步服务的同步组数 200 个同步组
每个存储同步服务的已注册服务器 99 台服务器
每个同步组的云终结点数 1 个云终结点
每个同步组的服务器终结点数 100 个服务器终结点
每个服务器的服务器终结点数 30 个服务器终结点
每个同步组的文件系统对象数(目录和文件) 1 亿个对象
一个目录中的最大文件系统对象(目录和文件)数(非递归) 500 万个对象
最大对象(目录和文件)安全描述符大小 64 KiB
文件大小 100 GiB
要进行分层的文件的最小文件大小 基于文件系统群集大小(双文件系统群集大小)。 例如,如果文件系统群集大小为 4 KiB,则最小文件大小为 8 KiB。

注意

Azure 文件同步终结点可以纵向扩展到 Azure 文件共享的大小。 如果达到 Azure 文件共享大小限制,同步将无法运行。

Azure 文件同步性能指标

因为 Azure 文件同步代理在连接到 Azure 文件共享的 Windows Server 计算机上运行,所以实际的同步性能取决于基础结构中的许多元素:Windows Server 和基础磁盘配置、服务器与 Azure 存储之间的网络带宽、文件大小、总数据集大小以及数据集上的活动。 由于 Azure 文件同步在文件级别工作,因此可以更好地通过每秒处理的对象数(文件和目录)这一指标来度量基于 Azure 文件同步的解决方案的性能特征。

对于 Azure 文件同步,性能在两个阶段至关重要:

  1. 初始一次性预配:若要优化初始预配的性能,请参阅使用 Azure 文件同步进行载入来了解最佳部署详细信息。
  2. 持续同步:在 Azure 文件同步中初次植入数据后,Azure 文件同步会使多个终结点保持同步。

为帮助你计划每个阶段的部署,下面提供了在采用某个配置的系统上进行内部测试期间观察到的结果

系统配置 详细信息
CPU 64 个带 64 MiB L3 高速缓存的虚拟内核
内存 128 GiB
磁盘 采用 RAID 10 且带有以电池供电的高速缓存的 SAS 磁盘
网络 1 Gbps 网络
工作负荷 常规用途文件服务器
初始的一次性预配 详细信息
对象数 2500 万个对象
数据集大小 ~4.7 TiB
平均文件大小 ~200 KiB(最大的文件:100 GiB)
初始云更改枚举 每秒 20 个对象
上传吞吐量 每个同步组每秒 20 个对象
命名空间下载吞吐量 每秒 400 个对象

初始的一次性预配

初始云更改枚举:创建新的同步组后,初始云更改枚举是将执行的第一个步骤。 在此过程中,系统将枚举 Azure 文件共享中的所有项。 在此过程中,将不会有任何同步活动,即不会将任何项从云终结点下载到服务器终结点,并且不会将任何项从服务器终结点上传到云终结点。 初始云更改枚举完成后,同步活动才会继续。 性能速率为每秒 20 个对象。 客户可通过确定云共享中的项目数并使用以下公式获取时间(以天为单位)来估算完成初始云更改枚举所需的时间。

初始云枚举的时间(以天为单位)=(云终结点中的对象数)/(20 * 60 * 60 * 24)

将数据从 Windows Server 初始同步到 Azure 文件共享:许多 Azure 文件同步部署从一个空的 Azure 文件共享开始,因为所有数据都在 Windows Server 上。 在这些情况下,初始云更改枚举速度很快,并且时间主要花费在将 Windows Server 中的更改同步到 Azure 文件共享中。

同步将数据上传到 Azure 文件共享时,本地文件服务器不会停机,管理员可设置网络限制来限制用于后台数据上传的带宽量。

初始同步通常受每个同步组每秒 20 个文件的初始上传速率限制。 客户可使用以下公式来估算将其所有数据上传到 Azure 所需的时间(以天为单位):

同步组上传文件所需的时间(以天为单位)=(服务器终结点中的对象数)/(20 * 60 * 60 * 24)

将数据拆分到多个服务器终结点和同步组可加快此初始数据上传速度,因为多个同步组可以以每秒 20 项的速率并行上传。 因此,两个同步组将以每秒 40 项的组合速率运行。 完成的总时间将会是需要同步最多文件的同步组的预估时间。

命名空间下载吞吐量 将新服务器终结点添加到现有同步组时,Azure 文件同步代理不会从云终结点下载任何文件内容。 它将首先同步整个命名空间,然后触发后台调用来将文件整体下载,或者根据服务器终结点上设置的云分层策略进行下载(如果启用了云分层)。

持续同步 详细信息
同步的对象数 125,000 个对象(~1% 的改动)
数据集大小 50 GiB
平均文件大小 ~500 KiB
上传吞吐量 每个同步组每秒 20 个对象
完整下载吞吐量* 每秒 60 个对象

*如果启用了云分层,则性能可能更好,因为只会下载一部分文件数据。 只有当已缓存文件的数据在任何终结点上发生更改时,Azure 文件同步才会下载这些数据。 对于任何已分层的或新创建的文件,代理不会下载文件数据,而仅会将命名空间同步到所有服务器终结点。 代理还支持在用户访问已分层文件时下载这些文件的一部分。

注意

上述数字不代表你会实现的性能。 实际性能将取决于本部分开头列出的多个因素。

作为常规部署指南,应当牢记以下几件事情:

  • 对象吞吐量大约按服务器上的同步组数量成比例缩放。 在服务器上将数据拆分到多个同步组会实现更好的吞吐量,吞吐量还受限于服务器和网络。
  • 对象吞吐量与每秒 MiB 数这一吞吐量成反比。 对于较小的文件,每秒处理的对象数这一吞吐量较高,但每秒 MiB 数这一吞吐量较低。 相反,对于较大的文件,每秒处理的对象数较少,但每秒 MiB 数这一吞吐量较高。 每秒 MiB 数这一吞吐量受限于 Azure 文件规模目标。

另请参阅