【问题标题】:Alternative to glusterfs + mongodb for large + small file storage (on kubernetes)?替代 glusterfs + mongodb 用于大 + 小文件存储(在 kubernetes 上)?
【发布时间】:2016-12-23 13:26:43
【问题描述】:

我正在为我们的应用程序堆栈设置一个包含许多不同组件的 kubernetes 集群,并且我正在尝试平衡存储需求,同时最大限度地减少组件数量。

我们有一个网络scraper,每天下载数以万计的 HTML 文件(可能还有 PDF),我想将这些文件存储在某个地方(连同一些 JSON 元数据)。我希望以冗余可扩展方式存储文件,但是拥有数百万个小文件似乎不适合例如GlusterFS。

同时,我们的系统使用了一些非常大的二进制文件(数 GB 大),并且可能还有许多较小的二进制文件(10 兆字节)。这些似乎不适合任何分布式 NoSQL DB,例如 MongoDB。

所以我正在考虑使用 MongoDB + GlusterFS 来分别解决这两个需求,但我宁愿减少移动部件的数量,只使用一个系统。我还阅读了关于使用 GlusterFS 的各种警告,例如Redhat 支持(我们肯定不会有)。

谁能推荐一个替代品?我正在寻找一种分布式二进制对象存储,它易于设置/维护并支持小文件和大文件。我们设置的一个优点是文件很少被更新或删除(只是写入然后读取),我们甚至不需要索引(将由 elasticsearch 单独处理)或读取的高速访问。

【问题讨论】:

  • Ceph,也许吧?每个kubernetes.io/docs/user-guide/persistent-volumes 的 k8s 都很好地支持这两者,所以我认为这与 k8s 没有任何关系,但更多的是关于 Ceph 与 GlusterFS。我不想在这里发布任何谷歌结果,因为所有比较都有一定程度的偏见。如果可能的话,你最好避免使用 MongoDB。
  • 感谢您的回复。你能评论一下为什么我应该避免使用 mongo 吗?对于许多小文件来说,ceph 是否比 glusterfs 好得多——因为后期延迟会成为问题。
  • 这真的不是SO的问题,我知道版主不喜欢“哪个更好”之类的问题,这里有一些有用的讨论:reddit.com/r/sysadmin/comments/2t85ya/anyone_using_glusterfs,总之,重点是构建您自己的测试用例(没有人知道“小”有多小)并在两个系统上进行尝试。对于 MongoDB,从这里开始:reddit.com/r/programming/search?q=mongodb
  • 您可能会发现this 的答案很有趣。

标签: mongodb kubernetes glusterfs


【解决方案1】:

你在云端吗?如果在 AWS S3 中是一个好地方,对象存储听起来像是您可能想要的,但不确定您的要求。

如果不在云中,您可以运行 Minio (https://www.minio.io/),它可以为您提供与 s3 相同类型的对象存储。

我现在做类似的事情,我将二进制文档存储在 MongoDB 中,并使用 EBS 卷支持节点。

【讨论】:

  • 谢谢史蒂夫,Minio 看起来很有趣,我会去看看(我不在云端,这些是裸机服务器)。我担心的是我的一些二进制文档将是千兆字节大,显然 gridfs 不是为此而构建的(因为它必须重建内存中的对象)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
相关资源
最近更新 更多