什么网络文件共享协议的性能和可靠性最好?

Apr*_*che 42 linux performance network-attached-storage file-server

我们有一个负载平衡的几个 Web 服务器的设置。我们希望拥有某种所有 Web 服务器都可以访问的网络共享存储。它将用作存储用户上传的文件的地方。一切都在运行 Linux。

我们应该使用NFS、CIFS、SMB、fuse+sftp、fuse+ftp吗?网络文件共享协议有很多选择,很难选择一个。我们基本上只想在多台机器上永久安装这个共享。安全功能不是一个问题,因为除了安装它的服务器之外,它不会从任何地方访问网络。我们只希望它可靠、快速地工作。

我们应该使用哪一种?

Ist*_*van 30

我投票支持 NFS。

NFSv4.1 添加了并行 NFS pNFS 功能,这使得并行数据访问成为可能。我想知道什么样的客户端正在使用存储,如果只是类 Unix,那么我会根据性能数据选择 NFS。


And*_*ian 22

简短的回答是使用 NFS。根据这次枪战和我自己的经验,它更快。

但是,您有更多选择!您应该考虑像 GFS 这样的集群 FS,它是多台计算机可以同时访问的文件系统。基本上,您通过 iSCSI 共享一个块设备,iSCSI 是一个 GFS 文件系统。所有客户端(iSCSI 术语中的启动器)都可以读取和写入它。Redhat 有一份白皮书。你也可以使用oracle的cluster FS OCFS来管理同样的事情。

redhat 论文很好地列出了集群 FS 与 NFS 的优缺点。基本上如果你想要很大的扩展空间,GFS 可能是值得的。此外,GFS 示例使用光纤通道 SAN 作为示例,但也可以很容易地使用 RAID、DAS 或 iSCSI SAN。

最后,确保查看巨型帧,如果数据完整性很重要,如果您将 iSCSI 与巨型帧一起使用,请使用 CRC32 校验和。


Mar*_*ter 19

我们有一个 2 服务器负载均衡网络集群。我们尝试了以下方法在服务器之间同步内容:

  • 每 10 分钟与RSYNC同步每台服务器上的本地驱动器
  • 两个服务器的中央CIFS (SAMBA)共享
  • 两台服务器的中央NFS共享
  • 运行OCFS2 的共享 SAN 驱动器安装了两台服务器

RSYNC解决方案是最简单的,但花了10分钟的变化显示出来,并把RSYNC我们与自定义脚本阻止它暂停它的每一秒的服务器上那么多的负荷。我们也仅限于写入源驱动器。

性能最快的共享驱动器是OCFS2集群驱动器,直到它发疯并导致集群崩溃。我们无法保持 OCFS2 的稳定性。一旦不止一台服务器访问相同的文件,负载就会攀升,服务器开始重新启动。这可能是我们的训练失败。

次佳的是NFS。它非常稳定和容错。这是我们目前的设置。

SMB (CIFS)有一些锁定问题。特别是 SMB 服务器上的文件更改没有被 Web 服务器看到。SMB 在故障转移 SMB 服务器时也倾向于挂起

我们的结论是 OCFS2 具有最大的潜力,但在将其用于生产之前需要进行大量分析。如果你想要一些直接和可靠的东西,我会推荐一个带有 Heartbeat 的 NFS 服务器集群来进行故障转移。

  • 我们对 OCFS2 有完全相同的体验:它很棒……直到它崩溃。 (2认同)

小智 5

我建议你 POHMELFS - 它是由俄罗斯程序员 Evgeniy Polyakov 创建的,它真的非常快。