[Gluster-devel] Dynamic provisioning does not provide the amount of 'free space' that was requested

Niels de Vos ndevos at redhat.com
Fri Nov 16 12:20:05 UTC 2018


The KubeVirt team found a bug in how Heketi provisions requested volumes
(PVCs). The problem that they hit is related to how much overhead a
filesystem needs vs how much free space is expected. This comes down to
the following:

- Heketi gets asked to provision a volume of 4GB
- checking the available space once the volume is a little less
- KubeVirt will not be able to create a 4GB disk image and errors out

It seems that Heketi does not take all overhead into account while
creating bricks, and the Gluster volume. The following overhead items
are identified:

- XFS metadata after formatting the block-device (LVM/LV)
- GlusterFS metadata under .glusterfs
- space reservation with the `storage.reserve` volume option

In order to improve Heketi and fullfill the 'requested size' correctly,
we will need to estimate/calculate the overhead and only then execute
the volume creation operations. Ideas and suggestions for this are most
welcome.

https://bugzilla.redhat.com/show_bug.cgi?id=1649991 is the main bug for
this. However it is likely that gluster-block, glusterd2 and other smart
provisioners are affected with the same problem.

Niels


More information about the Gluster-devel mailing list