Ceph 开发者月报 2019-02

ceph周报19-02

本期看点:

1. RGW 添加 AppendObject API,可以以追加写的方式上传对象
https://github.com/ceph/ceph/pull/22755
2. 新增归档类型 zone 的支持
https://github.com/ceph/ceph/pull/25137

 

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

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

 

对象存储

1. RGW 添加 AppendObject API,可以以追加写的方式上传对象

rgw: Add append object api. #22755 (https://github.com/ceph/ceph/pull/22755)

  • 用 AppendObject 操作上传的对象叫 appendable object,用 PutObject 操作上传的对象叫 normal object
  • 对已存在的 normal object 进行 AppendObject 操作会返回错误;对已存在的 appendable object 进行 PutObject 操作会覆写该对象,且对象的类型变为 normal object
  • appendable object 通过 multisite 被同步到对端集群后,对应目标对象的类型会变为 normal object,但是源对象还是 appendable object,仍可以进行 AppendObject 操作;
  • 当存储桶的版本控制功能开启或暂停时,不能对存储桶内对象使用 AppendObject 操作

 

2. 新增归档类型 zone 的支持

rgw: archive zone #25137 (https://github.com/ceph/ceph/pull/25137)

新增 archive zone。

每个在 archive zone 里的 archive bucket 在创建时都会默认开启版本控制,因此从其他 zone 里同步来的对象在 archive bucket 里都会以多版本的形式进行管理。

因此 archive zone 可以帮助捕获那些未开启版本控制的 zone 的数据和元数据的更新,进行历史版本的整合。这样其他 zone 里无需开启版本控制,仅通过配置 archive zone,就可以实现对对象数据进行多版本管理,节省存储空间,降低成本。

archive bucket 不可被删除,但可以被重命名。

对象的删除不会被同步到 archive bucket,archive bucket 一直保存着对象的历史版本。

 

3. RGW STS 服务支持 Web 联合身份机制 (Web Identity Federation)

rgw: Initial commit for AssumeRoleWithWebIdentity. #26002 (https://github.com/ceph/ceph/pull/26002)

STS (Security Token Service) 是一个安全凭证的管理服务,可以用来授予临时的访问权限。

通过 Web 联合身份验证这种机制,用户可以用从公共身份提供商获得的授权身份验证信息作为临时安全凭证,以访问所需的服务。当前主要支持 keycloak OAuth2 access token 和 Client credential 授权方式。

 

4. RGW 支持 dmclock scheduler

rgw: scheduler #26008 (https://github.com/ceph/ceph/pull/26008)

dmClock QoS 控制算法是应用到分布式存储系统中以实现存储 QoS 的一种非常有效的算法, 能够从 Reservation、Limit、Weight 三个时间标签结合调度实现多维度的有效控制,提供 QoS 保障。

默认 scheduler 使用 simple throttler.

 

块存储

librbd: 支持镜像在存储池间迁移后,镜像与其快照以及从快照 clone 出来的子镜像之间的关系保持不变

librbd: make it possible to migrate parent images #25945 (https://github.com/ceph/ceph/pull/25945)

 

统一存储层

基于 seastar 重构 OSD 的工作推进

crimson: persist/load osdmap to/from store #26090 (https://github.com/ceph/ceph/pull/26090)

crimson/osd: add heartbeat support #26222 (https://github.com/ceph/ceph/pull/26222)

crimson/osd: add more heartbeat peers #26255 (https://github.com/ceph/ceph/pull/26255)

crimson/net: enable connections on all cores #24945 (https://github.com/ceph/ceph/pull/24945)

crimson: cache osdmap using LRU cache #26254 (https://github.com/ceph/ceph/pull/26254)

crimson/osd: send known addresses at boot #26452 (https://github.com/ceph/ceph/pull/26452)

 

集群管理

1. dashboard 添加 iSCSI 管理和 discovery 验证的 API 和前端界面 

mgr/dashboard: iSCSI management API #25638 (https://github.com/ceph/ceph/pull/25638)

mgr/dashboard: iSCSI management UI #25995 (https://github.com/ceph/ceph/pull/25995)

mgr/dashboard: iSCSI discovery authentication API #26115 (https://github.com/ceph/ceph/pull/26115)

mgr/dashboard: Add iSCSI discovery authentication UI #26320 (https://github.com/ceph/ceph/pull/26320)

 

