Ceph开发每周谈 Vol 103 | Async OSD

2017年12月 · 麦子迈

这是Ceph开发每周谈的第一百零三篇文章,记录从1712月10号到1712月17号的社区开发情况。

  •  一句话消息

  •  Async OSD

为了实现高速 NVRAM 这类性能设备的支持,同时重构代码来得到更简约的代码,在十二月的 CDM(Ceph Developer Meeting)上讨论了希望重构 OSD 实现异步化的目标。实际上这个话题已经持续了一年多,只是在现在这个关口,这个事情的优先级上升,成为社区团队重要的优先事项。
 
这个任务是长期的,同时也是艰巨的,主要期望达到以下状态:
1. 实现每个 CPU Core 独立工作,减少共享资源以及锁维护。
2. 最小化内存分配
3. 每个服务器一个进程
4. 不同的网络后段对应不同的介质类型
 目前 Josh 和 Greg 跟 Seastar 社区沟通了使用问题,seastar 是一个基于 future 的用户态调度和网络框架,从前年开始就一直有开发者希望借助 seastar 来加速 OSD,但是存在大量的工作,比如内存分配,OSD 代码中存在太大的阻塞点,大量的面向 seastar 的代码重构等等。
目前在邮件列表也讨论了这个话题,本来期望从 Messenger 作为第一个点,但是 Messenger 仍然存在太多的复杂度,所以最后决定先从 logging 模块开始。