使用 radosgw 的 S3 兼容对象存储

sage

radosgw 已经存在一段时间了,但它没有得到很好的宣传或文档记录,所以我在这里提一下。   想法是这样

  • Ceph 的架构基于一个健壮、可扩展的分布式对象存储,称为 RADOS。
  • Amazon 的 S3 表明,一个简单的基于对象的存储接口是一种编写应用程序的便捷方式,即使该接口非常有限。
  • 通过 librados,通过 S3 兼容接口访问 Ceph 的对象存储非常容易。

结果是 radosgw,一个基于 FastCGI 的代理,通过 REST(基于 HTTP)接口暴露 Ceph 的对象存储。  Radosgw 实现 Amazon API 的一个子集(ACL 和对象版本控制的一些 Amazon 特有功能不受支持),但它实现的部分旨在完全兼容。   这意味着大多数为 S3 设计的现有应用程序可以无缝迁移到基于 Ceph 的对象存储,前提是它们允许配置主机名(许多硬编码 s3.amazonaws.com)。

应该注意的是,这种方法有一些根本的限制

  • librados 提供对存储节点的直接并行访问;radosgw 是位于存储集群前的单个端点代理。   这实际上可能是一件好事,具体取决于您的安全模型。
  • 基于 REST 的存储接口比 librados 提供的接口限制得多。   librados 允许部分对象更新,没有对象大小限制,支持可扩展的对象类、细粒度的快照等等。
  • radosgw 安全模型模拟 S3,并作为 librados 之上的一个层实现。   通过 radosgw 创建的 S3 样式的 ACL 不会反映通过本机 librados 库访问相同的对象。

去看看吧!