我有两台 SLES 11 服务器,它们通过 SAN 连接到 Clarion CX-340。SAN 分区已使用 ocfs2 格式化,并且我在集群中设置了两台机器,并且集群正在运行(一切似乎正常)。我有一个小型 Java 应用程序作为锁定测试,当我同时在两台机器上运行该应用程序时,我应该在一台服务器上获得锁定,而另一台服务器应该拒绝锁定,因为第一台服务器已经持有该文件的锁定,但在这种情况下,两台服务器都持有同一文件的锁定。
基本上我的 cluster.conf 看起来像这样:
node:
ip_port = 7777
ip_address = 192.168.10.121
number = 1
name = osrsles10node1
cluster = osrsles10
node:
ip_port = 7777
ip_address = 192.168.10.122
number = 2
name = osrsles10node2
cluster = osrsles10
cluster:
node_count = 2
name = osrsles10
请询问任何其他信息 - 我确实需要这些锁对于每个服务器都是独有的。
谢谢。
答案1
您使用的是哪种类型的锁定?flock(2)、fcntl(2)?如果您不确定,可以在 strace 下运行 Java 应用程序来找出答案。
OCFS2 仅支持集群范围的 flock - 不支持 fcntl。