[lvm-devel] lvcreate and raid volume size problem
ben
benscott at nwlink.com
Fri Jul 6 00:04:05 UTC 2012
I found what may be a small bug in creating raid volumes.
if I start with three pvs with 2364 extents each:
lvs --version
LVM version: 2.02.95(2) (2012-03-06)
Library version: 1.02.74 (2012-03-06)
Driver version: 4.22.0
pvs --units 4m
PV VG Fmt Attr PSize PFree
/dev/sdq vg1 lvm2 a-- 2364 2364
/dev/sdr vg1 lvm2 a-- 2364 2364
/dev/sds vg1 lvm2 a-- 2364 2364
Since RAID 5 needs a parity stripe and each stripe needs an extent
for metadata I should have 4726 (2 * 2363) extents for a volume.
But, if I run:
lvcreate --stripes 2 --stripesize 64k --type raid5 --extents +4726 vg1
/dev/sdq /dev/sdr /dev/sds
Insufficient free space: 7094 extents needed, but only 7092 available
So I run this instead:
lvcreate --stripes 2 --stripesize 64k --type raid5 --extents +4724 vg1
/dev/sdq /dev/sdr /dev/sds
Logical volume "lvol0" created
Now I have one free extent on each pv:
pvs --units 4m
PV VG Fmt Attr PSize PFree
/dev/sdq vg1 lvm2 a-- 2364.00U 1.00U
/dev/sdr vg1 lvm2 a-- 2364.00U 1.00U
/dev/sds vg1 lvm2 a-- 2364.00U 1.00U
Finally I execute this:
lvextend --stripes 2 --stripesize 64k --type raid5 --extents +2 vg1/lvol0
/dev/sdq /dev/sdr /dev/sds
Extending logical volume lvol0 to 18.46 GiB
Failed to find segment for lvol0_rimage_0 extent 4723
Failed to find segment for lvol0_rimage_0 extent 4723
Failed to find segment for lvol0_rimage_0 extent 4723
Failed to find segment for lvol0_rimage_0 extent 4723
Failed to find segment for lvol0_rimage_0 extent 4723
Failed to find segment for lvol0_rimage_0 extent 4723
Logical volume lvol0 successfully resized
pvs --units 4m
PV VG Fmt Attr PSize PFree
/dev/sdq vg1 lvm2 a-- 2364.00U 0U
/dev/sdr vg1 lvm2 a-- 2364.00U 0U
/dev/sds vg1 lvm2 a-- 2364.00U 0U
Since my program calls lvcreate, it needs to be able to
determine the maximum lv size, which I am having trouble
with here. If someone could look into this I would
appreciate it.
thank you.
More information about the lvm-devel
mailing list