On Mon, Mar 11, 2019 at 11:50 AM Daniel P. Berrangé <berrange(a)redhat.com> wrote:
On Mon, Mar 11, 2019 at 11:39:55AM -0400, jdillama(a)redhat.com wrote:
> From: Jason Dillaman <dillaman(a)redhat.com>
>
> For pools with numerous volumes or very large volumes, the disk-usage
> calculation can take a non-trivial amount of time even with the
> fast-diff feature enabled (especially since the the usage is calculated
> serially for each image in the pool).
>
> The "rbd:config_opts" node now supports a new libvirt-internal
> "libvirt_calculate_disk_usage" option which can be set to false to
> disable this calculation as needed.
The RBD namespace is not something we want to encourage applications
to use. It is supposed to be for hacks that are only used in testing
or QA, never in production. Essentially any usage is considered
unsupported for production.
Gotcha. Honestly, in that case, since starting w/ the Mimic release of
Ceph all configuration options can be stored in the Ceph monitors and
starting with the Nautilus release of Ceph all RBD configuration
options can be overridden in the pools and individual images, I
actually wonder the value of this XML section even for non-production
settings. Also, should the documentation be updated to indicate that
this is only for non-production environments (assuming support for
this isn't just yanked)?
This scalability problem sounds like something most likely to hit in
production envs, and as such we need a fully supportable solution.
This probably suggests making it a core part of the storage pool
schema, and extending its impl to other drivers too.
From a quick scan, it only looked like RBD was using a costly
"stat"-like method to calculate actual volume usage which is why I
implemented it as an RBD-only feature. If a new
"volume_usage=[physical|allocated]"-like option is acceptable in the
root storage pool XML, I can add it and repost.
Thanks,
--
Jason