UMCloud存储团队 UMCloud优云数智 昨天
本篇为 2018 年度《Ceph 开发者月报》专栏的第七篇,在《Ceph 开发者月报》中,我们 UMCloud 存储团队将以月度为单位,为大家分享当月 Ceph 社区的有趣的提交和重要的变更,方便大家即刻掌握一手 Ceph 社区开发资料。
每篇将以对象存储、块存储、统一存储层、集群管理、基础库等模块组织,为大家一一介绍。
本月看点:
Ceph 对象存储认证支持 CNCF项目 OPA 实现细粒度的访问控制
对象存储
完善 radosgw-admin sync error trim 命令
radosgw-admin: ‘sync error trim’ loops until complete
( https://github.com/ceph/ceph/pull/23032 )
之前
radosgw-admin sync error trim
命令最多只能清理 1000 条记录,即使通过 start_time/end_time 或是 start_marker/end_marker 指定了清理范围,但仍最多只能清理 1000 条记录,
这就意味着若指定范围内的 sync error 日志记录多于 1000 条,则该命令只能处理一部分日志记录。
在上面的提交中,社区对该命令进行了完善,支持清理指定范围内的所有错误日志记录。同时,还新增了 –trim-delay-ms 参数,用于控制清理操作的执行频率。
Ceph RGW 集成 OPA 策略引擎
rgw: Initial work for OPA-Ceph integration
( https://github.com/ceph/ceph/pull/22624 )
OPA 是一个轻量级的开源通用策略引擎,可以在整个项目开发堆栈中实现统一的、上下文感知的策略实施。
当前社区希望在 RGW 中集成 OPA。在上面的提交中,社区为 RGW 和 OPA 的集成进行了一部分初期工作。
块存储
librbd 支持 FUA
librbd:optionally support FUA (force unit access) on write requests
( https://github.com/ceph/ceph/pull/22945 )
在上面的提交中,社区为 librbd 新增了对 FUA 的支持。若设置为 FUA 模式,对于写操作请求,必须将数据写入到存储卷后,才返回成功信息。所有的写请求处理都完全跳过缓存。
统一存储层
mon 新增 pg repeer <pgid> 命令
mon/OSDMonitor: add ‘osd repeer <pgid>’ command
( https://github.com/ceph/ceph/pull/22940 )
在上面的提交中,社区为 mon 新增了
pg repeer <pgid>
命令,用于强制 pgid 参数指定的 PG 执行 peer 处理。
集群管理
mgr 新增 crash 插件
mgr/pybind/crash: handle crashdumps
( https://github.com/ceph/ceph/pull/22703 )
在上面的提交中,社区为 mgr 实现了 crash 插件,用于收集集群中各组件的 crash dump 信息,并存储在 Ceph 集群中,方便日后进行分析。
针对 crash 插件,主要新增了如下命令
# 启用 crash 插件
ceph mgr module enable crash# 保存一个 crash dump 信息
ceph crash post -i <metafile># 移除一个指定的 crash dump 信息
ceph rm <crashid># 罗列出保存的所有 crash dump 信息
ceph crash ls# 对所保存的 crash dump 信息进行统计和总结
ceph crash stat# 获取所保存的指定 crash 过程的具体细节信息
ceph crash info <crashid># 移除所有保存时间大于 keep 字段所指定天数的 crash dump 信息
ceph crash prune <keep>
实现 mgr 内部各模块之间可以相互调用
mgr: enable inter-module calls
( https://github.com/ceph/ceph/pull/22951 )
dashboard 新增用户管理界面
mgr/dashboard: Ceph dashboard user management from the UI
( https://github.com/ceph/ceph/pull/22758 )
工具库
ceph-volume 新增批量操作命令及相关的操作处理
ceph-volume batch command
( https://github.com/ceph/ceph/pull/23075 )
vstart.sh 支持启用 SPDK
vstart.sh: Support SPDK in Ceph development deployment
( https://github.com/ceph/ceph/pull/22975 )