(这已经开始变得相当长了,但是希望能够提供一些事情的摘要,以便碰到这个问题的其他人 – 这不是一个简单的万能解决scheme,其他解决scheme或途径调查结果也可以在答案中find)。
我在x64 Server 2008 R1 SP1服务器上运行可靠的共享时出现问题。
所有这些在重新启动后都能正常工作,但是经过一段时间(一天之内),共享对于XP和Server 2003服务器就无法使用了。 有趣的是,它们仍然可用于其他Server 2008服务器。
试图访问\\server\share ,Server 2003立即返回,只是给我的消息“指定的networking名称不再可用”,XP需要一两分钟超时之前,提供相同的消息。 事件日志中似乎没有任何内容表明存在问题。
在过去的一两天内做了一些Googlesearch,我曾经看到下面的一些指责:
netsh int tcp set global autotuninglevel=disabled和netsh int tcp set global rss=disabled (见参考文献4) 这些都没有影响。 Windows防火墙当前被禁用。
与其他Server 2008盒(x32和x64)可以连接,我只能假设有一些新的安全configuration不太正确 – 或者有一个AD问题,我需要跟踪,但不知道从哪里开始。 即使有人不知道如何解决,如果有人知道我需要用Wireshark寻找这将是一个帮助。
编辑 …我已经把一个Wireshark跟踪(仅由目标主机过滤),我所看到的是客户端(在这种情况下,Server 2003)发送一个SMB“谈判协议请求”消息到Server 2008,但是没有从服务器收到“协商协议响应”。 客户端重试,直到超时。 请注意,服务器正在响应会话请求。 这是事件的全部顺序:
C -> S NBSS Session Request S -> C NBSS Positive Session Response C -> S SMB Negotiate Protocol Request [no response; time passes]. C -> S NBSS Session Request S -> C NBSS Positive Session Response C -> S SMB Negotiate Protocol Request [no response; time passes]. [repeat]
EDIT2 …从服务器2008年客户端Wiresharking一个SMB连接显示谈判协议响应正在发送,但与SMBv2:
C -> S NBSS Session Request S -> C NBSS Positive Session Response C -> S SMB Negotiate Protocol Request S -> C SMB2 NegotiateProtocol Response C -> S SMB2 SessionSetup Request S -> C SMB2 SessionSetup Response [then the conversation contines, bringing the share back]
我将尝试禁用2k8服务器上的SMBv2(按照petri.co.il上的这些说明 ),并查看是否有帮助 – 应强制服务器随处使用SMB1。
EDIT3 …我也在Microsoft Technet论坛上发现了这篇文章 (“Windows 2008保持断开连接的共享+ outlook 2007保持连接交换2007”[ 原文如此 ]),其他人build议检查TCP Offload Chimneyconfiguration。 然而在目前这个时候,禁用了SMB2(见上面的EDIT2),目前情况似乎没有问题 – 上周五,SMB2被禁用后,股价还没有消失。 一个快速谷歌发现别人 (MS Technet论坛“服务器2008年共享文件打开问题”)谁发现禁用SMB2也是一个解决scheme。 在自我回答和closures这个问题之前,我会让它打好几天。
引用…
(1)Microsoft Networking Team – 从不同客户端到Windows Server 2008服务器的间歇性文件共享连接
(2)424help.com – Windows 2008服务器networking连接问题
(3)Symantec AVForums – MR3lockingServer 2008文件共享
(4)Usenet – 服务器2008 R2文件共享访问在重负载下失败 (也反映在techarena,eggheadcafe等各种networking论坛上)
在捕获中,将Packet Length添加到显示的列,然后按该列进行sorting。 你有没有比正常的以太网帧更大的帧? (我觉得1514)。 如果可能的话,你应该从服务器获取这个捕获。 或者在镜像服务器交换机端口的交换机端口上。
自从SMB2被禁用以来,已经将近一周了(见问题中的EDIT2),从那以后,共享就一直保持稳定。 作为参考,服务器configuration有:
我可能可以重新启用接收窗口自动调整,但是因为这是一个活跃的系统,这可能不会很快发生:我现在就放弃它,因为如果它没有中断,不要修复它 。
如果其他人有类似的问题,解决scheme可能会有所不同(请参阅此问题的其余部分) – 但禁用SMB2最终是解决我的情况。
顺便说一下,google似乎指出了可以通过禁用SMB2来解决其他问题,包括(从MSDN知识库中直接获得快乐的简短标题):
希望这一切都可以帮助别人:-)
编辑 – 2014年5月 …多年之后。 微软最近发布了知识库文章Windows停止响应,如果使用SMB v1协议访问针对Server 2008的共享文件 ,该文件可能会发生问题“由于Mrxsmb10.sys驱动程序中死锁发生”,和提供了一个修补程序。 这个问题还没有在这里重新实现,所以我不会申请 – 但细节听起来像我上面的经验。 如果对其他人有用,我会在答案中join它。