Feature #4709
closedkrbd: support stripingv2 images that don't require I/O path changes
0%
Description
Currently when the rbd command creates format 2 images, due to a bug it always includes the STRIPINGV2 feature bit unless the user explicitly specifies striping parameters that wouldn't change the I/O path. The set of cases where no I/O path changes are needed is:
stripe_count == 1 stripe_unit == (1 << order) // i.e. object size
In this case (which is the current default for a format 2 image), the actual striping is the same as in a non-STRIPINGV2 image with that object order.
To work with these images, the kernel client needs to fetch the stripe_count and stripe_unit via the get_stripe_unit_count class method when the image has the STRIPINGV2 feature bit, and check if they match those critieria. If they do, the kernel client should proceed. Otherwise, more changes would be needed to support the image, so an error should be returned.