[pve-devel] [PATCH v2 librados2-perl storage manager 0/7] Add Ceph safety checks

Aaron Lauterer a.lauterer at proxmox.com
Mon Nov 7 14:18:51 CET 2022


ping?

If we are okay with the way this would change RADOS.xs and RADOS.pm, I can send 
a follow up for patch 3 and 4 as a few other places started to issue mon 
commands in the meantime.

There is also the currently pending "Ceph OSD: add detail infos" patch series 
which either could be included in the follow up patch, or will need its own, 
depending on what gets applied first.


[0] https://lists.proxmox.com/pipermail/pve-devel/2022-October/054375.html

On 3/25/22 11:55, Aaron Lauterer wrote:
> The main motivation behind this series is to leverage several safety
> checks that Ceph has to make sure it is ok to stop or destroy a service.
> 
> For this to work, the librados2-perl needs to be adapted because if it
> is unsafe to perform one of the actions, the Ceph API will return an
> error with an explanation in the status message.
> 
> The approach chosen is to simplify the bindings and handle errors on the
> Perl side. the RADOS.pm::mon_command now always returns a hash ref
> containing
> 
> * return code
> * status message
> * data
> 
> This makes it necessary to adapt packages that depend on librados2-perl
> to handle the changed return values: storage and manager.
> 
> Therefore we need to coordinate breaking dependencies and releases of
> these packages!
> 
> A new cmd-safety endpoint is added which is called from the GUI wherever
> possible to show a warning.
> 
> 
> changes:
> 
> * simplify librados2-perl changes and always return hash ref instead of
>    wantarray
> * one central cmd-safety API endpoint instead of multiple ones per
>    service type
> 
> librados2-perl: Aaron Lauterer (2):
>    mon_command: refactor to pass all data to perl
>    mon_command: optionally ignore errors
> 
>   PVE/RADOS.pm | 24 +++++++++++++++++++-----
>   RADOS.xs     | 18 ++++++------------
>   2 files changed, 25 insertions(+), 17 deletions(-)
> 
> 
> storage:Aaron Lauterer (1):
>    rbd: adapt to changed rados mon_command return values
> 
>   PVE/Storage/RBDPlugin.pm | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 
> manager: Aaron Lauterer (4):
>    ceph: adapt to changed rados mon_command return values
>    api: ceph: add cmd-safety endpoint
>    ui: osd: warn if removal could be problematic
>    ui: osd: mon: mds: warn if stop/destroy actions are problematic
> 
>   PVE/API2/Ceph.pm                 | 102 +++++++++++++++++++++-
>   PVE/API2/Ceph/MGR.pm             |   2 +-
>   PVE/API2/Ceph/MON.pm             |  19 +++--
>   PVE/API2/Ceph/OSD.pm             |  14 ++--
>   PVE/API2/Ceph/Pools.pm           |  18 ++--
>   PVE/API2/Cluster/Ceph.pm         |   6 +-
>   PVE/CLI/pveceph.pm               |   4 +-
>   PVE/Ceph/Services.pm             |  10 +--
>   PVE/Ceph/Tools.pm                |  16 ++--
>   www/manager6/ceph/OSD.js         | 140 ++++++++++++++++++++++++++-----
>   www/manager6/ceph/ServiceList.js | 104 ++++++++++++++++++++---
>   11 files changed, 360 insertions(+), 75 deletions(-)
> 
> 





More information about the pve-devel mailing list