你可以使用 Azure 文件同步,即可将组织的文件共享集中在 Azure 文件中,又不失本地文件服务器的灵活性、性能和兼容性。 本文旨在帮助排查和解决在 Azure 文件同步部署中可能遇到的问题。 此外,还介绍了在需要对问题进行更深入调查的情况下,如何从系统收集重要日志。
常见故障排除文档
根据遇到的问题,查看相应的故障排除文档:
问题 | 疑难解答文档 |
---|---|
代理安装或服务器注册问题 | 排查 Azure 文件同步代理安装和服务器注册问题 |
云终结点或服务器终结点创建问题,或已注册的服务器处于脱机状态 | 排查 Azure 文件同步组管理问题 |
服务器终结点有错误状态,或者文件无法同步 | 排查Azure 文件同步同步运行状况和错误 |
文件无法分层或召回 | 排查 Azure 文件同步云分层问题 |
存储同步代理服务 (FileSyncSvc) 无法启动 | Azure 文件同步排除故障 |
服务器上的内存使用率较高 | Azure 文件同步排除故障 |
如果不确定从何处开始,请参阅 常规故障排除第一步。
常规故障排除首要步骤
如果遇到Azure 文件同步问题,请首先完成以下步骤:
- 使用服务器上的Azure 门户或事件日志检查是否存在任何错误。 有关如何使用Azure 门户或事件日志查看Azure 文件同步环境的运行状况的信息,请参阅“监视Azure 文件同步”。
- 验证 Azure 文件同步服务是否正在服务器上运行。
- 打开服务 MMC 管理单元,然后验证存储同步代理服务 (FileSyncSvc) 是否正在运行。 如果服务未运行且无法启动,请参阅 存储同步代理服务(FileSyncSvc)无法启动。
- 验证Azure 文件同步筛选器驱动程序(StorageSync.sys和StorageSyncGuard.sys)是否在服务器上运行:
- 在权限提升的命令提示符下,运行
fltmc
。 验证StorageSync.sys和StorageSyncGuard.sys文件系统筛选器驱动程序是否已列出。
- 在权限提升的命令提示符下,运行
- 使用服务器上的 Debug-StorageSyncServer cmdlet 检查常见问题。
Debug-StorageSyncServer cmdlet(命令行工具)
该 Debug-StorageSyncServer
cmdlet 将诊断Azure 文件同步服务器上的常见问题,例如证书配置错误和不正确的服务器时间。 我们还通过将某些现有脚本和 cmdlet 的功能(AFSDiag.ps1、FileSyncErrorsReport.ps1 和Test-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,请执行以下步骤:
打开提升的 PowerShell 窗口,然后运行以下命令(在每个命令后按 Enter ):
注意
AFSDiag 会在收集日志之前在其中创建输出目录和临时文件夹,并将在执行后删除临时文件夹。 指定不包含数据的输出位置。
Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll" Debug-StorageSyncServer -AFSDiag -OutputDirectory C:\output -KernelModeTraceLevel Verbose -UserModeTraceLevel Verbose
重现问题。 完成后,输入 D。
随即会将一个包含日志和跟踪文件的 .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 反馈社区。