云分层概述

云分层是 Azure 文件同步的一项可选功能,可减少所需的本地存储量,同时保留本地文件服务器的性能。

启用此功能时,它仅将经常访问的(热)文件存储在本地服务器上。 不常访问的(冷)文件会拆分为命名空间(文件和文件夹结构)和文件内容。 命名空间存储在本地,文件内容存储在云中的 Azure 文件共享中。

当用户打开分层文件时,Azure 文件同步会无缝地从 Azure 文件共享中撤回文件数据。

云分层的工作机制

云分层通过监视文件访问模式并根据定义的策略对文件进行分层。

云分层策略

启用云分层时,可以设置两个策略来通知 Azure 文件同步何时对冷文件进行分层: 卷可用空间策略日期策略

卷可用空间策略

卷可用空间策略告诉 Azure 文件同步,当本地磁盘上被占用一定量的空间时,将冷文件分层到云

例如,如果本地磁盘容量为 200 GiB,并且希望本地磁盘容量的至少 40 GiB 始终保持可用状态,请将卷可用空间策略设置为 20%。 卷可用空间适用于卷级别,不适用于各个目录或服务器终结点的级别。

日期策略

按照日期策略,如果在 x 天内未访问(读取或写入)冷文件,它们会分层到云。 例如,如果你注意到未访问超过 15 天的文件通常是存档文件,则应将日期策略设置为 15 天。

有关日期策略和卷可用空间策略如何协同工作的更多示例,请参阅 “选择 Azure 文件同步云分层策略”。

Windows Server 数据去重

从 Windows Server 2016 开始,在启用了云分层的卷上支持数据重复数据删除。 有关详细信息,请参阅 Plan for an Azure File Sync deployment

云分层热度地图

Azure 文件同步会随时间推移监视文件访问(读取和写入作),并根据文件的最近和频繁访问方式为每个文件分配热度分数。 它使用这些分数在每个服务器端点上生成命名空间的“热图”。 此热度地图是启用了云分层的位置中所有同步文件的列表,按其热度分数排序。 最近经常访问的文件被视为活跃文件,而很少访问且一段时间未访问的文件则被视为不活跃文件。

若要确定单个文件在该热度地图中的相对位置,系统按以下顺序使用其时间戳的最大值:MAX(上次访问时间、上次修改时间、创建时间)。

通常,上次访问时间会被跟踪并可供查询。 但是,当创建启用了云分层的新服务器终结点时,尚未经过足够时间来观察文件访问情况。 如果没有有效的上次访问时间,则改用上次修改时间来评估热度地图中的相对位置。

日期策略的工作原理也是这样。 如果没有上次访问时间,日期策略将依据上次修改的时间。 如果该信息不可用,则会回退到文件的创建时间。 随着时间的推移,系统会观察更多的文件访问请求,并自动开始使用自跟踪的上次访问时间。

Note

云分层不依赖于 NTFS 功能来跟踪上次访问时间。 默认情况下,此 NTFS 功能处于关闭状态。 由于性能注意事项,我们不建议手动启用此功能。 云分层单独跟踪上次访问时间。

选择云分层策略时的注意事项

访问频率较低的冷文件最适合分层文件,因为召回数据需要从云下载。 Azure 文件同步会保留总内存的 10%,用于将召回保存到磁盘。 如果此保留内存的 60% 已在使用,请求将不会写到磁盘。 如果系统上存在大量分层文件并且发生了大量访问,则系统可能会达到内存阈值。 这种情况可能会导致意外的额外出口流量、I/O 性能下降、系统变慢和挂起。

主动召回

创建或修改文件时,可以将该文件主动召回到指定的服务器。 主动召回使新的或修改的文件可供每个指定服务器使用。

如果本地不需要召回到服务器的文件,不必要的召回可能会增加出口流量和成本。 因此,仅当知道使用云中最近更改预填充服务器的缓存将对使用该服务器上的文件的用户或应用程序产生积极的影响时,才启用主动召回。

启用主动召回还可能导致服务器上的带宽使用率增加,并可能导致本地服务器上的其他相对新的内容由于被召回的文件的增加而主动分层。 反过来,如果服务器认为要分层的文件是热文件,分层过快可能会导致召回增加。

有关主动召回的详细信息,请参阅 部署 Azure 文件同步

分层与本地缓存的文件行为

云分层是命名空间(文件和文件夹层次结构以及文件属性)与文件内容之间的分离。

分层文件

对于分层文件,磁盘上的大小为零,因为文件内容本身不会存储在本地。 文件分层后,Azure 文件同步文件系统筛选器 (StorageSync.sys) 会将本地文件替换为指针(称为重分析点)。 重新分析点表示 Azure 文件共享中的文件的 URL。 在 NTFS 中,分层文件同时设置了 offline 属性和 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 属性,使得第三方应用程序可以安全地识别分层文件。

屏幕截图显示了文件分层时(仅命名空间)的属性。

本地缓存文件

对于存储在本地文件服务器中的文件,磁盘上的大小大约等于文件的逻辑大小,因为整个文件(文件属性和文件内容)都存储在本地。

