[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] LVM partition resize pain...



> I created a Xen VM on top of a LVM volume.  The volume was like 530GB
> big.  Within the volume sits the VM, with 5 partitions, one of them
> 500GB big (the other 4 file systems comprise the other 30GB).  Each
> virtual disk partition exists as /dev/xvda1 - /dev/xvda5.  /dev/xvda5 is
> the one with the 500GB file system on it.
>
> I wanted to reduce the size of the filesystem on /dev/xvda5 from 500GB
> to 5GB.  So I unmount /dev/xvda5 then run:
>
> # resize2fs /dev/xvda5 5G
>
> Works great.  Next, I shut down the VM and reduce the size of my logical
> volume:
>
> # lvreduce -v -L 40G /dev/vg0/xen1
>
> So the volume is still larger than all the filesystems in it, such that
> I don't lose any data.  The command worked successfully.  Then I booted
> the VM and got errors on boot say something about "/dev/xvda: wanted
> 500000000 but was limited to 5000000" or something like that.  But the
> VM booted even after the errors and appeared to work OK.  So I:
>
> # fdisk -l
>
> Disk /dev/xvda: 32.2 GB, 32212254720 bytes
> 255 heads, 63 sectors/track, 3916 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
>
>      Device Boot      Start         End      Blocks   Id  System
> /dev/xvda1   *           1          13      104391   83  Linux
> /dev/xvda2              14        1288    10241437+  83  Linux
> /dev/xvda3            1289        2308     8193150   82  Linux swap /
> Solaris
> /dev/xvda4            2309       67620   524618640    5  Extended
> /dev/xvda5            2309       67620   524618608+  83  Linux

You resized the filesystem but you didn't resize the partition the filesystem 
was on.  You need to do both if this is going to work successfully.  What has 
happened is that the partition table was not updated and now it has values in 
it that don't make sense for your newly smaller disk.

> Notice it says that /dev/xvda is 32.2GB (which is correct), but
> /dev/xvda4-5 still think they are 500GB big!  A 'df' shows that the
> filesystem is really only 5GB though, as expected.

That makes sense too: the partition table says that the partition is that big, 
so that's what fdisk shows.  ReiserFS, which you explicitly resized *knows* 
that it's only managing 5GB of space, so it's not confused by this - hence df 
works OK.

> I tried some parted 
> magic but parted can't do anything (even print the partition table!), I
> get errors like:
>
> [root@template ~]# parted /dev/xvda
> GNU Parted 1.8.1
> Using /dev/xvda
> Welcome to GNU Parted! Type 'help' to view a list of commands.
> (parted) print
> Error: Can't have a partition outside the disk!
> (parted)
>
> and it won't let me make changes, etc.  Is there something I missed?
> Wasn't the OS supposed to recognize the size change in /dev/xvda on
> boot?  Or do I have to manually change the disk label or something?  Is
> it just impossible to resize a VM's file system then change the volume
> the VM sits on to reflect the change?

You need to resize /dev/xvda5...  Assuming the ReiserFS has successfully 
resized to fit within 5G of space then you should be able to shrink this 
partition down to exactly 5G in size.

You could try and do this doing parted, but if it's not playing nice then you 
can probably get away with using fdisk.  I don't think that fdisk has 
a "resize" option but you can delete the partition (!) and then create a new 
one with the same starting sector, and an ending sector 5G later.  This 
should leave the filesystem intact, since it already fits into that 5G of 
disk.  I'd recommend you backup the contents just in case, though, and fsck 
it afterwards!

(side note: really you ought to have anything important backed up before 
messing with partition tables - I'm paranoid)

In future, you could investigate using parted to resize the partition *and* 
the filesystem on it simultaneously, which could avoid this problem 
recurring.

Cheers,
Mark

-- 
Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.