Description of problem: When enabling the LVM driver with option lvm_type=thin, if the vg does not have a -pool VG, cinder creates a <vgname>-pool LVM thin pool. This may be created with the wrong size because Cinder determines the VG capacity as X GB and then runs "lvcreate -T -L X <path>" rather than "lvcreate -T -L XG <path>". Version-Release number of selected component (if applicable): 2013.2-1 Steps to Reproduce: 1. Create new VG named "cinder-vg" 2. Set volume_group=cinder-vg in cinder.conf 3. Start cinder-volume service Actual results: # lvs cinder-vg shows a cinder-vg-pool LV of size 4.00m rather than XGB. LVM brick needs to do something like _sizestr() to set the unit being passed to the lvcreate command. Also need to look at Grizzly as it uses different code (not brick) for handling this and may or may not have this problem.
Jon's testing here also revealed that ThinLVM free space calculation is not handled correctly, so when you have a pool of correct size (~ the entire VG), the LVM driver / Cinder scheduler will report that you do not have enough free space for a Cinder volume to be created. (It considers the VG full since the pool LV is consuming the space -- should calculate usable space inside the pool somehow.)
verified using openstack-cinder-2013.2-8.el6ost.noarch
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHEA-2013-1859.html