为什么查看同一驱动器的两台服务器无法查看相同的文件?

为什么查看同一驱动器的两台服务器无法查看相同的文件?

我有两台 Windows 2008R2 服务器。两台服务器都指向我们 SAN 上的同一个 iSCSI 驱动器,但两台服务器都看不到相同的数据。

服务器 1 可以将数据写入 SAN,并且可以立即看到写入的内容。服务器 2 在上次重新启动后无法看到服务器 1 写入的内容。

操作系统似乎不是问题。我有 Win2K3 服务器、Win2008 服务器和 2008R2 系统,都存在同样的问题。

只有写入方可以读取该数据,直到另一方重新启动。

我应该从哪里开始寻找并尝试解决这个问题?

我认为集群的整个意义(虽然不是我正在做的,但仍然是)是让两个系统指向同一个 SAN 驱动器并共享通用数据。这使我相信我应该能够在共享同一驱动器的两个系统之间进行读写。

我在这里遗漏了什么?

答案1

iSCSI 为服务器提供基于块的存储。在大多数情况下,服务器使用文件系统(如 NTFS)安装此存储,该文件系统仅由一台服务器拥有和管理。NTFS(您可能在这里使用的文件系统)通常不是集群感知文件系统,因此如果辅助主机可以看到同一个卷,它们要么被锁定(希望如此),要么会损坏该卷。

要使两台独立的机器同时共享一个 iSCSI 卷,您需要有一个支持此功能的集群感知文件系统。VMware 的 VMFS这样做集群共享卷 (CSV)W2K8 R2 Hyper-V 中可用的集群文件系统。

对您来说,最简单的解决方案是将存储呈现给一台服务器并共享该卷,以便第二台服务器可以使用 SMB 映射到该卷。

编辑后添加:
如果您选择通过 Windows 共享卷,则没有真正的方法可以绕过双网络跳跃,但对于大多数服务器应用程序,您应该能够指定 UNC 路径(\\服务器\共享名称) 而不是映射的驱动器号。如果服务在具有共享权限的帐户下运行,则此方法有效。

您没有说您有什么样的 iSCSI 目标 - 可能可以将其配置为直接充当(比如说) SMB 或 NFS 共享。Windows Server 2008 R2 支持 Unix 互操作性组件其中包括一个 NFS 客户端。这可能为您提供了一种避免双网络跳转的机制,但我无法评论其性能,它可能不会比 SMB 共享更好。

相关内容