如何修复 Azure File Sync 回调问题:云分层故障排查指南

Azure File Sync 回调是与 云分层 相关的一项关键功能。当启用云分层后,访问频率较低的文件(称为“冷”文件)会存储在云中,以节省本地存储空间。但是,文件的元数据和结构(命名空间)仍保留在本地服务器上。

当用户或应用尝试访问已分层的文件时, 回调过程 会被触发。此过程会无缝地从云中的 Azure 文件共享中检索文件内容,并使其在本地可用。回调会自动进行,确保对用户的影响降到最低。


问题描述

在最近的一个 Azure File Sync 环境中,由于以下错误,观察到回调失败:

RecallToDiskType: No

此错误表明 文件系统缓存使用量 已达到最大阈值。因此,已分层的文件未能按预期下载其完整数据内容。


排查问题

为了解决回调失败问题,采取了以下步骤:

1. 了解原因

经确认,回调失败是由于 内存限制造成的。默认情况下:

  • 已分配内存的 10% 保留用于回调。
  • 如果回调超过 这部分保留内存的 60%,则会从内存中提供服务,而不会写入磁盘。

当内存阈值被超出时,这种行为引发了问题。

2. 验证数据回调过程

团队通过以下方式验证了数据的回调方式:

  • 检查为回调请求的 数据大小 。
  • 确保回调的数据与写入服务器终结点磁盘的数据相符。
  • 查看 文件同步代理回调结果 (事件 ID 1110),以确认回调是成功还是失败。

3. 调整内存设置

为了解决该问题,通过修改注册表设置增加了用于回调的内存分配。执行了以下命令:

reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v BottomlessFilterSharedMemSizePercentage /t REG_DWORD /d 30 /f
reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v BottomlessFilterCacheUsagePercentage /t REG_DWORD /d 70 /f
fltmc unload StorageSync
fltmc load StorageSync
net stop filesyncsvc
net start filesyncsvc

这些更改使 服务器总内存的 30% 可用于回调,提高了将回调数据持久保存到磁盘的能力。


解决方案

通过实施上述步骤,由文件系统缓存限制引起的回调失败已成功解决。这确保了 Azure File Sync 环境中数据回调过程更加顺畅、更加可靠。


额外提示

以下是一些其他资源,可帮助你更好地理解和管理 Azure File Sync 云分层:

  • 了解 Azure File Sync 云分层 | Microsoft Learn
  • 如何管理 Azure File Sync 分层文件 | Microsoft Learn


  • 结论

    Azure File Sync 回调对于优化本地存储使用量、同时保持对云分层文件的无缝访问至关重要。理解并排查内存限制等问题有助于确保可靠、高效的回调过程。按照上述步骤,你可以解决回调失败问题,并提高 Azure File Sync 环境的性能。

    发表评论