Description of problem: Right now the rbd mirror snapshot scheduler (rbd_support mgr module) calls `mirror_image_create_snapshot` synchronously in one thread loop for all mirroring images that require a snapshot. Creating a snapshot is rather long operation (i.e. sometimes >1 second) and therefore means that the scheduler has rather low limit of snapshot creation rate. E.g. if one creates a mirroring pool with 100 images in snapshot mirror mode, and configure global 1 minute interval snapshot schedule, it is most likely the snapshot schedule will be lagging. It can be improved, e.g. by implementing async version of `mirror_image_create_snapshot` and modifying the scheduler to create snapshots for many images in parallel. Version-Release number of selected component (if applicable): RHCS 4.2 How reproducible: 100% Steps to Reproduce: 1. Create hundred+ snapshot-based mirrored images 2. Schedule mirror snapshots to be created every minute Actual results: The "rbd_support" MGR module cannot keep up. Expected results: The "rbd_support" module can better scale. The goal is to improve the scaling by nearly an order of magnitude. Additional info:
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Important: Red Hat Ceph Storage 4.2 Security and Bug Fix update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2021:0081