将一台 Linux 主机的文件系统连接到另一台 Linux 主机的文件系统有哪些选项?

dav*_*idA 5 linux samba network-shares nfs sshfs

我有两台 Linux 主机(都运行 Ubuntu 10.04),我希望其中一台能够访问另一台的部分文件系统。即我希望remote1能够访问remote2的文件:/home/username

这只是为了允许我以读写方式访问另一台计算机上的主目录,并且其他用户不需要也能够访问它。

每个主机上使用的“用户名”ID 都不同,原因我不会详细说明(同样,ADS 等)。

我尝试过 Samba,但发现它不可靠。例如,我有一个程序可以监视目录并更新大约 12,000 个文件的列表。我发现这个列表不断变化,文件丢失,有些文件随机无法读取。太不靠谱了。

我在remote1上有一些运行良好的东西:

sshfs remote2:/home/username ~/remote2 -o idmap=user -o uid=$(id -u) -o gid=$(id -g)
Run Code Online (Sandbox Code Playgroud)

这在一段时间内非常有效。不幸的是,remote1 是一台笔记本电脑,并且经常与 LAN 断开连接。当安装这个 sshfs 文件系统时,这似乎完全破坏了一切,并且通常需要重新启动才能恢复。

我开始研究 NFS,但几年前我遇到了有关用户 ID 映射的问题。当时,我发现有一个用户空间 NFS 服务器可以处理这个问题,但它有很多自己的问题。但那是 NFSv3。NFSv4“内核服务器”可以处理不同的用户 ID 并在它们之间正确映射吗?我真的不想使用 NIS,而且实际上我也无法更改用户 ID——它们是通过外部方式设置的。

另外,NFS 如何处理“不可靠”的网络连接?它会自动重新连接还是共享会被破坏,直到重新安装为止?

像 CIFS 这样的东西怎么样?这可以应对经常出现的、不可预测的网络故障吗?这可能会遇到与 Samba 相同的问题,但如果合适的话值得一试。

我还应该考虑其他选择吗?

Dav*_*llo 0

这最初是作为评论,但有点失控......

NFS 和 Samba 等服务类似于 Windows 中的简单文件共享:

  1. 易于设置,
  2. 往往是资源消耗者,因为它们是通用文件系统访问协议,
  3. 他们不擅长处理您描述的情况类型:片状/间歇性连接和移动数以万计的文件。

对于您的监控和更新,我会使用rsync,而不是 nfs 或 smb ...

您可能仍然想使用 samba 或 nfs 进行简单的文件共享、浏览等。(几乎)每个 ubuntu 版本都变得更容易、更好。首先右键单击要共享的文件夹,然后选择共享文件夹即可开始。10.04 中存在一个gnome 错误,该错误不提供安装所需的软件包,但正在解决该问题。