有一位用户在我们的文件服务集群上发现了一个有趣的错误行为。他能够使用 WinXP 在他的主目录中创建一个目录,而 Win7 计算机却看不到它。这两者都适用,他能够使用 Win7 创建一个 XP 看不到的目录。
服务器是故障转移群集中的 Server 2008 SP2。服务器在资源管理器和命令行中只能看到“testing-7”目录。我检查了使用影子复制的备份软件,它也只能看到“testing-7”目录。但是,XP 工作站上的“以前的版本”很高兴地显示了“testing-xp”目录的以前版本,这些版本非常明显并且显然可以使用。
我对该卷运行了 chkdsk,以防万一存在一些潜在的损坏,但是没有发现任何东西。
此外,他还能够在两台计算机上的同一目录中创建一个名为“Arrow.docx”的文件。在这个文档中,他保存了不同的数据。重新启动所有程序后,win-7 计算机看到的是带有 win-7 数据的 arrow.docx 文件,而 WinXP 计算机看到的是带有 WinXP 数据的 arrow.docx 文件。
使用的机器是我们计算机实验室中相当标准的图像(由于正处于从 XP 到 Win7 的过渡期,我们目前拥有这两种版本)。我可以在自己的工作站上看到他创建的所有文件,它们的行为与他说的完全一样。
我已经能够复制该问题,但它似乎只影响我们最近迁移到新存储阵列的一个卷。迁移方法非常简单:
- 创建新的 LUN、格式化它、指定驱动器号并将其添加到目标资源。
- 使用 robocopy 将数据镜像到新的 LUN
- 再次使用它来捕获更改的数据
- 在故障转移管理器中,我执行了一些 3-card-monty 来交换驱动器号
- 我运行了一个我编写的 powershell 脚本来复制目录配额数据
一切似乎都有效。但现在出现了这个问题。这里有些事情非常奇怪,我正在寻找建议。
编辑回复:脱机文件
在我的工作站上将脱机文件更改为禁用会导致所有内容正常显示(在这种情况下,正常是“以 Win7 的视角看待世界”),而以前仅限 XP 的文件则消失了。但是,在另一个管理员工作站上,他仍然无法显示 Win7 文件。这更接近了!但它确实提出了数据丢失的问题。
答案1
问题原来是故障转移群集处理列出的迁移过程的方式出了问题。基于 SMB2 的客户端从新 LUN 获得服务,而基于 SMB 的客户端从旧 LUN 获得服务。我不知道为什么会出现这种情况。我最终打电话给微软,但他们无法重现这个问题。
最终,解决方法如下:
- 删除并重新创建故障转移群集中的共享文件夹配置
- 停止并启动故障转移群集中的文件服务器资源
这是一个非常不寻常的事件串联,它属于“怪癖”类别,而不是“错误”。但是嘿,我遇到了它。