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