Project

General

Profile

Feature #36191

mgr/dashboard: Add support for managing RBD QOS

Added by Lenz Grimmer 3 months ago. Updated 3 days ago.

Status:
Need Review
Priority:
Normal
Category:
dashboard/rbd
Target version:
Start date:
09/26/2018
Due date:
% Done:

90%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

With PR#23743 merged, Ceph Nautilus will support defining an IOPS limit for RBD images on a per-image and pool level.

The RBD management in Ceph Mgr Dashboard should support this feature, by making it possible to define the limit when creating new RBD images or editing existing RBDs, as well as when creating or editing a Ceph pool dedicated to RBD.

On the command line, these limits can be configured as follows:

$ rbd config pool set $pool rbd_qos_iops_limit 100
$ rbd config image set $pool/$image rbd_qos_iops_limit 200


Related issues

Related to mgr - Bug #37569: mgr/dashboard: Fix search for fields in tables which have a template New 12/07/2018
Related to mgr - Feature #37570: Provide descriptions and types for the RBD configuration options New 12/07/2018
Precedes mgr - Feature #37571: mgr/dashboard: Highlight RBD configuration options in add/edit form New
Precedes mgr - Fix #37572: mgr/dashboard: Add backend tests for RBD configuration New 09/27/2018 09/27/2018

History

#1 Updated by Mykola Golub 3 months ago

I am not sure if the scope is intentionally limited only to QOS, but just to make sure you are aware about all available functionality, below some more details.

Via `rbd config pool|image` you can set not only QOS but much more. `rbd config pool ls $pool` and `rbd config image ls $pool/$image` will return the full list of possible overrides. E.g. for QOS we have these options:

% rbd config pool ls rbd |grep qos
rbd_qos_bps_limit                      0        config 
rbd_qos_iops_limit                     0        config 
rbd_qos_read_bps_limit                 0        config 
rbd_qos_read_iops_limit                0        config 
rbd_qos_write_bps_limit                0        config 
rbd_qos_write_iops_limit               0        config 

So probably we want some more generic, not only QOS?

And the dashboard can use python rbd bindings:

params = rbd.config_list(ioctx)
rbd.pool_metadata_set(ioctx, "conf_rbd_qos_bps_limit", "100")
rbd.pool_metadata_remove(ioctx, "conf_rbd_qos_bps_limit")

params = image.config_list()
image.metadata_set("conf_rbd_qos_bps_limit", "100")
image.metadata_remove("conf_rbd_qos_bps_limit")

Note, the overrides are stored in the pool/image metadata, and for set/remove we use "metadata" API, which requires the config keys to be prefixed with "conf_".

#2 Updated by Lenz Grimmer about 2 months ago

  • Assignee set to Patrick Nawracay

#3 Updated by Patrick Nawracay about 1 month ago

  • Status changed from New to In Progress

#4 Updated by Lenz Grimmer 14 days ago

  • Pull request ID set to 25233

#5 Updated by Patrick Nawracay 3 days ago

  • Status changed from In Progress to Need Review
  • % Done changed from 0 to 90

#6 Updated by Patrick Nawracay 3 days ago

  • Related to Bug #37569: mgr/dashboard: Fix search for fields in tables which have a template added

#7 Updated by Patrick Nawracay 3 days ago

  • Related to Feature #37570: Provide descriptions and types for the RBD configuration options added

#8 Updated by Patrick Nawracay 3 days ago

  • Precedes Feature #37571: mgr/dashboard: Highlight RBD configuration options in add/edit form added

#9 Updated by Patrick Nawracay 3 days ago

  • Precedes Fix #37572: mgr/dashboard: Add backend tests for RBD configuration added

Also available in: Atom PDF