文件上传网站的 GlusterFS 替代品

文件上传网站的 GlusterFS 替代品

我有几个文件上传网站,文件大小从几百千字节到几千兆字节不等。

目前,我的所有文件都存储在几台服务器上的分布式复制 Gluster 卷中。

我对 Gluster 最大的问题是速度。

例如,我有一个文件夹,里面有大约 80,000 张图片,每张图片平均大小为 500KB,我花了几个小时才更改图片的所有者。

目前一切都还不错,但我担心文件太多以及处理它们所需的时间。

我有什么替代方案?我对 Gluster 的操作有什么问题吗?

这是我的 gluster 配置:

performance.cache-size: 1GB
performance.cache-refresh-timeout: 60
performance.cache-max-file-size: 100KB
cluster.choose-local: true
performance.readdir-ahead: on
performance.io-thread-count: 16
client.event-threads: 3
server.event-threads: 3

答案1

任何分布式文件系统在对大量文件执行批量操作时都会受到影响:毕竟,它必须将所有更改传播到远程计算机,与仅在本地主机相比,延迟会急剧上升。这在执行元数据更改操作时尤其明显:不触及真实数据,它们在本地非常快;然而,远程复制将完全受到延迟限制。

你基本上有两个解决方案:

  • 使用文件共享方法,将文件上传到特定框并通过 NFS 导出。虽然 NFS 不是万能药(也不是速度怪兽),但与客户端缓存结合使用时,它可以充分发挥作用
  • 使用异步文件复制系统作为lsyncd(或基于rsync

答案2

我在类似情况下使用过lsyncd该程序,我需要同步多个服务器的内容。它在内部用于rsync在服务器之间同步文件。

但是,缺点是您需要将上传直接发送到单个服务器,并将文件从该服务器同步到所有服务器。

相关内容