参考:
- 使用 NFSv4 fsid=0 并将 NFS 根导出到整个 LAN(或不导出)的影响 将 nfs 根导出到整个 LAN 或
- https://earlruby.org/2022/01/setting-up-nfs-fsid-for-multiple-networks/
- 当我设置 NFS 服务器时喜欢为每个导出的卷分配唯一的 FSID...
- 如果您对其中一个条目使用不同的 FSID,或者您为一个子网而不是另一个子网声明 FSID,您的 NFS 服务器将缓慢而神秘地停止运行,有时会持续数小时,有时会持续数天。
- 似乎明确使用
fsid
会/etc/exports
导致问题?
- 似乎明确使用
来自上面的 Earlruby 链接:
如果您不使用 FSID,则当您重新启动 NFS 服务器时,服务器识别卷的方式可能会在重新启动之间发生变化,并且您的 NFS 客户端将因“过时文件句柄”错误而挂起。我说“机会”是因为这取决于您的服务器如何存储卷、它运行的 NFS 版本以及它是否是容错/高可用性服务器、HA 功能是如何实现的。使用唯一的 FSID 可确保服务器提供的卷始终以相同的方式进行标识,并且使 NFS 客户端在 NFS 服务器重新启动后更容易重新连接并恢复操作。
在阅读手册页和其他资源时,我不明白fsid=<some number>
在/etc/exports
.有人可以向我解释一下,在 RHEL 8.9 或更高版本中,NFS vers=4.2 中,您何时以及为什么会做这样的事情,特别是当我个人从未明确使用过fsid=
并且从未遇到过问题时。
fsid=<some number>
当中明确指出时/etc/exports
,如何选择该标识符?你如何确保它是独一无二的?
如果我只是 nfs 导出本地挂载的文件夹,例如/dev/sdb1
和/dev/sdc1
我通过 UUID 将它们挂载在 my 中/etc/fstab
,并且它们是 XFS 文件系统,这基本上可以保证我不必fsid=
在 中使用吗/etc/exports
?如果这些本地安装的文件系统中有一个是 NTFS-3g 怎么办?
根据 nfs 手册页的描述,哪些文件系统有问题? 并非所有文件系统都不存储在设备上... 这是什么意思*?
答案1
我认为其中的描述非常清楚。
fsid 是一项可选功能。如果没有它,其他因素可以帮助识别文件系统。然而(如上所述),这些“其他因素”是不稳定的并且可能会发生变化。使用 fsid 来识别文件系统将提高可靠性、重新启动时的稳定性以及版本兼容性。
与大多数用户指定的可选参数一样,fsid 由您选择,并且您决定如何选择它。最好以某种方式使其在导出的文件系统之间唯一。
fsid 是一个相对较新的选项(我认为是 NFSv4 中的新选项),因此它可能会触发错误。对于简单配置和当前版本可能没有必要。多年来它一直没有必要,并且对于大多数配置来说可能仍然是可选的。
但是,如果您在重新启动或升级后遇到别名或过时的 nfs 安装问题,您可能会发现这是必要的......