最近遇到一个比较奇怪的问题,着实让人费解。

环境:
serverA 和 serverB 做了HA双机,共享同一个盘阵;
资源组test中有四个盘阵资源,在切换后还要将这四个目录通过NFS共享出去,供两个客户端挂载使用;
例如,共享目录为:
/test1
/test2
/test3
/test4

现象:
serverA 和 serverB 做了HA集群,共享同一个盘阵。由于上面是双卡双口的光纤卡,所以用了 multipathd 进行链路冗余,并做了别名,例如 /dev/mapper/test1 。当资源组在serverA 或者 serverB上进行切换时,除了会挂载盘阵外,还会启动NFS服务,将盘阵的挂载目录共享出去,由另外两个客户端挂载使用。

当HA切换后,客户端挂载的/test1目录会出现 “Stale NFS file handle” 提示,其他共享的目录内容会错乱,重新挂载就恢复正常,但客户不希望手动干预,于是查找原因。原来 /dev/mapper/test1 在 serverA 和 serverB 上的主从设备号不同,而NFS默认是会使用设备主从设备号的,所以,在 /etc/exports 中加入 fsid 参数,例如 fsid=1000001 ,其中这个值是自定义的,不能超过32位,0有特殊用途。

加入参数后,多次切换测试,客户端一切正常,但突然发现,客户端A上df显示的是正常,但进入 /test1 目录下执行 ls 依旧会报 “Stale NFS file handle” 提示,而另外三个目录则一切正常。这个现象只有多次切换后,才会偶尔出现。客户端B 上挂载的一直没有该问题。

研究无果后,放弃NFS,采用smb进行测试,多次切换均正常。

如有了解详情的,可以给我留言,不胜感激,谢谢!