I have an existing LVM volume group of 3 disks (same size) with 4 linear LVs. I would like to convert the LVs to be striped across the disks to balance the load on the disks more evenly.
Shrinking the LVs to fit on a single disk to support the procedure in the accepted answer of Convert a single-drive LVM volume to a striped volume across 3 drives is not possible as the used space exceeds 1/3. Also, attaching an additional disk to temporarily store a large part of the data is not an option, e.g. to free 2 of the 3 disks so that the linked procedure can be used.
I know that
lvconvert currently does not support converting the stripe count of space already allocated for an LV. Even if it did, this would only provide a solution for edge cases such as a single LV extending over all 3 disks and the above "can shrink to single-disk" scenario: If there are 2 or more LVs allocated linearly this means that each of them does not use the same amount of space from each disk but the target layout requires the same amount from each disk.
Is there a tool that analyses the placement of LVs in a VG, chooses a striped target configuration that requires minimal (or near-minimal) amount of data to be moved and then carries out the modifications in place across multiple LVs?