2. dashboard 实现为 RBD 镜像和存储池配置 QoS 相关设置

mgr/dashboard: Add support for managing RBD QoS #25233 (https://github.com/ceph/ceph/pull/25233)

 

3. dashboard 提供各种功能和特性 (RBD iSCSI, mirroring…) 的开关

mgr/dashboard: add Feature Toggles #26102 (https://github.com/ceph/ceph/pull/26102)

 

4. dashboard 添加 NFS Ganesha 管理 API 和前端界面

mgr/dashboard: NFS Ganesha management REST API #25918 (https://github.com/ceph/ceph/pull/25918)

mgr/dashboard: NFS management UI #26085 (https://github.com/ceph/ceph/pull/26085)

 

5. dashboard 集成 Prometheus alertmanager

mgr/dashboard: Prometheus integration #25309 (https://github.com/ceph/ceph/pull/25309)

 

6. dashboard 支持配置 Telemetry 服务收集计量数据

mgr/dashboard: Add UI to configure the telemetry mgr plugin #25989 (https://github.com/ceph/ceph/pull/25989)

 

7. dashboard 支持配置所有 mgr modules

mgr/dashboard: Configure all mgr modules in UI #26116 (https://github.com/ceph/ceph/pull/26116)

 

8. 新增 ssh 编排模块 

ssh orchestrator #26262 (https://github.com/ceph/ceph/pull/26262)

ceph orchestrator 通过设置 ssh 编排模块作为后端,以 ssh 连接来管理集群内的节点

# ceph mgr module enable ssh
# ceph orchestrator set backend ssh
# ceph orchestrator status
Backend: ssh
Available: True

当前 ssh 编排模块支持功能如下:

 

基础工具集

1. 支持对存储池进行 scrub/force-recovery/force-backfill

mgr: add per pool scrub commands #26532 (https://github.com/ceph/ceph/pull/26532)

mgr: add per pool force-recovery/backfill commands #26560 (https://github.com/ceph/ceph/pull/26560)

命令如下:

ceph osd pool scrub {pool-name} 
ceph osd pool deep-scrub {pool-name} 
ceph osd pool repair {pool-name} 
ceph osd pool force-recovery {pool-name} 
ceph osd pool force-backfill {pool-name} 
ceph osd pool cancel-force-recovery {pool-name} 
ceph osd pool cancel-force-backfill {pool-name}

 

2. 新增 dedup 工具检查重复数据

src/tool: add dedup tool #24805 (https://github.com/ceph/ceph/pull/24805)

利用重复数据删除技术可以查找大块的重复数据,只存储一份数据,节省存储空间

当前实现可以评估存储池里数据重复率以及进行 chunk scrub

 

3. rbd 新增 sparsify 命令,可以对 RBD 镜像重新稀疏化

rbd: online re-sparsify of images #26226 (https://github.com/ceph/ceph/pull/26226)

 

4. 提供显示镜像 IO 统计和监控的命令

rbd: implement new ‘rbd perf image iostat/iotop’ commands #26133 (https://github.com/ceph/ceph/pull/26133)

例如 iotop:

# ceph rbd perf image iotop
 WRITES OPS<    READS OPS  WRITE BYTES   READ BYTES    WRITE LAT     READ LAT IMAGE
       115/s         98/s    460 KiB/s    395 KiB/s    108.68 ms     27.34 ms rbd/ns/test
       108/s        110/s    432 KiB/s        0 B/s    114.05 ms     23.36 ms test1/test
        91/s         96/s    365 KiB/s    386 KiB/s    113.45 ms     31.80 ms test/test
        84/s          0/s    111 MiB/s        0 B/s    145.65 ms      0.00 ns rbd/test

 

基础库

Ceph 网络模块 MessengerV2 协议的实现和验证相关的开发

msg/async: Messenger V2 Implementation #24546 (https://github.com/ceph/ceph/pull/24546)

msg/async: msgr2: added client and server cookie to protocol #26484 (https://github.com/ceph/ceph/pull/26484)

msg/async,auth: use msgr2 auth frames for authentication #26059 (https://github.com/ceph/ceph/pull/26059)

msg/async, v2: authenticated onwire encryption and new preamble format #26466 (https://github.com/ceph/ceph/pull/26466)

 

本月提交情况

发表评论

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