【发布时间】: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