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):
Steps to Reproduce:
1. Create hundred+ snapshot-based mirrored images
2. Schedule mirror snapshots to be created every minute
The "rbd_support" MGR module cannot keep up.
The "rbd_support" module can better scale. The goal is to improve the scaling by nearly an order of magnitude.
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.