Linux共享存储的Linux文件系统选项

我正在尝试确定文件系统用于共享存储设备的“最佳select”,该共享存储设备将通过iSCSI跨越不确定数量的服务器进行安装。

build立:

  • 27TB Synology RS2212 +arrays,允许多个会话的iSCSI LUN /目标
  • 基于10-20 CentOS的Linux机器,主要是networking服务器
  • 共享存储将托pipe静态网页内容(媒体,主要是图像)

从本质上讲,我需要能够跨多个networking服务器装载这个大的共享卷,并且这个数量将有望随着时间的推移而持续增长。 过去我们一直在使用NFS,但性能问题迫使我们去研究其他的方法。 (阅读:NFS调整有时像黑魔法,特别是在处理数以百万计的小图像时)。

通常情况下,设备上不会出现写入冲突的问题,因为只有less数中央机器能够更改内容,但是我知道,如果我们正在将其安装,我们需要一些方法来locking文件,而一个人正在使用它,以便我们不结束腐败。 在过去,我们依靠NFS来处理这个问题。 所以现在我正在看集群感知的文件系统(除非我错过了一些东西,所以这个post)。

到目前为止,我已经find了2个主要的select,但我不确定他们是否合适:

RHEL Clustering和GFS2似乎是天生适合我的环境,但是这让我有点担心这种方式“locking”到发行版中。 如果我需要添加具有不同风格的服务器,会迫使我想出其他选项。 不是一个表演,但在我心中。 最大的问题是从RHEL文档反复阅读,他们的集群只支持16个节点。 如果是这样的话,它肯定不会适合我。 这是准确的还是我读错了?

OCFS – Oracle的集群文件系统在谷歌的时候也受到了很多的关注,但是我不太了解。 最麻烦的一点是,我将不得不运行他们的Unbreakable Enterprise Kernel,这会导致我所有的服务器都会受到很大的干扰。 再次,不是一个表演阻止者,但我需要令人信服的证据走下去,特别是在尝试这种方法时。

我错过了什么吗? 有没有更好的方法,我应该使用? 我甚至已经考虑完全改变架构,以允许一些“前端”服务器挂载iSCSI分区,然后根据需要进行NFS共享,和/或使用nginx反向代理将介质分发给Web服务器。

有什么聪明的想法,你会相信在这种情况下使用?

对于你的情况,我仍然坚持networking文件系统。 你已经遇到了NFS的扩展问题,所以现在是时候看看别的东西了。 有几个很好的select:

  • Gluster 。 这是一个RH项目,在CentOS上得到了很好的支持,并且扩展到“方式”。 成千上万的客户端是完全可行的,特别是在您看似处于繁重的阅读环境中。我目前正在使用它与Ubuntu,所以有debian-land的支持。
  • Ceph 。 像Gluster一样,它也是提供直接安装function的下一代networking文件系统。 还devise用于“方式批量”缩放。 它不像Gluster那样和Red Hat绑在一起。

两者目前都在云计算基础设施中使用。

像gfs2和ocfs这样的直接安装的文件系统确实有缩小的瓶颈。 跨系统文件locking问题,更不用说跨宿主高速caching一致性,相当难以解决,并且是主要的缩放问题。 像VMware的VMFS等其他集群文件系统也出于同样的原因具有“小数十”的最大安装限制。

不是NFS的networking文件系统已经被devise成扩展到非常大的并发性。 我上面提到的选项都有重复,甚至分布式卷支持,以帮助防止单点故障。

您可以使用一个灵活而强大的解决scheme,支持集群,多path,多重caching和像SF-CACHE一样的VXFS(Veritas Storage Fundation)。 如果您改进了写入冲突或fs损坏,则可以使用VXFS的重新logging重build文件系统,并且如果存在某些硬件错误,也可以重build划伤的磁盘组。

PS:+ OCFS是专为Oracle Cluster DATABASEdevise的,不适用于webapps!