我有两台 Windows 2008R2 服务器。两者都指向我们 SAN 上的同一个 iSCSI 驱动器,但两台服务器看不到相同的数据。
服务器 1 可以将数据写入 SAN,并且可以立即看到它写入的内容。服务器 2,在上次重新启动服务器 2 后看不到服务器 1 写的内容。
操作系统在这里似乎不是问题。我有 Win2K3 服务器、Win2008 服务器和 2008R2 系统,都有相同的问题。
只有写入的那个可以读取该数据,直到另一个重新启动。
我可以从哪里开始尝试解决这个问题?
我认为集群的全部意义(不是我在做什么,但仍然是)是让两个系统指向同一个 SAN 驱动器,并共享公共数据。这使我相信我应该能够在共享同一驱动器的两个系统之间进行读写。
我在这里想念什么?
iSCSI 向服务器提供基于块的存储。在大多数情况下,服务器使用仅由一台服务器拥有和管理的文件系统(例如 NTFS)安装此存储。NTFS(您可能在这里使用的)通常不是集群感知文件系统,因此如果辅助主机对同一卷具有可见性,它们将被锁定(希望如此)或损坏该卷。
要让两台独立的机器同时共享一个 iSCSI 卷,您需要一个支持此功能的集群感知文件系统。VMware 的 VMFS与 W2K8 R2 Hyper-V 中可用的集群共享卷 (CSV)集群文件系统一样执行此操作。
最简单的解决方案是将存储提供给一台服务器并共享该卷,以便第二台服务器可以使用 SMB 映射到它。
编辑添加:
如果您选择通过 Windows 共享卷,则没有真正的解决双网络跃点的方法,但对于大多数服务器应用程序,您应该能够指定 UNC 路径 ( \\Server\sharename ) 而不是映射的驱动器号. 如果服务在有权共享的帐户下运行,这将起作用。
您没有说您拥有哪种 iSCSI 目标 - 可以将其配置为(例如)直接充当 SMB 或 NFS 共享。Windows Server 2008 R2 支持包含 NFS 客户端的 Unix 互操作性组件。这可能会为您提供一种避免双网络跃点的机制,但我无法评论性能,它可能不会比 SMB 共享更好。