云分层概述

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

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

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

云分层的工作方式

云分层策略

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

卷可用空间策略

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

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

日期策略

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

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

Windows Server 重复数据删除

从 Windows Server 2016 开始,启用了云分层的卷上均支持重复数据删除。 有关详细信息,请参阅规划 Azure 文件同步部署

云分层热度地图

Azure 文件同步监视一段时间内的文件访问(读取和写入操作),并根据文件最近的访问情况和访问频率为每个文件分配热度分数。 它使用这些分数在每个服务器终结点上生成命名空间的“热度地图”。 此热度地图是某个已启用云分层的位置上的所有同步文件的列表,按照文件热度分数排序。 最近打开的频繁访问的文件可视为热文件,而几乎没有被碰过的、有一段时间没有进行访问的文件可视为冷文件。

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

通常,会跟踪和提供上次访问时间。 但是,新建服务器终结点时,如果已启用云分层,则没有足够的时间观察文件访问。 如果没有有效的上次访问时间,会改用上次修改时间以估算热度地图中的相对位置。

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

注意

云分层不依赖 NTFS 功能跟踪上次访问时间。 默认情况下,此 NTFS 功能处于关闭状态,出于性能方面的考虑,不建议手动启用此功能。 云分层单独跟踪上次访问时间。

主动召回

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

如果本地不需要召回到服务器的文件,不必要的召回会增加出口流量和成本。 因此,只有在以下情况才启用主动召回:你知道使用来自云的最近更改预先填充服务器的缓存会对使用该服务器上文件的用户或应用程序产生积极影响。

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

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

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

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

分层文件

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

A screenshot of a file's properties when it is tiered - namespace only.

本地缓存的文件

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

A screenshot of a file's properties when it is not tiered - namespace + file content.

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

注意

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

磁盘空间不足模式

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

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

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

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

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

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

  • 非持久召回:用户打开分层文件时,直接从 Azure 文件共享召回的文件不会保存到磁盘。 Invoke-StorageSyncFileRecall cmdlet 发起的召回是该规则的例外,将保存到磁盘。

卷可用空间超过阈值时,Azure 文件同步会自动还原为正常状态。 磁盘空间不足模式仅适用于已启用云分层的服务器,将始终遵循卷可用空间策略。

如果卷有两个服务器终结点,一个已启用分层,一个未启用分层,磁盘空间不足模式仅适用于已启用分层的服务器终结点。

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

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

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

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

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

磁盘空间不足模式如何兼容卷可用空间策略?

磁盘空间不足模式始终遵循卷可用空间策略。 阈值计算旨在确保用户设置的卷可用空间策略得到遵循。

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

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

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

可通过下面的两种方法在服务器终结点上退出低磁盘模式:

  1. 如果不再更加频繁地持续召回和分层文件,低磁盘模式将自动切换到正常行为,而无需任何干预。
  2. 可以通过增加卷大小或释放服务器终结点外部的空间来手动加快进程。

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

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

后续步骤