TL;DR:
需要一个分布式的键值存储,适用于平均每个条目大小达到50KB,并安装在Linux环境(专用服务器)上。文件系统解决方案可以。已经找到了几种解决方案:Ceph、Cassandra、Riak等。
Details
我正在寻找一种存储解决方案,用于我们的一个组件,它应该是一个键-值存储,具有扁平命名空间。
Scenario
读/写模式非常简单:
一旦写入键-值,接下来的几个小时内会进行一些读取操作。
此后,没有任何内容会触及给定的键-值。我们想为未来保留数据,“存储模式”。
Other usage aspects
- 操作系统:Linux
- Python客户端/连接器
- 总大小:高达80TB(此值还代表未来需求)。
- 平均条目大小(k-v对中的单个值):10到50 KB,未压缩,大多数是文本数据
- 压缩:内置或外部
- 加密:不需要
- 网络带宽:1Gb,单个LAN
- 服务器:专用(不在云中)
Most important requirements
“基本”要求如下:
- 操作系统:Linux
- Python客户端/连接器或通过HTTP的RESTful API
- 可以轻松存储高达80TB(此值还代表未来需求)。
- 最大读取延迟:首次读取几秒钟,存储模式为30秒(有关说明,请参见上文)
- 内置复制(以便数据存储在多个节点上)
Nice to have
- RESTful网关
- 后台数据备份到另一个存储区域(以防灾难性数据恢复)。
- 易于配置
What I've found so far
- Ceph
- HDFS
- 基于HDFS的HBase
- Lustre
- GlusterFS
- Mongo的GridFS-但我能相信Mongo的基础设施吗?
- Cassandra-不是一个选项,因为合并过程消耗双倍的磁盘空间
- Riak-看起来与Cassandra存在相同的问题,需要更多的研究
- Swift + OpenStack(实际存储可以在Amazon S3上)
- Voldemort
- 还有数十种其他工具,但我不会在这里写出它们,因为其中一些具有专有许可证,而另一些则似乎不成熟。
如果您对我上面提到的任何工具(总容量超过50TB)或您认为足够的工具有任何建议,我将不胜感激。