我对 Linux 上的 NFS4 有点困扰。一些“外面”的信息似乎与其他信息冲突,而其他信息似乎很难找到。所以这里有几件事引起了我的注意,希望有人能对此有所了解。
这个问题只关注没有 Kerberos 等的 NFS4。
手册exports页中关于 /etc/exports 结构的信息不明确。
引用自exports(5):
此外,每一行在路径名后可能有一个或多个默认选项规范,形式为破折号(“-”)后跟选项列表。
选项列表仅用于该行上的所有后续导出。
“仅在该行上进行后续导出”是什么意思?
fsid=0不再需要了?当我在 linux-nfs 列表上发现一条评论指出不再需要 fsid=0时,我正在搜索 fsid 。现在我很困惑,我是否需要 nfs4 或不需要它?!
假设我有以下树:
/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian
Run Code Online (Sandbox Code Playgroud)
我在这个 fstab 条目中有以下条目:
/dev/disk/by-label/users /mnt/users ext4 defaults 0 0
/dev/disk/by-label/distr /mnt/distr ext4 defaults 0 0
/mnt/users /exp/users none bind 0 0
/mnt/distr /exp/distr none bind 0 0
Run Code Online (Sandbox Code Playgroud)
而我的出口正是这样的:
/exp 192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)
Run Code Online (Sandbox Code Playgroud)
并exportfs -arv显示:
exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp
Run Code Online (Sandbox Code Playgroud)
那么为什么我能够做到这一点并且在客户端上没有错误:
mount -t nfs4 server:/exp/users /tmp/test
Run Code Online (Sandbox Code Playgroud)
即使/exp/users不出口?我没有导出这个目录,虽然我看不到内容,/dev/disk/by-label/users除非我指定crossmnt,但我仍然可以写入目录。我写到那里的所有内容都转到底层目录,/exp/users当我umount /exp/users; ls /exp/users..
showmount -d server如 所述rpc.mountd(8),此命令应显示客户端当前挂载的目录,或 中的陈旧条目/var/lib/nfs/rmtab,如下所示:
rpc.mountd 守护进程通过向 /var/lib/nfs/rmtab 文件添加一个条目来注册每个成功的 MNT 请求。当收到来自 NFS 客户端的 UMNT 请求时,rpc.mountd 只需从 /var/lib/nfs/rmtab 中删除匹配条目,只要该导出的访问控制列表允许该发送者访问该导出。
(……)
但是请注意,几乎无法保证 /var/lib/nfs/rmtab 的内容是准确的。即使在调用 UMNT 之后,客户端也可以继续访问导出。如果客户端在没有发送 UMNT 请求的情况下重新启动,则该客户端的陈旧条目会保留在 /var/lib/nfs/rmtab 中。
读完这篇我肯定想知道:
mount -v即使安装了某些东西也能看到“没有安装任何东西”之类的输出的原因吗?我有很多关于 nfs4 的其他问题,但我会暂时保留它...... :)
小智 7
很好的问题,通过 IMO 文档突出了一个更大的观点。这是一个完整答案的尝试:
一个例子可能是最简单的:
/export/stuff -rw 10.0.0.54 10.0.0.55
Run Code Online (Sandbox Code Playgroud)
相当于:
/export/stuff 10.0.0.54(rw) 10.0.0.55(rw)
Run Code Online (Sandbox Code Playgroud)
fsid=0不是不再需要?这取决于您的用例。看起来您正在从查询的其余部分导出常规的基于磁盘的文件系统,在这种情况下,您最好删除fsid=0(在 nfsv4 中更改行为以引用导出的根文件系统)。
要更改此行为,请删除 no_subtree_check 选项
rmtab-相关的东西rmtab存在安全风险?rmtab充满陈旧的条目吗?mount -v错误地看到“没有安装任何东西”的原因吗?| 归档时间: |
|
| 查看次数: |
18040 次 |
| 最近记录: |