NFS – 多个子目录 – 只有一个按预期压缩

NFS – 多个子目录 – 只有一个按预期压缩

安装多个共享时出现意外行为。

NFS 服务器

$ -> cd /mnt/raid/nas && ls -lZa
drwxrwxr-x. nas        filer      unconfined_u:object_r:file_t:s0  file
drwxrwxr-x. nas        filer      unconfined_u:object_r:file_t:s0  repo

$ -> cat /etc/exports
/mnt/raid/nas                   10.1.0.0/18(rw,fsid=0,sync)
/mnt/raid/nas/repo              10.1.0.0/18(rw,all_squash,sync,no_subtree_check,anonuid=501,anongid=503)
/mnt/raid/nas/file/perm         10.1.0.0/18(rw,all_squash,sync,no_subtree_check,anonuid=501,anongid=503)

$ -> id nas && id filer
uid=501(nas) gid=501(nas) groups=501(nas)
uid=502(filer) gid=503(filer) groups=503(filer)

NFS 客户端

$ -> id nas && id filer
uid=501(nas) gid=501(nas) groups=501(nas)
uid=502(filer) gid=503(filer) groups=503(filer)

$ -> cd /mnt/nas && ls -lZa
drwxrwxr-x. nas        filer      unconfined_u:object_r:mnt_t:s0   repo
drwxrwxr-x. nas        filer      unconfined_u:object_r:mnt_t:s0   store

$ -> sudo mount -t nfs4 nas-1:/repo /mnt/nas/repo
$ -> sudo mount -t nfs4 nas-1:/file/perm /mnt/nas/store/file/perm/

$ -> df -h
nas-1:/repo
                  550G  240G  283G  46% /mnt/nas/repo
nas-1:/file/perm
                  550G  240G  283G  46% /mnt/nas/store/file/perm

但是,当我向每个文件写入测试文件时,只有 perm/ 才能正确地压缩用户。

$ -> touch /mnt/nas/repo/imagemagick/test_$$.txt
$ -> ls /mnt/nas/repo/imagemagick
-rw-rw-r--.  1 mpurcell mpurcell    0 Apr  5 20:31 test_24571.txt

$ -> touch /mnt/nas/store/file/perm/test_$$.txt
$ -> ls /mnt/nas/store/file/perm/
-rw-rw-r--. 1 nas filer    0 Apr  5 20:32 test_24571.txt

我尝试在两个机器上都禁用 selinux,但是也没有用。

为什么一个挂载正确地压缩了用户/组,而另一个却没有?

- -更新 - -

我是否必须在 NFS 服务器上绑定 NFS 挂载?我的 /etc/fstab 文件中有一个奇怪的条目,其中一个共享目录正在被挂载(使用绑定),并且该目录正在运行。我从 NFS 服务器上的 /etc/fstab 中删除了该条目,重新挂载了所有内容,现在 NFS 客户端上曾经工作的挂载不再起作用。

答案1

唉,终于让它工作了,不得不做以下事情来破解 all_squash 功能。我之前做过这件事,不记得为什么要这么做,但如果没有它,我就无法让 perms 正确压缩。

$ -> ls /mnt/raid/nas
drwxrwxr-x. 2  nas  filer  repo
drwxrwxr-x. 3  nas  filer  repo_all_squash_hack

$ -> ls /mnt/raid/nas/file
drwxrwxr-x. 2  nas  filer  perm
drwxrwxr-x. 3  nas  filer  perm_all_squash_hack

然后在 /etc/fstab 中:

/mnt/raid/nas/file/perm_all_squash_hack /mnt/raid/nas/file/perm none    bind    0 0
/mnt/raid/nas/repo_all_squash_hack    /mnt/raid/nas/repo none    bind    0 0

现在一切都按预期进行。还通过以下方式确认:

$ -> cat /proc/fs/nfs/exports
/mnt/raid/nas   10.1.0.0/18(rw,root_squash,sync,wdelay,no_subtree_check,fsid=0,uuid=d962b590:d8986203:00000000:00000000,sec=1)
/mnt/raid/nas/repo  10.1.0.0/18(rw,root_squash,all_squash,sync,wdelay,no_subtree_check,anonuid=501,anongid=503,uuid=d962b590:d8986203:00000000:00000000,sec=1)
/mnt/raid/nas/file/perm 10.1.0.0/18(rw,root_squash,all_squash,sync,wdelay,no_subtree_check,anonuid=501,anongid=503,uuid=d962b590:d8986203:00000000:00000000,sec=1)

相关内容