对 Azure 文件同步进行故障排除

你可以使用 Azure 文件同步,即可将组织的文件共享集中在 Azure 文件中,又不失本地文件服务器的灵活性、性能和兼容性。 本文旨在帮助排查和解决在 Azure 文件同步部署中可能遇到的问题。 此外,还介绍了在需要对问题进行更深入调查的情况下,如何从系统收集重要日志。

常见故障排除文档

根据遇到的问题,查看相应的故障排除文档:

问题 疑难解答文档
代理安装或服务器注册问题 排查 Azure 文件同步代理安装和服务器注册问题
云终结点或服务器终结点创建问题,或已注册的服务器处于脱机状态 排查 Azure 文件同步组管理问题
服务器终结点有错误状态,或者文件无法同步 排查Azure 文件同步同步运行状况和错误
文件无法分层或召回 排查 Azure 文件同步云分层问题
存储同步代理服务 (FileSyncSvc) 无法启动 Azure 文件同步排除故障
服务器上的内存使用率较高 Azure 文件同步排除故障

如果不确定从何处开始,请参阅 常规故障排除第一步

常规故障排除首要步骤

如果遇到Azure 文件同步问题,请首先完成以下步骤:

  1. 使用服务器上的Azure 门户或事件日志检查是否存在任何错误。 有关如何使用Azure 门户或事件日志查看Azure 文件同步环境的运行状况的信息,请参阅“监视Azure 文件同步”。
  2. 验证 Azure 文件同步服务是否正在服务器上运行。
  3. 验证Azure 文件同步筛选器驱动程序(StorageSync.sysStorageSyncGuard.sys)是否在服务器上运行:
    • 在权限提升的命令提示符下,运行 fltmc。 验证StorageSync.sysStorageSyncGuard.sys文件系统筛选器驱动程序是否已列出。
  4. 使用服务器上的 Debug-StorageSyncServer cmdlet 检查常见问题。

Debug-StorageSyncServer cmdlet(命令行工具)

Debug-StorageSyncServer cmdlet 将诊断Azure 文件同步服务器上的常见问题,例如证书配置错误和不正确的服务器时间。 我们还通过将某些现有脚本和 cmdlet 的功能(AFSDiag.ps1、FileSyncErrorsReport.ps1Test-StorageSyncNetworkConnectivity)合并到 Debug-StorageSyncServer cmdlet 中来简化Azure 文件同步故障排除。

若要在服务器上运行诊断程序,请运行以下 PowerShell 命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Debug-StorageSyncServer -Diagnose

若要测试服务器上的网络连接,请运行以下 PowerShell 命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Debug-StorageSyncServer -TestNetworkConnectivity

若要识别服务器上无法同步的文件,请运行以下 PowerShell 命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Debug-StorageSyncServer -FileSyncErrorsReport

若要在服务器上收集日志和跟踪,请运行以下 PowerShell 命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Debug-StorageSyncServer -AFSDiag -OutputDirectory C:\output -KernelModeTraceLevel Verbose -UserModeTraceLevel Verbose

如何在 Azure 文件同步 服务器上收集日志和跟踪

如果在执行故障排除文档中的步骤后未解决问题,请运行 AFSDiag 工具并将其.zip文件输出发送到分配给案例的支持工程师进行进一步诊断。

若要运行 AFSDiag,请执行以下步骤:

  1. 打开提升的 PowerShell 窗口,然后运行以下命令(在每个命令后按 Enter ):

    注意

    AFSDiag 会在收集日志之前在其中创建输出目录和临时文件夹,并将在执行后删除临时文件夹。 指定不包含数据的输出位置。

    Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
    Debug-StorageSyncServer -AFSDiag -OutputDirectory C:\output -KernelModeTraceLevel Verbose -UserModeTraceLevel Verbose
    
  2. 重现问题。 完成后,输入 D

  3. 随即会将一个包含日志和跟踪文件的 .zip 文件保存到指定的输出目录。

存储同步代理服务 (FileSyncSvc) 无法启动

安装或升级 Azure 文件同步代理(v18 或更高版本)后,可能会遇到以下症状之一:

  • 存储同步代理服务(FileSyncSvc)无法启动并出现以下错误:

    Error 0x80070057: The parameter is incorrect. 
    
  • 使用 Register-AzStorageSyncServer cmdlet 注册服务器失败,并出现以下错误:

    Register-AzStorageSyncServer: Exception of type 'Commands.StorageSync.Interop.Exceptions.ServerRegistrationException' was thrown.
    
  • ServerRegistration.exe或AfsUpdater.exe无法打开

  • 代理安装失败。 安装日志显示错误代码0x80c84111,并显示以下消息:

    Exception occurred while configuring MitigationRedirection policy. This could indicate that required windows updates not installed on the computer.
    

出现这些问题的原因是 Azure 文件同步代理依赖于 Windows 安全功能,并且未安装此安全功能的更新。

若要解决此问题,请验证 Windows Server 是否安装了以下更新:

  • Windows Server 2016 Microsoft更新目录 (最新的累积更新)

  • Windows Server 2019 Microsoft 更新目录 (最新累积更新)

    累积更新会按月发布。 若要部署最新更新,可以使用 Windows 更新或从 Microsoft更新目录下载更新。 在手动安装之前,请查看关联的知识库(KB)一文,以确保满足所有先决条件。如果在安装 Azure 文件同步代理之前未安装 Windows 更新,则存储同步代理服务(FileSyncSvc)将无法启动。

自动更新无法升级“即将过期”或已过期的 Azure 文件同步代理

如果自动更新无法升级即将过期或已过期的 Azure 文件同步代理,请验证代理过期信息是否已正确应用于服务器。 自动更新需要过期元数据才能按预期运行。

若要验证 AgentExpirationDate 元数据是否已设置,请在管理员权限的 PowerShell 会话中运行以下命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Get-StorageSyncServer

AgentExpirationDate如果未设置元数据或其值为空,则可能存在阻止服务器接收过期数据的网络问题。 若要测试网络连接,请运行以下命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Test-StorageSyncNetworkConnectivity

如果报告了网络连接问题,您可以通过从 Microsoft 更新目录下载来手动更新代理。

下载相应的代理版本后,请参阅目录中的特定知识库文章,了解分步安装说明。

如果没有连接问题,并且 AgentExpirationDate 元数据仍未设置,请联系 Azure 文件同步支持部门以获取进一步的帮助。

服务器上的内存使用率较高

Azure 文件同步使用可扩展存储引擎(ESE)数据库进行同步和云分层。 ESE 数据库最多可以使用 80% 的系统内存来提高性能。 若要限制 ESE 数据库使用的内存量,可以在服务器上配置 MaxESEDbCachePercent 注册表设置。

若要将 ESE 内存使用率限制降低到 60%,这是内存利用率和足够缓存之间的良好平衡,以保持数据库体面的性能,请从提升的命令提示符运行以下命令:

REG ADD HKLM\Software\Microsoft\Azure\StorageSync /v MaxESEDbCachePercent /t REG_DWORD /d 60

MaxESEDbCachePercent创建注册表设置后,重启存储同步代理(FileSyncSvc)服务。

另请参阅

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区