通过网络命名空间挂载 NFS

通过网络命名空间挂载 NFS

是否可以在 Linux 上使用 NFS网络命名空间

这还有道理吗?我发现的内核源代码中唯一相关的东西是提交7e3fcf61abde nfs:不要在网络命名空间之间共享安装这对我来说没什么意义。

答案1

是的,但不使用标准的开箱即用(当前)NFS 安装工具。

setns以下是一些用于在网络(和挂载)命名空间中执行 NFS 挂载的代码示例:

https://github.com/Netflix/titus-executor/blob/564624ebfe293681a4f599175efb7ab12f40508c/mount/mount.c

答案2

你的问题涉及两个不同的命名空间,它们在内核级别是独立且不相关的......直到我们引入内核 NFS。文件系统挂载由挂载命名空间覆盖。我现在(有限)的理解是,如果通过网络挂载 NFS 卷,加入到此挂载命名空间的进程以及加入/切换网络命名空间会使 NFS 挂载变得困难:相同的 NFS 挂载可以连接到具有相同 IP 地址的不同 NFS 服务器,取决于使用此挂载命名空间的进程正在使用哪个网络命名空间。这不仅听起来很混乱,而且确实会如此。这就是 Linux 放弃此类进程的 NFS 挂载的原因。

因此,原则上,挂载和网络命名空间是独立的。然而,像 NFS 这样的东西施加了某些依赖性或限制。请注意,用户空间 NFS 在这种情况下会受到影响。

相关内容