我目前正在寻找一个好的分布式文件系统。
它应该:
- 开源
- 可水平扩展(复制和分片)
- 没有单点故障
- 占地面积相对较小
以下是我认为最有前途的四个候选人:
文件系统将主要用于媒体文件(图像和音频)。有非常小的和中等大小的文件(1 KB - 10 MB)。文件的数量应该在几百万左右。
是否有关于性能、CPU 负载、内存消耗和可扩展性的基准?您使用这些或其他分布式文件系统有何经验?
我不确定你的清单是否完全正确。这取决于文件系统的含义。
如果您的意思是一个可安装在操作系统中并且可供任何使用 POSIX 调用读取和写入文件的应用程序使用的文件系统,那么 GridFS 并不真正符合条件。这就是 MongoDB 存储 BSON 格式对象的方式。它是一个对象系统而不是文件系统。
有一个项目可以使GridFS 可挂载,但这有点奇怪,因为 GridFS 没有分层目录之类的概念,尽管路径是允许的。另外,我不确定 gridfs-fuse 上的分布式写入将如何。
GlusterFS 和 Ceph 具有可比性,并且是分布式、可复制的可挂载文件系统。您可以在此处阅读两者之间的比较(以及比较的后续更新),但请记住,基准测试是由有点偏见的人完成的。您还可以观看有关该主题的辩论。
至于 HekaFS,它是为云计算设置的 GlusterFS,添加了加密和多租户以及管理 UI。
OrangeFS,有人吗?
我正在寻找 HPC DFS 并在这里找到了这个讨论: http ://forums.gentoo.org/viewtopic-t-901744-start-0.html
很多好的数据和比较:)
它受到本地硬盘驱动器(不要忘记每个节点也作为数据服务器参与)速度和可用网络带宽的总和的限制。这种负载上的 CPU 消耗是不错的,在客户端节点上约为单核的 50%,在其他数据服务器节点上约为 10%。d) 在大量小文件上表现公平。为了测试,我解压了 linux 内核 3.1。在 OrangeFS(调整参数)上花了 5 分钟,在 NFSv4(也经过调整)上花了将近 2 分钟进行比较。CPU 负载大约是客户端单核的 50%(当然,它实际上是分布在内核之间),每个节点大约是几个百分点。e) 支持 ROMIO MPI I/O API。对于 MPI 感知应用程序来说,这是一个甜蜜的美味,它允许直接从应用程序使用 PVFS2/OrangeFS 并行输入输出功能。f) 不支持特殊文件(套接字、fifo、块设备)。因此不能安全地用作 /home 并且我使用 NFSv4 来完成为用户提供配额限制的小型家庭空间的任务。尽管大多数分布式文件系统无论如何都不支持特殊文件。"
我不知道您发布的其他系统,但我对本地存储与 GlusterFS 上的 3 个 PHP CMS/框架进行了比较,看看它在实际测试中是否比原始基准测试更好。可悲的是没有。
http://blog.lavoie.sl/2013/12/glusterfs-performance-on-different-frameworks.html