我设置了一个文件服务器,其中包含两个大型文件系统,每个文件系统都由单个卷组中的单个 LVM 逻辑卷(10TB 和 16TB)组成。组成 LV 的物理卷是通过 iSCSI/多路径连接的 SAN LUN。
现在,我想通过 NFS 将这些提供给 LV 到计算集群中的节点。
到目前为止,我有以下配置。
服务器上有两个 LV 位于:
/mnt/LV1
/mnt/LV2
NFS /etc/exports 类似于
/mnt/LV1 *(rw...)
/mnt/LV2 *(rw...)
然后,我在客户端上分别安装这些内容。
我的问题是,我可以将其放入 /etc/exports 中吗?
/mnt *(rw)
并在客户端中将其作为包含这两个逻辑卷的单点安装?
天真地说,这看起来很奇怪,因为它们是单独的逻辑卷,但这也可能是正确的做法!
答案1
默认情况下,导出的文件系统不包含从不同文件系统挂载的目录的内容。也就是说,NFS 导出不会跨越文件系统边界。因此,在您的示例中,如果您挂载/mnt
,您只会看到两个空目录(LV1
& LV2
)。
原因是 NFS 客户端会在单个文件系统中看到多个具有相同 inode 编号的文件,这可能会导致某些 NFS 客户端产生混淆。或者为了避免此问题,NFS 服务器必须维护非同一 inode 编号映射。
根据exports(5) 手册页,您可以使用nohide
选项关闭此功能,然后您可以希望当多个文件恰好在单个文件系统中具有相同的 inode 编号时,客户端上的任何软件都不会感到困惑。
常规选项
exportfs
了解以下导出选项:隱聞
此选项基于 IRIX NFS 中提供的同名选项。通常,如果服务器导出两个文件系统,其中一个挂载在另一个上,则客户端必须明确挂载这两个文件系统才能访问它们。如果它只挂载父级,它将在挂载另一个文件系统的位置看到一个空目录。该文件系统是“隐藏的”。
nohide
在文件系统上设置该选项会导致它不被隐藏,并且适当授权的客户端将能够从父级移动到该文件系统而不会注意到更改。然而,一些 NFS 客户端不能很好地应对这种情况,例如,一个明显的文件系统中的两个文件可能具有相同的 inode 编号。
该
nohide
选项目前仅对单个主机导出有效。它无法可靠地与网络组、子网或通配符导出配合使用。在某些情况下此选项非常有用,但应小心使用,并仅在确认客户端系统能够有效应对情况后才使用。
可以使用隐藏来明确禁用该选项。