使用 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 库访问相同的对象。
去看看吧!
