一定有朋友会问,每周都准时的Ceph开发每周谈本周怎么迟到了?其实作者是受邀去美国参加了Ceph Next 2016闭门会议,美国时间4月19日,包括Suse、Canconical、Sandisk、Cisco、Xsky等所有PTL共16人共聚一堂,讨论在 Jewel 以后 Ceph 接下来的重点和市场需求。在会议间隙,完成了这篇文章,就是希望将Ceph接下来的重点和市场需求第一时间分享给大家。下面进入正题……
Market Features:
在整个上午,Sage 主要过了一次所有高层次的特性需求:
strategic advantage over closed offerings
need right software architecture (正确的软件架构)
persistent memory 持久性内存
by default, for all
punt to another meeting
calamari integration ceph 管理和监控界面集成
option cleanup / self descripting 清理一些ceph配置选项
mon, etcd or similar for configuration: 配置系统中心化
在下午围绕几个重点话题进行讨论:
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 :
- librados read+repair api
- cephfs purge queue
- cephfs dirfrags
- ceph-mgr
- bluestore csums
- rados pg log reply codes
- msg/async default
- rados async read
- rados ec overwrites
- rados osd path futures
- msg/async dpdk
- bluestore compression
- rados qos (dmclock)
- rgw storage classes
- rgw tiering
- rgw sts (amazon aws token based auth thing)
- rbd mirroring – cooperative daemons
– optimizations (skip overwrites? compression?…)
- rbd consistency groups
- krbd feature catchup
- fast peering
– preserve some state from previous interval if still primary
可选 feature 或者优先级不高的 feature wish list
- rgw search….
- cephfs snapshots
- cephfs background forward scrub
- cephfs multimds
- rados tiering v2
- rados write reply payloads
- pg / osd interface cleanup
- osd process federation
- kill Context when appropriate
- messenger oob
- wip-addr 实现新的地址类型
- rados pool point-in-time replication
- rados pool reverse index capability
- rados dedup