Insufficient suitable allocatable extents when extending lvm
Solution 1:
LVs in data VG are using "inherited" policy. The VG's policy is cling, which attempts to allocate new extents from the same PV. See lvm(8)
for details.
To override you can either run the lvextend
command with additional --alloc normal
option, or to change the default run vgchange --alloc normal data
.
Solution 2:
I got the same error message when I tried to extend one of my LVs. The policy was already set to "normal". In my case the problem was with striping. I had VG build on top of two PVs and the LV was striped across those two PVs. When I added one more PV I couldn't extend the LV anymore as it didn't have two free PVs to maintain the striping.
Available options for striped setup:
- always add PVs in groups to match striping (i.e. add two new PVs if you have two-stripe LV).
- (if above is not possible) extend LV with disabled striping (
lvextend -L+1G data -i1
). This will create another segment with #Str=1 as visible inlvs --segments
output. Note that there will probably be some performance difference when accessing data depending on the segment where it is located.