Ceph 开发者月报 2018-10

image2018-10-29 11_18_35

 

本期看点: OSD 支持灵活的替换 WAL,DB 和 Block 分区。

WAL 和 DB 放在 SSD 上,Block 放在 HDD 上,同时多个 HDD 共用同一 SSD 是很多 Ceph 用户的典型配置。

这个pr(https://github.com/ceph/ceph/pull/23103) 支持了 Block, DB, WAL 这三个分区的各种合并,分离和迁移,这样单个 OSD 的运维操作更加灵活了。

 

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

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

 

对象存储

RGW 支持 STS 认证

rgw: Code for STS Authentication. ( https://github.com/ceph/ceph/pull/23504 )

在上面的提交中,社区为 RGW 实现了对 STS(Secure Token Service) 认证的支持。通过 STS,可以临时
为某些用户颁发自定义时效和权限的访问凭证。

RGW STS 认证的相关接口与 Amazon STS 的 API 接口保持兼容,但当前仅支持部分接口。

当前 RGW STS 的实现机制是与已有的 Keystone 认证进行集成,通过 Keystone 服务来生成临时访问凭证,
并对这些访问凭证进行认证。

 

RGW 加密处理支持下沉到 Intel QAT 设备中

crypto: QAT based Encryption for RGW ( https://github.com/ceph/ceph/pull/19386 )

之前,在 https://github.com/ceph/ceph/pull/19714 这一提交中,社区已经支持将压缩处理下沉到
Intel 的 QAT 设备中。在上面的提交中,社区又新增了将 RGW 的加密处理操作下沉到 QAT 设备中,以提
升处理效率。

目前仅支持 AES_CBC_256 加密。

 

RGW 支持在前端 proxy 配置了终止 SSL 连接后仍能对 SSE 加密请求进行处理

rgw: support server-side encryption when SSL is terminated in a proxy ( https://github.com/ceph/ceph/pull/24700 )

正常情况下,若要使用 RGW 的 SSE 服务端加密功能,必须使用 HTTPS 来发送操作请求;若一个 SSE 数据加密请求不是以
HTTPS 发送的话,则 RGW 服务端无法判断接收到的密钥和数据是否是正确安全的,所以会拒绝处理该请求。

但若是 RGW 前端添加了一层代理,且该代理配置了终止 SSL 连接,则 RGW 在接收到未以 HTTPS 发送来的 SSE 加密请求后,
直接拒绝处理显然是不合理的。

因此,在上面的提交中,社区为 RGW 新增了 rgw_trust_forwarded_https 配置项,来解决上述问题。当 RGW 前端对应
有代理服务器,且配置了终止 SSL 连接时,需要启用该配置项,以信任来自前端代理的请求信息,使得在这种情况下,RGW 接收到
的未以 HTTPS 发送的 SSE 加密请求也能够被正确处理。

 

块存储

rbd-mirror 支持存储池级别的配置粒度

rbd-mirror: use pool level config overrides ( https://github.com/ceph/ceph/pull/24348 )

之前,rbd-mirror 的相关配置都是全局范围内的,即系统中的所有 rbd-mirror 都共享的相同的配置。
在上面的提交中,社区为 rbd-mirror 实现了存储池级别的 configuration overrides 特性,即
可以针对不同的存储池,为多个 rbd-mirror daemon 指定不同的配置。

 

librbd 支持配置删除 image 时自动将其移至 trash 中

librbd: add new configuration option to always move deleted items to the trash ( https://github.com/ceph/ceph/pull/24476 )

在上面的提交中,社区为 librbd 新增了

– rbd_move_to_trash_on_remove
– rbd_move_to_trash_on_remove_expire_seconds

两个配置项。其中 rbd_move_to_trash_on_remove 配置项用于指定是否在删除 image 时自动将该
image 移到 trash 中。 rbd_move_to_trash_on_remove_expire_seconds 配置项则用于指定
删除时被自动移到 trash 中的 image 在 trash 中会被保存多久。

 

rbd 新增全局级别配置项操作命令

rbd: add ‘config global’ command to get/store overrides in mon config db ( https://github.com/ceph/ceph/pull/24428 )

在上面的提交中,社区为 rbd 新增了 config global 相关的命令集,用于在全局范围内对 rbd 相关的
配置项进行操作。

新增的命令包括:

– config global get *config-entity* *key*
Get a global-level configuration override.

– config global list [–format plain | json | xml] [–pretty-format] *config-entity*
List global-level configuration overrides.

– config global set *config-entity* *key* *value*
Set a global-level configuration override.

– config global remove *config-entity* *key*
Remove a global-level configuration override.

 

统一存储层

osd 新增缓存相关处理命令

osd: add ‘cache drop’ and ‘cache status’ commands ( https://github.com/ceph/ceph/pull/24270 )

在上面的提交中,社区为 osd 新增了

– cache drop
– cache status

两个命令。其中, cache drop 命令用于手动对 osd 的缓存进行清理,可以通过执行

 ceph tell osd.x cache drop

来对 osd.x 的缓存进行清理,而不需要像之前只能通过重启 osd 来清理缓存。

cache status 命令用于手动获取一个 osd 的缓存信息

 ceph tell osd.x cache status

 

集群管理

mgr 中的 Python 组件支持记录日志信息到集群日志中

mgr: Add ability to trigger a cluster/audit log message from Python (  https://github.com/ceph/ceph/pull/24239 )

 

mgr/devicehealth 组件支持对 mon 设备的健康状态进行检测和追踪

mon,mgr: track mon devices like we do OSDs ( https://github.com/ceph/ceph/pull/24151 )

 

dashboard 支持展示当前所有已登录的用户

mgr/dashboard: Display logged in user (  https://github.com/ceph/ceph/pull/24213 )

 

dashboard 新增配置管理页面

mgr/dashboard config options add (  https://github.com/ceph/ceph/pull/23230 )

 

dashboard 新增存储池管理页面

mgr/dashboard: Pool management (  https://github.com/ceph/ceph/pull/21614 )

 

本月提交情况

发表评论

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