Ceph 开发者月报 2018-09

image2018-9-30 1_7_7

 

本篇为 2018 年度《Ceph 开发者月报》专栏的第九篇,在《Ceph 开发者月报》中,我们 UMCloud 存储团队将以月度为单位,为大家分享当月 Ceph 社区的有趣的提交和重要的变更,方便大家即刻掌握一手 Ceph 社区开发资料。

每篇将以对象存储、块存储、统一存储层、集群管理、基础库等模块组织,为大家一一介绍。

 

本期看点:

配置Ceph时如何设置合理的 PG 个数一直是个麻烦的事情,更麻烦的是每次扩容增大 PG 个数之后。如果集群缩容,想将 PG 个数调小之前是不支持的

这个版本支持减少 PG 个数的功能,让 Ceph 不光能 scale up 还能 scale down。这一点是通过 pg merge 这个特性来实现的。聊点场外,pg merge 早在8年前就有需求了 (眨眼)

 

对象存储

rgw 支持 user policy 功能

rgw: User Policy ( https://github.com/ceph/ceph/pull/21379 )

在上面的提交中,社区为 RGW 实现了类比 AWS S3 的 User Policy 功能,以从用户维度对系统中的数据的访问权限进行控制管理。

 

块存储

 

krbd 支持使用存储池命名空间级别的 image 镜像

krbd: support for images within namespaces (https://github.com/ceph/ceph/pull/23841)

在上面的提交中,社区对 krbd 的相关接口进行了完善,使其可以支持使用存储池命名空间级别的 image 镜像。

 

rbd 一致性组支持快照回滚功能

rbd: add group snap rollback method (https://github.com/ceph/ceph/pull/23896)

在上面的提交中,社区为 RBD 的一致性组新增了 snap rollback 方法,支持将一致性组回滚到指定快照所对应的状态。

 

librbd 支持跨存储池命名空间的 clone 操作

librbd: support v2 cloning across namespaces (https://github.com/ceph/ceph/pull/23662)

在上面的提交中,社区为 librbd V2 版本的 clone 操作新增了对存储池命名空间级别的处理的支持。即支持对一个存储池命名空间下的 Image 镜像
的 snapshot 快照进行 clone 操作,所得到的新的 Image 镜像可以位于其他命名空间中。

 

librbd 支持存储池和 image 镜像级别的配置属性信息的相关操作

librbd: pool and image level config overrides (https://github.com/ceph/ceph/pull/23743)

在上面的提交中,社区为 librbd 实现了对存储池或是指定 image 镜像的相关属性配置信息进行操作的支持。

主要新增了如下 CLI 命令:

– config image get

Get an image-level configuration override.
– config image list (config image ls)

List image-level configuration overrides.

 

– config image remove (config image rm)

Remove an image-level configuration override.

 

– config image set

Set an image-level configuration override.

 

– config pool get

Get a pool-level configuration override.

 

– config pool list (config pool ls)

List pool-level configuration overrides.

 

– config pool remove (config pool rm)

Remove a pool-level configuration override.

 

– config pool set

Set a pool-level configuration override.

 

统一存储层

 

针对磁盘静默错误完善 deep-scrub 操作处理

os/bluestore: fix deep-scrub operation againest disk silent errors (https://github.com/ceph/ceph/pull/23629)

在上面的提交中,社区对 deep-scrub 操作进行了完善以保证能够及时发现并处理磁盘静默错误。

 

支持 pg merging

osd,mon: implement PG merging (https://github.com/ceph/ceph/pull/20469)

之前,Ceph 只支持对 PG 进行 split 操作,来增加存储池的 PG 数,即这一更改操作是单向的,只能单向地增大 PG 数。

在上面的提交中,社区重点实现了 PG Merging 功能,即在后面的版本中,Ceph 也支持对 PG 进行合并操作来缩小存储

池的 PG 数。至此,Ceph 实现了对 PG 的双向操作管理,适用的场景将更加全面丰富。

通过将 pgp_num 设置为小于当前 pg_num 来触发 PG Merging 处理。

 

ceph status 命令支持返回服务到目前为止处于 active 状态的时长

mon: include ages in ‘ceph status’ (https://github.com/ceph/ceph/pull/23845)

 

集群管理

 

mgr devicehealth 模块支持周期性定时自启用

mgr/devicehealth: scrape metrics automatically (https://github.com/ceph/ceph/pull/23611)

 

mgr 新增 insights 插件

mgr/insights: insights reporting module (https://github.com/ceph/ceph/pull/23497)

在上面的提交中,社区为 mgr 实现了 insights 插件,来实现与红帽 Insights Core 数据分析框架的整合。

insights 插件会对 Ceph 系统信息进行收集,并暴露到 Insights Core 框架中,以对相关系统信息数据进行分析。

当前主要支持对如下两类系统信息进行收集分析:

  • health
    • 对过去 24 小时系统的健康信息进行收集、汇总、分析;
  • crash
    • 对过去 24 小时系统中所有服务的 crash 信息进行收集、汇总、分析;

可以通过如下命令来启用 insights 插件:

$ ceph mgr module enable insights

 

mgr 新增 diskprediction 插件

mgr/diskprediction: merge initial version of disk failure prediction (https://github.com/ceph/ceph/pull/24104)

在上面的提交中,社区在 mgr 中实现了 diskprediction 插件,用来对磁盘的指标数据进行分析,并对潜在的磁盘错误进行预言。

该插件主要支持两种模式,即 云端模式 和 本地模式。

  • 云端模式
    • 当处于云端模式时,磁盘和 Ceph 系统状态信息将会被收集并发送到运行于云端的 DiskPrediction 服务,DiskPrediction 服务
      会对接收到的数据进行分析,并给出磁盘健康状态信息的分析和预言结果。
  • 本地模式
    • 当处于本地模式时,将会使用一个内部的分析预言处理模块来对磁盘和 Ceph 系统状态信息进行分析,并返回磁盘健康状态信息的分析和预言结果
      到 Ceph 系统中。

默认情况下,该插件处于禁用模式。可以通过如下命令来进行启用:

$ ceph mgr module enable diskprediction

通过如下命令来设置处理模式:

$ ceph device set-prediction-mode <local/cloud>

 

本月提交情况

发表评论

电子邮件地址不会被公开。 必填项已用*标注