使用 SMB2 的 2008/2008R2 共享出现奇怪问题

使用 SMB2 的 2008/2008R2 共享出现奇怪问题

有一个非常奇怪的问题,当连接到由 2008 或 2008 R2 服务器托管的 2008 或 2008 R2 服务器的共享时,添加到文件夹中的文件并不总是会立即更新。但是,如果托管共享的服务器运行的是 2003 或已关闭 SMB2,则不会发生此问题。

以下是我遇到的相同问题的链接:http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/4b69fe06-2b72-4795-a691-aa68aa348cb1/

我尝试了那里的所有方法,发现问题似乎与 SMB2 直接相关。当我禁用 SMB2 时,问题不会发生。但是,我并不认为这是一个真正的解决方案,所以希望有人能知道原因并可能找到解决方案。

答案1

这很可能是 Windows Server 2008/SMB2 引入的目录缓存功能存在缺陷。如果协商的协议是 SMB 2.0,则客户端 SMB 网络重定向器会使用三种不同的缓存。文件信息缓存、文件未找到缓存和目录缓存。

您可能能够通过仅禁用客户端上的目录缓存来进一步本地化它。

SMB2 客户端重定向器缓存说明
http://technet.microsoft.com/en-us/library/ff686200%28v=ws.10%29.aspx

您可能需要尝试在客户端上更新 mrxsmb20.sys,尽管我会在客户端和服务器上更新 2473205 中的所有文件。

在 Windows 7 或 Windows Server 2008 R2 中的共享文件夹中打开新创建的文件时出现“STATUS_OBJECT_NAME_NOT_FOUND”错误消息
http://support.microsoft.com/kb/2628582

如果在 Windows 7 或 Windows Server 2008 R2 中删除文件,SMB2 目录缓存无法正确更新
http://support.microsoft.com/kb/2646563

最新版本:

http://support.microsoft.com/kb/2778834

答案2

在这种情况下,SMBv2 确实似乎存在问题,而解决该问题的方法是禁用它。这会产生某些副作用,例如当通过较旧的 Microsoft 软件访问同一台服务器上的网络共享(例如在终端环境中)时,会出现 BSOD 报告。如果您的客户端是 Vista/7,它还会影响您使用脱机文件的能力。

无论如何,这是一篇关于此问题的精彩博客文章,评论也非常吸引人,并且有很多很好的链接和案例。

http://laslow.net/2011/01/31/server-2008-r2-and-windows-7-client-smb2-share-refresh-issue/

哦,最后……这是 2008 和 2008R2 的 SMB 可用修补程序列表。它们似乎都没有提到您和其他人遇到的问题。

http://support.microsoft.com/?id=2473205

相关内容