Ceph开发每周谈Vol19 | Ceph Next 2016 闭门会议资讯独家大放送

2016年04月 · 麦子迈

1

一定有朋友会问,每周都准时的Ceph开发每周谈本周怎么迟到了?其实作者是受邀去美国参加了Ceph Next 2016闭门会议,美国时间4月19日,包括Suse、Canconical、Sandisk、Cisco、Xsky等所有PTL共16人共聚一堂,讨论在 Jewel 以后 Ceph 接下来的重点和市场需求。在会议间隙,完成了这篇文章,就是希望将Ceph接下来的重点和市场需求第一时间分享给大家。下面进入正题……

Market Features:

在整个上午,Sage 主要过了一次所有高层次的特性需求:

tiering and data lifecycle: tiering 目前的问题和改进,在 RADOS 级别提供数据的生命周期管理
metadata search: 在 RGW 层面提供元数据搜索能力
system native analytics: Ceph 原生的分析操作
compression:支持数据压缩
dedup(去重): 分为 Rados Dedup 和 BlueStore Dedup
QoS: 主要是 dmclock 这个分布式 QOS 框架的实现
performance(性能)
interoperability (iscsi, nfs, FC, CIFS, between different Ceph   distributions, etc.) 互操作性
backup 备份
geo / multi-dc / dr 多数据中心,数据复制和灾难恢复
hardware leadership: (ceph新硬件平台上体现优势)premier platform to enable and showcase

strategic advantage over closed offerings

need right software architecture (正确的软件架构) 

persistent memory 持久性内存

security:first-class consideration

by default, for all

punt to another meeting

usability and experience: (可用性和用户体验)logging  日志

calamari integration ceph 管理和监控界面集成 

option cleanup / self descripting 清理一些ceph配置选项

mon, etcd or similar for configuration: 配置系统中心化

Ceph 在 2016 希望对外传递的 Mission:
General purpose, default storage in your data center(数据中心首选的统一存储系统)
The replicated/reliable/dependable stuff (多数据中心的复制容灾)
‘Linux of storage’  (存储领域的linux)
World class TCO (低成本)
Dependability (可用性,可靠性,可维护性)

2

在下午围绕几个重点话题进行讨论:

Ceph-mgr 

ceph-mgr 是 Ceph 社区希望将整个统计和监控机制从 ceph-osd 和 ceph-mon 分离出来的服务,目前ceph-mon 实际上90%的负载都是围绕监控和统计,而这些负载实际上影响了 mon 最重要的选举和决策能力。为了坚固 ceph-mon的可靠性,ceph-mgr 将这些能力从 mon 分离,同时增加对整个控制命令的处理。ceph-mgr 未来会成为 ceph 的控制器。 

Tiering v2  

ceph cache tiering 是 ceph 寄予厚望但是实际上并没有达到预期的产物,在交换了目前 tiering的问题后,大家主要讨论 tiering 实际上在数据热点预测能力上的严重不足,希望能像传统 tiering 的预测算法学习,允许用户预锻炼tiering 的算法,然后利用锻炼出来的算法为后面的数据替换作为依据。使得 tiering 能在不同的工作负载下有合适的表现。

Rados protocol changes  

目前 rados 的每个消息都带有 ack 和 commit 两种语意,为了简化后端的策略和前端接口,rados期望去掉 ack 只保留commit 语意,但是这主要会带来 rgw 和 cephfs 的一些依赖问题,一些长期存在的 session 目前只有 ack 语意而没有commit 语意。协议语意的变化会实现在 librados3 中。

Messenger

为了减少 messenger 的数量和 osdmap 中额外的 heartbeat 地址,端口和 sockets,会将额外的heartbeat messenger 移入 messenger 接口中,这个方式将大幅度避免额外的连接数和消息量,一些冗余的heartbeat 将会合并到这个接口。同时 keep alive 功能也将纳入 messenger 接口中。

实现新的地址类型,将新的 RDMA 地址类型同样作为标准的地址类型进行解析。最后,决定在 K 版本完成 async 作为 default msgr type。

另外 Mellanox 抱怨 Messenger 实现太复杂,导致新的硬件 driver 很难加入,如 replace 机制,经过讨论后,认为需要这么复杂。

New pool type

在一些高密度一体机小集群里,ceph 的 crush 弹性调整和高度强一致性的倾向使得数据服务的高可用性很难保证。之前 corotFS 现在redhat 的 adam 提出新的强一致性 pool 类型,允许 2/3 write来增加数据的高可用性。这个算法仍然是强一致性考虑,只是会减少一点之前的可靠性。相当于 3 副本在新写入数据上可能只有 2 副本的可靠性。

L 版本的 release 名字确定为 luminous

K 版本的 feature wish list 正式出炉

Feature wish list :

  1. librados read+repair api 
  2. cephfs purge queue
  3. cephfs dirfrags
  4. ceph-mgr 
  5. bluestore csums
  6. rados pg log reply codes
  7.  msg/async default
  8. rados async read
  9. rados ec overwrites
  10. rados osd path futures
  11. msg/async dpdk
  12. bluestore compression
  13. rados qos (dmclock)
  14. rgw storage classes
  15. rgw tiering
  16. rgw sts (amazon aws token based auth thing)
  17. rbd mirroring – cooperative daemons

    – optimizations (skip overwrites? compression?…)

  18. rbd consistency groups 
  19. krbd feature catchup
  20. fast peering

    – preserve some state from previous interval if still primary

可选 feature 或者优先级不高的 feature wish list

  1. rgw search….
  2. cephfs snapshots
  3. cephfs background forward scrub
  4. cephfs multimds
  5. rados tiering v2
  6. rados write reply payloads
  7. pg / osd interface cleanup
  8. osd process federation
  9. kill Context when appropriate 
  10. messenger oob
  11. wip-addr 实现新的地址类型
  12. rados pool point-in-time replication
  13. rados pool reverse index capability
  14. rados dedup