Ceph开发每周谈 Vol 70 | RGW 同步到 AWS S3 | Elastic Search API 整合

2017年04月 · 麦子迈

这是Ceph开发每周谈的第七十篇文章,记录从17年4月10号到17年4月16号的社区开发情况。笔者从前年开始做Ceph的技术模块分析到今年中告一段落,想必有挺多人期待下一篇Ceph技术分析。考虑到Ceph的发展已经从前年的一穷二白到现在的如火如荼,但对于社区的方向和实况仍有所脱节,笔者考虑开始Ceph开发每周谈这个系列。每篇文章都会综述上周技术更新,围绕几个热点进行深度解析,如果正好有产业届新闻的话就进行解读,最后有读者反馈问题的话并且值得一聊的话,就附上答疑部分。

  • 一句话消息

现在 Ceph 可以支持离线 FileStore 到 BlueStore 的转换

  • RGW 同步到 AWS S3

在前几周的 PR 中,SUSE 工程师发起了利用 RGW Multisite 框架实现了针对 AWS S3 公有云的同步,在这个方式中,AWS S3 视为 Zonegroup 的一个 Zone,允许将所有数据通过简单的 PUT 请求发送给 S3。https://github.com/ceph/ceph/pull/14168

目前该实现仍然较初步,未来需要支持 Multipart 方式上传以及 Pipeline 化,除此之外,针对 S3 的配置以及管理也需要进一步设计

  • Elastic Search API 整合

在目前的 K 版本 RGW 整合 Elastic Search 上,跟上述提到的 AWS S3 方式类似,都是以一个 Zone 的形式存在,将集群中的元数据发送给 Elastic Search 集群以供查询。这个方式需要用户独立访问 Elastic Search 完成查询,因此,在下一个阶段中,Yehuda 希望在 RGW 上提供 API 直接供用户查询,把 Elastic Search 包裹在里面,这样形成一体化的 API 方案。

API 的形式:

Input:

GET /[<bucket>]?query=<expression>

request params:
– max-keys: max number of entries to return
– marker: pagination marker

expression := [(]<arg> <op> <value> [)][<and|or> …]

op is one of the following:
<, <=, ==, >=, >

For example:

GET /?query=name==foo