知识卡片

Cls把自定义逻辑下沉到OSD端执行

专业/工作 · 235.b.1

内容

Cls 扩展机制允许把一段自定义代码注册成模块和方法(用 cls_register/cls_register_method),客户端通过 CEPH_OSD_OP_CALL 操作码把方法名和参数发给 OSD,由 OSD 端动态加载对应模块、找到方法、就地执行并返回结果,而不是先把数据整体读回客户端再处理。这是数据库里”存储过程”思路在对象存储里的对应形态——把计算搬到数据所在的地方执行,避免大量数据在网络上往返。RBD 的元数据操作(创建、快照)全部通过这种机制在服务端完成,而不是客户端拉取全部元数据后本地改写再写回。

参考来源

《Ceph源码分析》第5章《Ceph客户端》