我管理着一个小型的 Windows 客户端网络和一个运行 Samba 4.6.x 的 BSD 文件服务器。我们遇到了一些奇怪的问题,导致我们发现当用户将文件保存到服务器时,大约 12% 的保存文件不是 Windows 原始文件的忠实副本。(通过复制 2000 个 1 - 5 MB 的文件并对 Windows 原始文件和 BSD 副本进行哈希处理进行测试:大约 245 个文件有所不同)。
我测试了一堆东西:从多个客户端复制(所有客户端上都发生了相同的事情)、服务器硬件检查(ECC 正常,ZFS 无错误)、网络数据损坏(端到端无问题)、方向性(从客户端复制到服务器损坏约 12%,从服务器复制到客户端正常)、一致性(在一个会话中连续复制同一个文件夹 3 次并进行比较:在每个副本中,损坏的文件都不同;一个副本没有损坏)、长路径问题(文件名中没有长文件名、路径或奇数字符)。
我也使用 SCP 进行复制,但一两秒后出现“服务器中止连接”错误,这可能意味着什么,也可能什么都不是,所以我无法检查它是否是 Samba 特有的。我认为 SCP 使用的 SSH 非常稳定,所以我不确定该怎么做。NIC 质量很好 - Intel 1G + Chelsio 10G。没有其他人登录,服务器被锁定并设置了防火墙,并且没有进行任何系统调整 - 它几乎是 FreeBSD 11 + Samba。
我一直(天真地?)认为文件服务器问题几乎总是由访问问题(配置、权限和身份验证)导致的,只要用户能够实际写入文件,那么除非硬件出现故障,否则它“就正常工作”。因此,这种随机的“文件保存在服务器上,但保存的版本与原始版本不同”确实让我感到困惑。
有什么建议可能导致这种情况的问题是什么,以及如何解决它?