Ceph开发每周谈 Vol 86 | Unified Read Cache From Intel

2017年08月 · 麦子迈

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

  • 一句话消息

上周 12.1.2 tag 发布,离 Luminous 正式发布又近了一步。

  • Unified Read Cache For Ceph Client

在上周的 CDM 上,Intel Zhou Yuan 进一步阐述了 Client Cache 的进展(https://www.slideshare.net/zhouyuan/unified-readonly-cache-for-ceph)。

Ceph Client Cache 的目的是在 Ceph Client 侧利用持久化且高性能介质来充当缓存,作为 rbd 和 rgw 的读 cache,提高低延迟的读服务。

在客户端侧,利用本地文件系统上面构建一层缓存层,提供对象级别的 API 服务,供 rbd 和 rgw 组件利用,目前采用简单的 LRU 算法。每个 RADOS 对象可以作为一个文件进行本地缓存。

对于 RBD 来说,可以利用这一层 Cache 为 Clone 母卷提供读缓存服务,使得同一个节点上所有 rbd client 可以共享同一份母卷读数据。(如下图所示)

对于 RGW 来说,同样可以在 RGW 节点上构建一个本地读缓存:

具体的代码已经提交 Proposal 到社区https://github.com/ceph/ceph/pull/16788

同时,Zhou Yuan 也给出了部分原型测试结果供参考。