一如既往,先介绍一下背景。我管理两个 HPC 系统。两者都运行相同的操作系统,在本例中为 CentOS 7。它们都挂载了由服务器提供的 NFS 共享,该服务器还有许多其他共享,运行 Debian 8。直到最近,共享还在使用 PosixACL,客户端都按应有的方式显示它们。
我最近将 HPC 使用的 NFS 共享的数据移到了新的存储服务器。新旧服务器都使用 ZFS,并且位于同一个 10G 网络上,因此我通过 ZFS 发送/接收移动了数据。新服务器运行 Debian 9,并且具有与旧服务器相同的软件负载(当然不包括版本号)。NFS 共享的 /etc/export 文件条目被复制过来,唯一的更改是目录名称,因为 ZFS 池的名称不同。新服务器还具有 HPC Infiniband 网络的连接,这就是我用来从每个 HPC 连接到 NFS 共享的方式。
在新服务器上设置好一切后,我卸载了每个 HPC 上的共享,将 fstab 条目更改为通过 Infiniband 网络指向它,然后重新安装它。这似乎没有任何问题。直到用户试图回去工作。
最终我发现,以前在 HPC 上显示的 ACL 不再全部存在。不,这不是打字错误。通过 + 显示的存储服务器上的 ACL 并非全部显示在 HPC 上。以下是两个示例,其中用户、组和目录名称已更改。
首先是存储服务器。
drwxrwxrwx+ 2 user1 group1 22 Aug 23 2018 directory
drwxr-xr-x+ 8 user2 group2 9 Apr 25 2019 user2-directory
drwxrwxr-x+ 13 user3 group3 21 Jan 17 14:08 user3-directory
drwxrwx---+ 11 user4 group3 11 Feb 14 12:49 shared-directory
drwxrwxr-x 6 user5 group4 10 Mar 4 08:40 user5-directory
drwxr-xr-x 8 user6 group3 8 Jul 16 2019 share2-directory
接下来是与 HPC 上看到的相同的 6 个目录。
drwxrwxrwx+ 2 user1 group1 22 Aug 23 2018 directory
drwxr-xr-x 8 user2 group2 9 Apr 25 2019 user2-directory
drwxrwxr-x 13 user3 group3 21 Jan 17 19:08 user3-directory
drwxrwx--- 11 user4 group3 11 Feb 14 17:49 shared-directory
drwxrwxr-x 6 user5 group4 10 Mar 4 13:40 user5-directory
drwxr-xr-x 8 user6 group3 8 Jul 16 2019 share2-directory
我还注意到了这些的时间差异,想知道这是否是问题的一部分。真正奇怪的是,当我在 HPC 上运行 getfacl 时,在应该具有 ACL 的目录上,我得到的输出与我在存储服务器上看到的相同。也就是说,我的用户都报告说,根据 ACL,他们仍然没有应有的访问权限。
最后要注意的是,这里是共享的 /etc/exports 条目和其中一个 HPC 的 /etc/fstab,当然所有名称和 IP 都经过了修改。
/zfspool/zfsfilesystem 192.168.4.0/22(rw,crossmnt,nohide,async,no_root_squash,no_subtree_check) 192.168.8.0/22(rw,crossmnt,nohide,async,no_root_squash,no_subtree_check)
fstab 条目。
192.168.4.108:/zfspool/zfsfilesystem /mnt/zfsfilesystem nfs defaults 0 0
我尝试通过在 fstab 中添加 vers=3 来强制使用 NFSv3。没有发现任何变化。我还可以验证通过以太网而不是 Infiniband 进行安装没有区别。
由于这是一个很奇怪的问题,我希望有人能够提供帮助。