![如何挂载已挂载远程文件系统的文件系统](https://linux22.com/image/764743/%E5%A6%82%E4%BD%95%E6%8C%82%E8%BD%BD%E5%B7%B2%E6%8C%82%E8%BD%BD%E8%BF%9C%E7%A8%8B%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.png)
我正在尝试为我们的开发人员创建一个系统,以便他们能够使用必须保留在客户站点的库。我们不允许下载这些库在本地进行开发,而必须在客户拥有的服务器上使用它们。我们最初的想法(尚未奏效)是这样的:
- 创建一个 EC2 实例(Linux 2 盒)。
- 使用 sshfs/ftpfs 将该实例挂载到每个客户的 FTP/SSH 系统。
- 每个开发人员使用 sshfs/ftpfs 将 EC2 实例安装到他们的机器上。
这将保持该库仅由客户端拥有,但我们可以将其挂载并本地包含在 IDE 中。到目前为止,每个单独的步骤都有效,但客户端文件系统未出现在本地文件系统上(它确实出现在 EC2 实例上)。
所以,我的问题是 - 有什么方法可以让它按照我们预期的方法工作,还是这是一个失败的原因? 还有其他方法可以实现预期的结果(即为我们拥有的开发人员提供一个可以访问 X 个外部挂载点的单个挂载点)吗?
答案1
我不熟悉 EC2。
在 unix nfs 系统中,您需要单独挂载每个文件系统。嵌套 NFS 不是一个好主意,因此您需要单独挂载它们,然后创建一个镜像目录结构的符号链接树。
我认为这是您需要采取的方法。
如果客户端的系统是有组织的
faraway:/
faraway:/majorfilesystem
faraway:/majorfilesystem/otherfarserver/
faraway:/majorfilesystem/thirdfarserver/
faraway:/filesystem/fourthfarserver/afilesystem.
然后你设置类似
local:/devmountpoints
local:/devmountpoints/otherfarserver
local:/devmountpoints/thirdfarserver
local:/devmountpoints/afilesystem
然后/clientlib
是一棵符号链接树,使您的本地挂载点具有与客户端站点上的挂载点相同的相对路径结构。
虽然理论上每个外部挂载点只需要一个链接,但由于 stat 调用的工作方式,出于性能原因,您可能最好为每个外部目录甚至每个外部文件创建系统链接。挂载文件统计结果通常不会像本地结果那样积极地缓存。如果您不必对某个遥远的地方进行一系列 stat 调用,您可以应该获得更好的性能。