未分层时文件属性的屏幕截图 - 命名空间 + 文件内容。

另外,文件也可能被部分分层或部分召回。 在部分分层文件中,只有一部分文件存储在磁盘上。 如果支持流式访问文件的应用程序对文件进行部分读取,可能已经部分召回卷上的文件。 一些示例包括多媒体播放器和 zip 实用工具。 Azure 文件同步高效,仅召回已连接的 Azure 文件共享中请求的信息。

Note

大小表示文件的逻辑大小。 磁盘上的大小表示存储在磁盘上的文件流的物理大小。

磁盘空间不足模式

即使启用了云分层,具有服务器终结点的磁盘也会因各种原因而耗尽空间。 其原因包括:

  • 将数据手动复制到服务器终结点路径外部的磁盘
  • 慢速或延迟同步导致文件未分层
  • 过高的分层文件召回率

磁盘空间耗尽时,Azure 文件同步可能无法正常运行,甚至可能变得不可用。 虽然Azure File Sync无法完全阻止这些事件,但低磁盘空间模式(从 15.1 开始的Azure File Sync代理版本中可用)有助于防止服务器终结点达到这种情况,并帮助服务器更快地摆脱这种情况。

对于启用了云分层的服务器终结点,如果卷上的可用空间低于计算阈值,则卷将进入磁盘空间不足模式。

在磁盘空间不足模式下,Azure 文件同步代理以不同的方式执行两项作:

  • 主动分层:文件同步代理将文件更主动地分层到云。 同步代理每隔一分钟检查一次用于分层的文件,而不是正常频率为每小时一次。 在初始上传同步完成之前,基于卷可用空间策略的分层通常不会发生。 但是,在磁盘空间不足模式下,在初始上传同步期间会启用分层,并且在单个文件上传到 Azure 文件共享后就会被纳入分层考虑。

  • 非持久召回:当用户打开分层文件时,从Azure文件共享直接召回的文件不会持久保存在磁盘上。 由 Invoke-StorageSyncFileRecall cmdlet 启动的调用是此规则的例外,并会被保存到磁盘。

当卷可用空间超过阈值时,Azure File Sync会自动恢复到正常状态。 磁盘空间不足模式仅适用于启用了云分层的服务器,并且始终遵循卷可用空间策略。

如果卷有两个服务器终结点,一个启用了分层,一个没有分层,则低磁盘空间模式仅适用于启用了分层的服务器终结点。

如何计算低磁盘空间模式的阈值?

通过采用以下三个数字的最小值计算阈值:

  • 10% 的卷大小 (GiB)
  • 卷可用空间策略(以 GiB 为单位)
  • 20 GiB

下表包含有关如何计算阈值以及卷处于低磁盘空间模式时的一些示例。

卷大小 10% 的卷大小 卷可用空间策略 阈值 = 取最小值 (卷大小的10%、卷可用空间策略、20 GiB) 当前卷可用空间 是否为低磁盘空间模式? Reason
100 GiB 10 GiB 7% (7 GiB) 7 GiB = 最小值 (10 GiB, 7 GiB, 20 GiB) 9%(9 吉字节) No 当前卷可用空间 (9 GiB) > 阈值 (7 GiB)
100 GiB 10 GiB 7% (7 GiB) 7 GiB = 最小值 (10 GiB, 7 GiB, 20 GiB) 5%(5 吉比字节) Yes 当前卷可用空间 (5 GiB) < 阈值 (7 GiB)
300 GiB 30 GiB 8%(24 吉比字节) 20 GiB = 最小(30 GiB、24 GiB、20 GiB) 7%(21 GiB) No 当前卷可用空间 (21 GiB) > 阈值 (20 GiB)
300 GiB 30 GiB 8%(24 吉比字节) 20 GiB = 最小(30 GiB、24 GiB、20 GiB) 6% (18 GB) Yes 当前卷可用空间 (18 GiB) < 阈值 (20 GiB)

低磁盘空间模式如何与卷可用空间策略配合使用?

低磁盘空间模式始终遵循卷可用空间策略。 该阈值计算旨在确保其遵循你设置的卷可用空间策略。

服务器终结点处于低磁盘模式的最常见原因是什么?

低磁盘模式的主要原因是将大量数据复制或移动到启用了分层的服务器终结点所在的磁盘。

如何退出磁盘空间不足模式?

低磁盘模式会自动切换为正常行为,通过不持久化召回并更频繁地对文件进行分层,无需任何干预。 可以通过增加卷大小或释放服务器终结点外部的空间来手动加快进程。

如何检查服务器是否处于磁盘空间不足模式?

  • 如果服务器终结点处于磁盘空间不足模式,Azure门户会在服务器终结点的 云分层运行状况 部分的 错误 + 故障排除 选项卡中显示它。
  • 事件 ID 19000 每分钟记录到每个服务器终结点的遥测事件日志中。 使用此事件可确定服务器终结点是否处于磁盘空间不足模式(IsLowDiskMode = true)。 可以在 Applications and Services\Microsoft\FileSync\Agent 下的 Event Viewer 中找到遥测事件日志。

另请参阅