我正在尝试在多台 Linux 机器之间共享文件。2023 年,NFS 是实现这一目标的好方法吗?
我对NFS了解不多。我的印象是 NFS 很旧、有缺陷、不可靠、设计糟糕且过时,并且应该仅用于与旧系统的向后兼容性。这在多大程度上是正确的?使用 NFS 进行新部署是否明智?我可以使用更好的东西吗?
Mar*_*ler 10
TL;DR:不,NFS 仍然相关、活跃,并且在许多情况下都是不错的选择。
\n这实际上取决于您的用例。我不同意 NFS 总体上已经过时或总体上设计得很糟糕。它绝对不是“旧”,因为它尚未更新以符合现代要求:NFS 4.2 是 2016 年的,SMB 3.1.1 也是 2016 年的,我不知道每个协议修订版的功能有多少已经分别在 Linux 内核服务器和客户端以及 Samba 中实现。
\n它是一种远程过程调用(RPC) 协议:客户端通过它执行的操作是调用服务器上的函数,然后服务器向您发送结果。然后,您的客户端使用此机制在本地为您提供文件系统。
\n这是一个非常干净的设计 \xe2\x80\x93 很清楚谁是状态的“所有者”,这通常会使分布式系统变得困难。然而,这意味着整个系统需要在不同的网络延迟等方面变得更加智能。您确实需要较新版本的 NFS 来实现某些功能。那么,这种函数式方法就很棒了:复制服务器上的文件只是对服务器的函数调用;从大文件的中间请求一些文件内容,以及告诉服务器您的软件可能很快需要文件的某些部分之类的事情,将很好地工作 \xe2\x80\x93 并且本质上适合 UNIX 文件系统的工作方式比 CIFS 好一点。
\n遗憾的是,很多关于如何设置 NFS 的网络资料都来自 NFSv3 \xe2\x80\x93 时代,而这个时代本应在 23 年前结束。但优化网络协议很困难,因此人们复制了他们的最佳实践:有些仍然适用,有些只是过时了。坦率地说,NFS 最重要的是存在文档问题,例如,对于典型的现代硬件和不同的网络大小和速度没有良好的通用指南。很多人认为在开始设置之前您需要读一两本书是可以的。
\n但是,老实说,Fedora-oid 操作系统上的默认配置可能没问题(没有在其他操作系统上使用 NFS 的经验)。但是,如果可能的话,您肯定希望在每次导出时“压缩 root”,并且您需要真正的 Kerberos 身份验证。这是超级安全的“企业级”,微软的 Active Directory 也基于它。但这是一个进入障碍,没有它,您的服务器就会信任客户端,他们声称正在访问文件的用户实际上就是该用户。
\n有几种选择;在这里列出所有替代方案是行不通的(我不是来自那个领域),但是小型网络管理员会遇到的主要问题:
\n因此,实际上,在所有这些替代方案中,Samba 服务器似乎是唯一可行的选择。如果您需要与Windows互操作,Samba是正确的选择,而如果您关心最后30%的性能并愿意投入时间,那么Samba就是错误的选择。
\n 归档时间: |
|
查看次数: |
519 次 |
最近记录: |