在生产 Web 服务器上使用 NFS 是否合理?

Mak*_*oto 25 performance storage nginx nfs web-server

假设连接是通过 LAN 1Gbe 或 10Gbe 连接,可以在生产服务器上合理地使用 NFS 作为将计算服务器连接到存储服务器的方法吗?

显然有一些网络开销,如果启用了同步模式,NFS 在写入时似乎特别慢。否则它看起来相当轻巧,并且能够根据我的说法进行扩展,但我个人对此几乎没有经验。我错了吗?

问题是我现在有一个服务器既充当存储服务器又充当 Web 服务器,但我最终可能在将来需要将两者分开,并考虑到某些请求需要通过 Web 应用程序层进行身份验证在初始化文件传输之前,这个软件有点棘手。网络 fs 挂载是我最简单的选择……不知道这是否合适。

我还计划尝试使用 NFS 的本地缓存,这应该可以大大提高性能,但我不确定这是否足够。

至于替代方案,我知道只有 iSCSI 是真正的竞争对手,而且大多数人似乎都推荐 NFS,而不是其他任何鲜为人知的产品。

Aus*_*arn 29

NFS 很好,除非满足一些特定的其他标准,即:

  • 所涉及的系统都能够本地使用 NFS。Windows 在这里不算数,它有点工作,但是它有很多怪癖,并且在跨平台环境中处理 NFS 时通常很难处理(如果只是Windows,请使用 SMB3,它消除了大多数NFS 的其他问题)。请注意,在客户端,这意味着内核级支持,因为用户级实现要么必须处理使用 FUSE 之类的东西固有的效率问题,要么必须直接链接到需要访问分享。
  • 您已正确验证 NFS 客户端如何处理 NFS 服务器重启。这包括操作系统本身(在大多数情况下应该没问题)和将访问共享的软件。特别是,当使用共享的软件长时间保持文件打开时,在某些客户端平台上需要特别小心,因为并非所有 NFS 客户端实现都通过显式重新挂载和重新验证锁定和文件句柄来优雅地处理服务器重启,就像它们应该的那样(这导致客户端软件出现各种问题)。请注意,您应该在升级或重新配置堆栈的任何部分时重新检查此项。
  • 您愿意设置正确的用户/组 ID 映射。这很重要,因为如果没有它,您要么需要镜像系统之间的 UID/GID 映射(可行,但我会警惕针对面向 Internet 的系统的内部网络设置 SSO),或者您最终会遇到潜在的严重问题安全隐患(即,您在一个系统上看到的权限与您在其他系统上看到的不符)。
  • 您通过安全的网络链接进行操作,或者愿意为共享正确设置身份验证。没有身份验证,链接上的任何人都可以访问它(恶意客户端可以轻松绕过基本的 UNIX 自由访问控制)。

假设您满足所有这些标准,并且您的网络速度相当快,那么您应该没问题。此外,如果您可以运行巨型帧,请这样做,它们对任何网络文件系统或网络块存储都有很大帮助。

  • 我想补充一点,Windows NFS 客户端在去年完全破坏了我的几个 NFS 共享。 (2认同)

Bar*_*958 17

NFS 绝对可以,并且比 iSCSI 更受欢迎,因为 NFS 更易于管理、共享和备份。

  • 这太强烈了,不可能无条件地正确。某些用例 NFS 完全不适合,但 iSCSI 很好——例如,如果您正在运行的应用程序需要真正的 POSIX 语义。NFS 有点像 POSIX-y;而如果你可以运行你自己的文件系统,你就可以拥有你需要的语义。(当然,需要使用多主安全块层文件系统是一个严重的限制,但那些已经存在的已经构建为与 Oracle RAC 等重型应用程序一起使用;参见 f/e GFS2) (3认同)
  • OP问了一个确切的问题并得到了他的答案。这不是一个讨论论坛,OP 一般不会问“NFS Vs Block”。 (2认同)
  • 感谢您的反馈,我应该在我的原始帖子中提供更多信息。当我说链接到存储服务器时,我的意思是用于存储静态文件(用户上传的内容)——媒体文件、图像、用户头像等。绝对不会通过 NFS 运行 MySQL 或任何其他数据库服务器,这将在其本机 NVMe 存储设备上的计算服务器上处理。此外,图像等小型静态资产将根据需要缓存在 CloudFlare 的 CDN 上,因此实际上只有较大的文件(如视频)才会直接从服务器本身主动提供服务。 (2认同)

Ger*_*der 12

多年来,我们一直使用 NFS 将我们的 SAN 连接到我们的 VMware ESXi 服务器,并在其上运行数百个 VM。一点都不麻烦。

瓶颈在于存储系统而不是网络协议。

网络连接当然应该足够快,这意味着 10Gb 以太网或光纤。我们甚至不再需要单独的存储网络。


NIS*_*968 6

iSCSI 可能会快一点...

https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/storage_protocol_comparison-white-paper.pdf

https://www.hyper-v.io/whos-got-bigger-balls-testing-nfs-vs-iscsi-performance-part-3-test-results/

...但是 NFS 像任何其他网络重定向器(SMB3、AFS/AFP 等)一样允许并发多访问,这对于 iSCSI 或其他块协议来说很棘手。

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392

  • NFS 的优势在于您可以一次与多个前端服务器共享它(没有奇怪的集群文件系统) (4认同)
  • 这就是我的论坛链接的全部内容... (2认同)