storage - Ceph 对象存储 (RADOS) 中对象的最佳大小

标签 storage distributed ceph

看起来 RADOS 最适合用作 Ceph block 存储和文件系统的存储后端。但如果我想使用对象存储本身:

  • 是否存在能够提供最佳性能的最佳对象大小?
  • 大量小物体是否存在问题?
  • 物体能达到多大而不会造成麻烦?

如果您能分享您的经验,那就太好了。

最佳答案

对象存储中的对象没有最佳大小,事实上,这种灵 active 是相对于固定大小块存储的一大优势。通常,应用程序将利用这种灵 active 沿着方便的边界分解其数据模型。也就是说,如果您存储非常小或非常大的对象,则应该考虑一些注意事项。

Is there a problem with a large number of small objects?

小对象从来没有出现过功能问题,尽管过去由于对象的存储方式而导致效率低下。然而,在 Ceph (Firefly) 的下一个版本中,有一种方法可以使用 LevelDB 作为后端,使小对象更加高效。

How big objects can get without making troubles?

假设您在 RADOS 中使用复制(与建议的对象 strip 功能和纠删码后端相反),对象将被完整复制到一组物理存储节点。因此,对象的大小具有固有的限制,具体取决于对象复制到的物理节点的存储容量。

这种操作模式还暗示了实际限制,即每个对象的 I/O 性能将与物理设备(数据和日志驱动器)的性能相对应。这意味着将对象视为 I/O 并行性单元通常很有用,尽管实际上许多对象将映射到同一组设备。

对于纠删码后端,这个问题可能会有不同的答案,并且应用程序始终可以将大型数据集跨较小的对象进行 strip 化。

关于storage - Ceph 对象存储 (RADOS) 中对象的最佳大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21726728/

相关文章:

distributed - 如何在 Consul KV 存储中的键上设置 TTL(到期)

oracle - 保护 Oracle 分布式事务免受网络故障的影响

使用 secretfile 挂载 cephfs

hadoop - hadoop 的分布式替代品

c# - 导入图片并保存到隔离存储WP7

c++ - C++ 中用于存储异构项的类或容器

ios - 应用程序存储分配和低存储通知

php - 分片/分发功能(一致哈希)?

docker - 带有 docker 卷的 ceph rbd

amazon-s3 - CEPH + S3 Java SDK + 预签名 PUT + CORS = 失败