Ceph开发每周谈 Vol 11—RadosGW 支持 KeyStone V3, AWS v4, 多站点多活

2016年02月 · 麦子迈

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

  • 上周综述

上周已经开始进入 Jewel 的 release 倒计时了,社区开发者正在准备最好的特性冲刺和测试阶段。预计第一个正式版本会在三月初发布,然后进行 bug 修补迭代。另外,Ceph 社区也加入了本年度 GSoC 组织名单,笔者也作为 Mentor 连续第三年承担 GSoC 的项目,Ceph 的 GSoC 地址在http://ceph.com/gsoc2016/。欢迎符合条件的学生参与到 GSoC 和 Ceph 社区中。

RadosGW 在这个 release 实际上投入了巨大的人力,当然也得到非常多的产出,上期提到了 NFS 协议已经被 RadosGW 支持。

  • KeyStone V3,AWS v4 Signing 支持

上周 KeyStone v3 协议也宣布被 RadosGW 支持,Keystone V3 做出了许多变化和改进,比如引入 Domain 和 Group 的概念,将 Tenant 改为 Project 更符合语意,并且使用 Domain 实现真正的多租户能力。(所以现在 KeyStone 有 Domain、Group、Project、User 和 Role 这些概念)。

而 AWS v4 Signing 的最小化支持也已经完成,v4 Signing 允许从之前的 AWS secret key 继承计算,而不是直接利用 secret key 作为来源,同时该 Signing key 可以根据 region 的不同而不同,使得多 Region 的安全性大大增强。

  • RadosGW 宣布支持多站点多活

在上周 RadosGW 也合并了持续一年开发的多站点多活实现,使用 Zone 和 ZoneGroup(之前是 Region) 概念类似于 AWS S3 实现了单一数据的多站点拷贝。这个新的实现彻底废弃了之前 RadosGW 主从站点难以配置和理解的流程,在服务器端维护多个 ZoneGroup 的地图,而不是交给配置文件去实现。Cluster -> ZoneGroup -> Zone 这样的层级,ZoneGroup 由多个 Zone 组成,只有一个 ZoneGroup 作为 master group 负责写入操作,但是 ZoneGroup 下多个 Zone 都允许写,因此可以理解为每个 Ceph 集群都包含多个 Zone,然后每个 Zone 组成一个 ZoneGroup 承担写。同时,这些 Ceph 集群生成其他 Pool 用来构建只读 ZoneGroup,通过这种方式实现多地的多写能力。